
- SharePoint 教程
- SharePoint - 首頁
- SharePoint - 概述
- SharePoint - 型別
- SharePoint - 功能
- SharePoint - 設定環境
- SharePoint - 建立網站集
- SharePoint - API
- SharePoint - 中心管理
- SharePoint - 應用模型
- SharePoint - 整合選項
- SharePoint - 開發工具
- SharePoint - 列表功能
- 更多列表功能
- SharePoint - 自定義列表
- SharePoint - 庫
- SharePoint - Web 部件
- 網站列和內容型別
- SharePoint - 資料
- SharePoint - 伺服器物件模型
- SharePoint - 客戶端物件模型
- SharePoint - REST API
- SharePoint - 功能和元素
- SharePoint - 功能/事件接收器
- SharePoint - Azure 平臺
- SharePoint - 打包和部署
- SharePoint - 沙盒解決方案
- SharePoint - 應用
- SharePoint 有用資源
- SharePoint - 快速指南
- SharePoint - 資源
- SharePoint - 討論
SharePoint - 客戶端物件模型
本章我們將瞭解客戶端物件模型 (CSOM)。這是 SharePoint 2010 中新增的用於構建遠端應用程式的兩個 API 之一。
客戶端物件模型的設計目標之一是儘可能模仿伺服器物件模型,以便已經熟悉伺服器端開發的開發人員學習曲線更短。
客戶端物件模型的核心是一個名為 Client.svc 的 Web 服務,它位於 _vti_bin 虛擬目錄中。我們不應該直接與 Client.svc 通訊,但我們得到了三個代理或入口點,我們可以使用它們。它們是:
- .NET 託管程式碼。
- JavaScript。
- JavaScript。
程式碼與這些代理通訊,然後這些代理最終與 Web 服務通訊。
由於這是一個遠端 API,並且透過 Web 服務呼叫與 SharePoint 通訊,因此客戶端物件模型旨在允許我們批次處理命令和資訊請求。
.NET 託管程式碼
.NET 託管實現的兩個核心程式集是:
Microsoft.SharePoint.Client.dll 和 Microsoft.SharePoint.Client.Runtime.dll。
Silverlight 程式碼
Silverlight 實現的程式集位於 TEMPLATE\LAYOUTS\ClientBin 中。程式集名稱也以 Microsoft.SharePoint.Client 開頭。對於除一個程式集之外的所有程式集,程式集名稱以 Silverlight 結尾。
Silverlight 實現的兩個核心程式集是:
- Microsoft.SharePoint.Client.Silverlight.dll
- Microsoft.SharePoint.Client.Silverlight.Runtime.dll
JavaScript
客戶端物件模型的 JavaScript 實現位於 SharePoint 系統根目錄下的 TEMPLATE\LAYOUTS 資料夾中。JavaScript 庫名稱均以 SP 開頭。三個核心庫是 SP.js、Sp.Runtime.js 和 SP.Core.js。
客戶端物件模型在 SharePoint 2013 中得到了擴充套件。
使用 .NET 使用 Load 檢索資源
讓我們看一個簡單的示例,在這個示例中,我們將使用 Windows 窗體應用程式使用客戶端物件模型的託管實現。因此,首先我們需要建立一個新專案。
步驟 1 - 在中間窗格中選擇Windows 窗體應用程式,並在“名稱”欄位中輸入名稱。單擊“確定”。

步驟 2 - 專案建立後,讓我們新增一個列表框和一個按鈕,如下所示。要使用客戶端物件模型,我們需要新增幾個程式集引用。右鍵單擊“引用”,然後選擇“新增引用”。

步驟 3 - 在程式集下的左側窗格中選擇擴充套件。
客戶端物件模型的託管實現的兩個核心程式集是Microsoft.SharePoint.Client 和 Microsoft.SharePoint.Client.Runtime。選中這兩個選項,然後單擊“確定”。

現在雙擊“載入”按鈕以新增如下所示的事件處理程式。
using Microsoft.SharePoint.Client; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ClientObjectModel { public partial class Form1 : Microsoft.SharePoint.Client.Form { public Form1() { InitializeComponent(); } private void loadBtn_Click(object sender, EventArgs e) { using (var context = new ClientContext("http://waqasserver/sites/demo")) { var web = context.Web; context.Load(web); context.Load(web.Lists); context.ExecuteQuery(); ResultListBox.Items.Add(web.Title); ResultListBox.Items.Add(web.Lists.Count); } } } }
客戶端物件模型的入口點是客戶端上下文。它是SPContext物件的客戶端版本的遠端版本。這是一個可處置型別,因此它包含在using語句中。我們在ClientContext中傳遞 SharePoint 站點的 URL。
所以現在,我們有了上下文。我們需要一個物件來表示當前站點,那就是var web = context.web。
注意 - 請記住,此物件只是一個空殼,因此我們需要使用 context.load 並傳遞 web 物件來載入 web 物件。這表示我們希望在下一個批次檢索中填充 web 物件屬性。
接下來,我們需要呼叫context.ExecuteQuery,這實際上啟動了批次檢索。我們從伺服器檢索屬性值並新增到列表框中。
編譯並執行上述程式碼後,您將看到以下輸出:

單擊“載入”按鈕,您將看到我們同時獲得了列表的標題和計數。
它使我們的專案設定能夠使用客戶端物件模型來使用 load 方法檢查載入資源。