📅  最后修改于: 2020-11-19 08:15:43             🧑  作者: Mango
在本章中,我们将介绍客户端对象模型或CSOM。这是用于构建添加到SharePoint 2010的远程应用程序的两个API之一。
客户端对象模型的设计目标之一是尽可能地模仿服务器对象模型,因此对于已经熟悉在服务器端进行开发的开发人员来说,学习曲线会更短。
客户端对象模型的核心是一个名为Client.svc的Web服务,该服务位于_vti_bin虚拟目录中。我们不应该直接与Client.svc通信,但是可以给我们提供三个代理或入口点。他们是-
该代码与这些代理进行通信,然后这些代理最终与Web服务进行通信。
由于这是一个远程API,并且可以通过Web服务调用与SharePoint进行通信,因此客户端对象模型旨在允许我们批处理命令和信息请求。
.NET管理实现的两个核心程序集是-
Microsoft.SharePoint.Client.dll和Microsoft.SharePoint.Client.Runtime.dll。
Silverlight实现的程序集位于TEMPLATE \ LAYOUTS \ ClientBin中。程序集名称也以Microsoft.SharePoint.Client开头。对于除一个以外的所有程序集,程序集名称均以Silverlight结尾。
Silverlight实现的两个核心程序集是-
客户端对象模型上的JavaScript实现位于SharePoint系统根目录下的TEMPLATE \ LAYOUTS文件夹中。 JavaScript库名称均以SP开头。这三个核心库是SP.js,Sp.Runtime.js和SP.Core.js。
客户端对象模型在SharePoint 2013中进行了扩展。
让我们看一个简单的示例,在该示例中,我们将使用Windows窗体应用程序使用客户端对象模型的托管实现。因此,首先我们需要创建一个新项目。
步骤1-在中间窗格中选择“ Windows Forms Application” ,然后在“名称”字段中输入名称。单击确定。
步骤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中将URL传递到SharePoint网站。
所以现在,我们有了上下文。我们需要一个对象来表示当前站点,即var web = context.web 。
注–请记住,该对象只是一个空外壳,因此我们需要使用context.load加载Web对象并传递该Web对象。这表明我们希望在下一个批次检索中填充Web对象属性。
接下来,我们需要调用context.ExecuteQuery ,这实际上开始了批处理检索。我们从服务器检索属性值并添加到列表框中。
编译并执行上述代码后,您将看到以下输出-
单击“加载”按钮,您将看到列表的标题和数量。
它使我们的项目设置可以使用客户端对象模型通过load方法检查加载资源。