编辑推荐
作者把自己的应用开发实践经验融入到本书中,为读者讲述分析问题、解决问题的方法和技巧,对实际开发工作具有指导意义,能够让初入这个领域的新手少走弯路。
本书详细讲解SharePoint 2013的使用,带领读者领略SharePoint强大的接口,逐步学习SharePoint开发,掌握实用的应用开发技术。
内容简介
SharePoint 2013是业界领先的企业协作平台,随着微软云战略蓝图的推行,SharePoint 2013也将重点逐步向云端转移。它强大的企业协同办公、搜索、门户发布等功能,越来越受到国内外企业的欢迎。
本书共分12章,重点讲解基于SharePoint的开发技术与技巧,对SharePoint的机制和架构进行了较多的讲解和分析。内容包括SharePoint基础,对象模型,解决方案,外观定制,事件接收器,应用程序,BCS应用,使用Infopath,工作流开发等。最后两章分别给出门户定制和办公用品申请两个实例,为读者展示一个从无到有的实现过程。
本书适合SharePoint初学者,以及有一定基础的SharePoint开发人员进行技术的强化和经验的积累,也适合作为高等院校和培训学校相关专业的教学参考书。
作者简介
刘中正,高级研发工程师,微软SharePoint领域MVP,微软认证SharePoint解决方案专家(MCSE),CSDN博客专家,具有多年SharePoint管理和研发经验,就职于知名软件公司AvePoint。
王 兴,高级研发工程师,微软SharePoint领域MVP,微软认证SharePoint解决方案专家(MCSE),具有多年SharePoint管理和研发经验,负责过多个大型企业级SharePoint解决方案。
张志宇,高级研发工程师,微软认证专家(MCP), 具有多年SharePoint管理和研发经验,负责过多个大型企业级SharePoint解决方案。
内页插图
目录
第1章 SharePoint概述 1
1.1 SharePoint的发展历程 1
1.1.1 SharePoint Team Service 1.0和SharePoint Portal Server 2001 2
1.1.2 Windows SharePoint Service 2.0和SharePoint Portal Server 2003 3
1.1.3 Windows SharePoint Service 3.0 和Microsoft Office SharePoint Server 2007 4
1.1.4 SharePoint Foundation 2010 和SharePoint Server 2010 5
1.1.5 SharePoint Foundation 2013 和SharePoint Server 2013 7
1.1.6 SharePoint 本地部署 和 SharePoint 在线 8
1.2 SharePoint技术架构 8
1.2.1 平台堆栈 8
1.2.2 物理拓扑架构 9
1.2.3 存储结构 10
1.3 SharePoint逻辑结构 11
1.4 SharePoint API架构 12
1.4.1 服务器端对象模型 13
1.4.2 托管客户端对象模型 13
1.4.3 JavaScript 客户端对象模型 14
1.4.4 REST/OData终结点 14
1.4.5 Web Service 14
1.5 SharePoint安装 15
1.5.1 前期准备 15
1.5.2 SharePoint安装 17
1.5.3 配置SharePoint场 18
1.6 SharePoint 开发环境搭建 23
1.6.1 SharePoint Designer 23
1.6.2 Visual Studio 24
第2章 服务器端对象模型 25
2.1 学习开发环境的准备 27
2.2 SPSite对象和SPWeb对象 30
2.2.1 SPSite 30
2.2.2 SPWeb 31
2.2.3 SPContext对象 33
2.3 对象的释放 33
2.3.1 如何应用Dispose 34
2.3.2 部分编码最佳实践 36
2.4 SPList、SPField和SPView对象 36
2.4.1 SPList对象 36
2.4.2 SPField和SPView对象 39
2.5 SPListItem、SPFile和SPFolder对象 42
2.5.1 SPListItem对象 42
2.5.2 SPFile和SPFolder对象 45
2.6 CAML和列表查询对象 48
2.6.1 CAML 48
2.6.2 SPQuery和SPSiteDataQuery对象 50
2.6.3 LINQ to SharePoint 52
第3章 客户端对象模型 55
3.1 .NET客户端对象模型 55
3.1.1 环境准备 55
3.1.2 ClientContext 58
3.1.3 Site和Web对象 59
3.1.4 List对象 61
3.1.5 Listitem对象 64
3.1.6 使用.NET客户端对象模型的最佳实践 67
3.2 JaveScript客户端对象模型 67
3.2.1 环境准备 67
3.2.2 ClientContext 69
3.2.3 Site和Web对象 69
3.2.4 List对象 72
3.2.5 ListItem对象 74
3.3 REST服务 76
3.3.1 SharePoint REST服务介绍 76
3.3.2 使用C#调用REST服务 78
第4章 SharePoint解决方案 84
4.1 开发第一个解决方案 85
4.1.1 创建SharePoint解决方案项目 86
4.1.2 开发Web部件 87
4.1.3 部署解决方案 90
4.1.4 调试解决方案 92
4.1.5 扩展Web部件属性 93
4.1.6 解决方案包的结构 96
4.2 自定义SharePoint内容 98
4.2.1 SharePoint自定义栏类型 98
4.2.2 SharePoint自定义内容类型 104
4.2.3 SharePoint自定义列表类型 108
4.3 SharePoint解决方案项目中的其他内容 112
4.3.1 SharePoint空元素 112
4.3.2 SharePoint模块 112
4.3.3 SharePoint网站定义 113
第5章 外观定制 115
5.1 页面模型 115
5.2 母版页 116
5.2.1 母版页介绍 116
5.2.2 委派控件和候补控件 118
5.2.3 扩展网站操作 123
5.2.4 扩展欢迎菜单 124
5.3 服务器功能区开发 125
5.3.1 服务器功能区介绍 125
5.3.2 添加组件 126
5.3.3 修改现有按钮 131
5.3.4 删除按钮 132
5.4 编辑控制块 132
5.4.1 添加项到编辑控制块 133
5.4.2 修改和隐藏编辑控制块的现有项 134
5.5 应用程序页 135
第6章 SharePoint事件接收器 138
6.1 列表项事件接收器 138
6.2 其他事件接收器 145
6.2.1 功能事件接收器 145
6.2.2 列表事件接收器 146
6.2.3 Web事件接收器 149
6.2.4 列表电子邮件事件接收器和列表工作流事件接收器 150
6.3 非模板事件接收器 150
第7章 SharePoint应用程序 154
7.1 SharePoint应用程序概述 154
7.1.1 两种类型的SharePoint应用程序 156
7.1.2 为什么需要SharePoint应用程序 158
7.2 SharePoint承载的应用程序 159
7.2.1 搭建SharePoint应用程序本地开发环境 159
7.2.2 开发第一个SharePoint应用程序 165
7.2.3 部署调试SharePoint承载的应用程序 168
7.3 提供程序承载的应用程序 169
7.3.1 配置适用于SharePoint 2013的高信任应用程序 169
7.3.2 开发提供程序承载的应用程序 173
7.4 使用SharePoint应用程序开发SharePoint组件 177
7.4.1 开发客户端Web部件 177
7.4.2 开发自定义操作扩展功能 182
7.4.3 开发网站栏、内容类型和列表定义 189
7.4.4 开发远程事件接收器 189
7.5 发布SharePoint应用程序 194
7.5.1 Office商店 194
7.5.2 应用程序目录 195
7.5.3 发布SharePoint应用程序 195
7.6 开发SharePoint应用程序的建议 201
第8章 SharePoint 2013 中的 Business Connectivity Services 203
8.1 部署的准备工作 203
8.1.1 下载并安装示例数据库 203
8.1.2 创建数据库登录用户 204
8.2 创建Business Data Connectivity Services 服务应用程序 205
8.2.1 创建BDCS服务应用程序 205
8.2.2 添加对BDCS元数据存储的权限 206
8.3 配置Secure Store Service 208
8.4 创建外部内容类型 211
8.5 创建外部列表 216
第9章 InfoPath Form Service 218
9.1 自定义表单 218
9.2 发布到列表和表单库 220
9.2.1 发布到列表 220
9.2.2 发布到表单库 223
9.3 发布InfoPath表单模板到内容类型 227
9.4 需要管理员审核的InfoPath表单模板 229
9.4.1 在InfoPath中使用SharePoint服务器端对象模型 229
9.4.2 发布模板到管理中心 234
第10章 SharePoint 2013工作流 238
10.1 工作流概念介绍 238
10.1.1 工作流活动 238
10.1.2 表单 239
10.1.3 任务 240
10.1.4 历史记录 240
10.1.5 流程控制模板 241
10.2 SharePoint 2013工作流架构 242
10.3 在Visual Studio中开发Workflow 243
10.3.1 创建Workflow项目 243
10.3.2 获取列表项的属性 245
10.3.3 If活动 247
10.3.4 运行工作流 247
10.3.5 LookupSPUser活动 248
10.4 开发自定义活动 249
10.4.1 创建自定义活动 250
10.4.2 HttpSend活动 250
10.4.3 参数 253
10.4.4 在工作流中调用自定义活动 253
第11章 SharePoint品牌开发 254
11.1 引用jQuery和Bootstrap 254
11.2 修改Suite Bar 255
11.3 按需隐藏控件 257
11.4 设置徽标 258
11.5 添加页脚 258
11.6 修改顶部导航 260
11.7 调整页面布局 261
第12章 办公用品申请工作流实例 263
12.1 工作流关联表单 263
12.2 工作流初始表单 267
12.3 工作流任务 268
12.4 开发工作流的注意事项 270
前言/序言
从2001年发布到如今,SharePoint经历了数次大的更新,并且已经成功地在云上做了大规模的应用。目前,SharePoint已经在全球范围内成为企业协同办公的不二之选。
SharePoint的普及催生了SharePoint开发行业的迅速发展,目前有大量的开发人员从事这个行业,也有越来越多的人加入。因此从2001年至今,SharePoint变得越来越强大,功能也越来越多,架构上也是几经升级。这对初学者来说,面对如此庞大的系统,究竟要如何学起?
目前关于SharePoint开发的书籍少之又少,虽然MSDN上面有很多资料,但是不免让初学者找不到头绪。本书的三位作者有多年的SharePoint开发经验,经历了SharePoint几次大的更新,并且做过了很多项目。因此我们编写了本书,希望能让新加入到SharePoint开发的朋友有章可循、逐渐深入地系统学习。
本书要求读者有一定的编程基础。对C#、ASP.NET和SQL Server数据库的基本了解是必要的,同时也要了解一些前台开发知识,比如Html、JaveScript、jQuery、CSS等。
虽然SharePoint 2016即将到来,但是仍然有很多客户在使用SharePoint 2013,并且基于SharePoint的良好架构,2013里面的技术绝大多数会继承到2016里面。因此,学习SharePoint 2013开发仍然很有必要,并且会为以后SharePoint 2016开发打下良好的基础。
本书从基础的API讲起,逐渐深入到定制化、工作流和应用程序开发。本书并不会介绍SharePoint的功能、配置,以及如何使用,因此本书是写给开发人员的,并不适合IT专业人员和终端用户。SharePoint开发所涵盖的内容非常广泛,本书也只能覆盖一些主要内容,加之编者水平有限,疏漏之处在所难免,欢迎广大读者批评指正。
编者
2016年5月
掌控数字工作流:企业协作与信息管理的变革之道 在这个信息爆炸、协作日益频繁的时代,企业对于高效的信息管理和无缝的团队协作需求从未如此迫切。从分散的文件存储到低效的沟通模式,传统的工作方式正面临着前所未有的挑战。然而,随着技术的飞速发展,一种强大的解决方案正在重塑企业运营的方方面面,它不仅能够统一分散的信息,更能优化协作流程,提升整体生产力。本书正是深入探讨这一变革力量,为企业揭示驾驭数字工作流、实现信息管理与协作新高度的实战路径。 理解核心:企业协作平台的演进与力量 在现代企业管理中,信息和协作是驱动业务发展的两大引擎。过去,企业往往依赖于电子邮件、文件共享驱动器、即时通讯工具等分散的系统来处理信息和进行沟通。这种碎片化的管理方式不仅导致信息孤岛,更容易在团队协作中产生误解、重复劳动,甚至遗漏关键信息。 本书将首先带您回顾企业协作平台的演进历程,从早期的网络共享到如今集成了内容管理、工作流自动化、社交协作和数据分析等多种功能的综合性平台。我们将深入剖析现代企业协作平台的核心价值: 统一信息枢纽: 将分散在各处的文件、文档、数据、通知等信息整合到一个可信赖的中央存储库中,确保信息的准确性、一致性和易访问性。 流程自动化引擎: 通过直观的可视化工具,设计、构建和部署业务流程,将审批、审核、通知等重复性任务自动化,释放人力资源,提高执行效率。 协作互动空间: 提供丰富的协作工具,如共享文档编辑、讨论区、任务管理、项目看板等,打破部门壁垒,促进跨团队、跨地域的实时协作。 知识管理宝库: 将企业内部积累的经验、知识、最佳实践沉淀为可检索、可复用的知识资产,构建企业级的知识库,加速新员工的学习和能力的提升。 数据洞察分析: 收集和分析业务流程和协作数据,为管理者提供决策支持,识别瓶颈,优化流程,驱动业务持续改进。 构建数字基石:企业内容管理深度解析 内容是企业运营的血液,高效的内容管理是实现高效协作的前提。本书将深入探讨企业内容管理(ECM)的各项关键技术和实践: 文档库与版本控制: 如何构建灵活、安全的文档库,实现文档的集中存储、分类、权限管理和详细的版本追踪。我们将讲解如何避免“哪个才是最新版本”的困惑,确保团队始终基于最新、最准确的信息工作。 元数据与分类体系: 深入理解元数据的重要性,如何设计和应用合理的元数据模型,为内容赋予丰富的上下文信息,使其更容易被查找、关联和分析。我们将探讨不同行业和业务场景下的分类策略。 权限管理与信息安全: 构建细粒度的权限模型,确保敏感信息只对授权用户可见,同时保障内容的可用性和完整性。我们将详细讲解用户、组、继承、限制等关键概念,以及如何应对复杂的权限场景。 内容生命周期管理: 从内容的创建、发布、审查、归档到最终的销毁,本书将指导您如何规划和实施完整的内容生命周期管理策略,确保信息在整个生命周期内的合规性和可管理性。 搜索与发现: 强大的搜索功能是内容管理的核心。我们将探讨如何优化搜索配置,利用关键词、元数据、全文搜索等多种手段,让用户能够快速、精准地找到所需信息,极大地提升工作效率。 驱动变革:企业流程自动化实践指南 现代企业需要在快速变化的市场中保持敏捷,而流程的僵化是阻碍企业发展的最大瓶颈。本书将带领您踏上企业流程自动化的实践之路: 流程建模与设计: 学习如何使用直观的可视化工具,将复杂的业务流程分解为可执行的步骤。我们将介绍业界通用的流程建模标准,如BPMN(业务流程建模与标记法),帮助您清晰地描绘业务流程的逻辑。 审批与审核流程: 深入讲解如何设计和实现各种类型的审批和审核流程,如请假审批、报销审批、合同审批等。我们将重点关注流程的灵活性、可追溯性和智能化。 自动化通知与提醒: 如何在流程的关键节点自动触发通知,及时提醒相关人员,确保流程的顺畅进行。我们将探讨不同场景下的通知策略,如邮件、短信、应用内通知等。 任务管理与协作: 将任务分配、状态跟踪、进度汇报等集成到流程中,让团队成员清晰地了解自己的任务和协作关系。我们将介绍如何利用任务列表、看板等工具提升团队的协作效率。 集成与扩展: 探讨如何将流程自动化平台与其他企业系统(如ERP、CRM、HR系统)进行集成,实现数据的互联互通,打通信息孤岛,构建更全面的自动化解决方案。 赋能团队:社交协作与知识共享的艺术 优秀的企业文化建立在开放、协作和知识共享的基础上。本书将深入探讨如何利用平台的力量,构建一个充满活力的数字协作空间: 团队站点与项目空间: 如何为不同的团队或项目创建专属的工作空间,聚合相关的信息、文档、讨论和任务,让团队成员拥有一个共同的工作中心。 实时沟通与讨论: 探索平台内置的讨论区、即时消息等功能,促进团队成员之间的实时交流,快速解决问题,分享见解。 动态消息与关注: 如何构建信息流,让用户能够关注感兴趣的内容、人员或项目,及时获取最新的动态更新,保持对关键信息的敏锐度。 知识库构建与维护: 将企业内的经验、最佳实践、常见问题解答等内容沉淀为可搜索、可复用的知识资产。我们将分享构建高质量知识库的技巧,以及如何激励员工贡献知识。 社交网络的构建: 鼓励员工之间的互动,建立联系,分享专业知识,形成互助互学的企业文化。 安全与合规:构筑可信赖的数字环境 在数字化转型过程中,信息安全和合规性是企业必须高度重视的基石。本书将系统性地阐述如何构筑一个安全、合规的数字工作环境: 身份与访问管理: 实施强大的身份验证和授权机制,确保只有合法用户能够访问受保护的信息和功能。 数据加密与保护: 了解数据在传输和存储过程中的加密技术,有效防止数据泄露。 审计与追踪: 建立完善的审计日志,记录用户的所有操作,以便进行事后追踪和责任分析。 合规性要求: 深入理解不同行业和地区的合规性法规(如GDPR、HIPAA等),并将其融入到平台的设计和使用中。 风险评估与应对: 学习如何进行信息安全风险评估,并制定相应的应对策略, proactively 应对潜在的安全威胁。 高级应用与未来展望:驾驭数字转型的未来 随着技术的不断进步,企业协作平台的功能也在不断演进。本书将触及一些更高级的应用场景和未来的发展趋势: 移动端协作: 如何在移动设备上实现无缝的协作体验,让员工随时随地访问信息、处理任务。 数据分析与商业智能: 如何利用平台收集的数据,进行深入的分析,为企业决策提供数据支持。 人工智能与机器学习的应用: 探讨人工智能在内容推荐、流程优化、智能搜索等方面的潜在应用。 与其他云服务的集成: 如何将协作平台与其他SaaS服务进行集成,构建更强大的企业级解决方案。 本书的目标是成为您构建、管理和优化企业数字工作流的宝贵指南。无论您是IT专业人士、业务经理还是团队领导者,都能从中获得切实可行的知识和技术,帮助您的企业更好地应对数字化时代的挑战,释放团队的潜能,实现可持续的业务增长。