SharePoint 2013是業界領先的企業協作平臺,隨著微軟云戰略藍圖的推行,SharePoint 2013也將重點逐步向云端轉移。它強大的企業協同辦公、搜索、門戶發布等功能,越來越受到國內外企業的歡迎。
本書共分12章,重點講解基于SharePoint的開發技術與技巧,對SharePoint的機制和架構進行了較多的講解和分析。內容包括SharePoint基礎,對象模型,解決方案,外觀定制,事件接收器,應用程序,BCS應用,使用Infopath,工作流開發等。最后兩章分別給出門戶定制和辦公用品申請兩個實例,為讀者展示一個從無到有的實現過程。
本書適合SharePoint初學者,以及有一定基礎的SharePoint開發人員進行技術的強化和經驗的積累,也適合作為高等院校和培訓學校相關專業的教學參考書。
作者把自己的應用開發實踐經驗融入到本書中,為讀者講述分析問題、解決問題的方法和技巧,對實際開發工作具有指導意義,能夠讓初入這個領域的新手少走彎路。
本書詳細講解SharePoint 2013的使用,帶領讀者領略SharePoint強大的接口,逐步學習SharePoint開發,掌握實用的應用開發技術。
從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月
劉中正,高級研發工程師,微軟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