若要构建应用程序,您必须添加对以下两个程序集的引用:Microsoft.SharePoint.Client.dll 和 Microsoft.SharePoint.Client.Runtime.dll。安装 SharePoint Foundation 时将会在服务器上安装这两个程序集。这两个程序集位于以下目录中:
%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI
构建应用程序
-
启动 Microsoft Visual Studio 2010。
-
在“文件”菜单上,指向“新建”,然后单击“项目”。
-
在“新建项目”对话框的“最近打开的模板”窗格中,展开“Visual C#”,然后单击“Windows”。
-
在“最近打开的模板”窗格的右侧,单击“控制台应用程序”。
-
默认情况下,Visual Studio 会创建一个面向 .NET Framework 4 的项目,但您必须面向 .NET Framework 3.5。从“打开”对话框上部的列表中,选择“.NET Framework 3.5”。
-
在“名称”框中,键入要用于项目的名称,例如 FirstClientApiApplication。
-
在“位置”框中,键入希望放置项目的位置。
图 2. 在“新建项目”对话框中创建解决方案
-
单击“确定”以创建解决方案。
添加对 Microsoft.SharePoint.Client 程序集和 Microsoft.SharePoint.Client.Runtime 程序集的引用
-
您在客户端对象模型应用程序中使用的类位于 Microsoft.SharePoint.Client.dll 和 Microsoft.SharePoint.Client.Runtime.dll中。在前面我已经提到,在添加引用之前,您必须将这些程序集从运行 SharePoint Foundation 的服务器复制到客户端开发计算机。
-
在“项目”菜单上,单击“添加引用”以打开“添加引用”对话框。
-
选择“浏览”选项卡,导航到放置 Microsoft.SharePoint.Client.dll 和 Microsoft.SharePoint.Client.Runtime.dll的位置。选择这两个 DLL,然后单击“确定”,如图 3 所示。
图 3. 添加对程序集的引用
向解决方案中添加示例代码
-
在 Visual Studio 中,将 Program.cs 源文件的内容替换为以下代码。
using System; using Microsoft.SharePoint.Client; class DisplayWebTitle { static void Main() { ClientContext clientContext = new ClientContext("http://intranet.contoso.com"); Web site = clientContext.Web; clientContext.Load(site); clientContext.ExecuteQuery(); Console.WriteLine("Title: {0}", site.Title); } }
-
将 ClientContext 构造函数中的 URL 替换为 SharePoint 网站的 URL。生成并运行该解决方案。该示例将输出网站的标题。
与使用 SharePoint Foundation 服务器对象模型一样,您可以为想要访问的 SharePoint 网站创建上下文。然后,可以从该上下文中检索对该网站的引用。
调用 ExecuteQuery 方法将会导致 SharePoint Foundation 2010 托管客户端对象模型向服务器发送请求。在应用程序调用 ExecuteQuery 方法之前,不会产生网络流量。
该示例中非常重要的一点是,调用 Load 方法实际上并不会加载任何内容,而是通知客户端对象模型,在应用程序调用 ExecuteQuery 方法时,您需要加载 siteCollection 对象的属性值。
以下是与服务器的所有交互均需遵循的模型:
- 您将需要执行的操作告知 SharePoint Foundation 2010 托管客户端对象模型。这包括访问对象(例如,List 类、ListItem 类和 Web 类的对象)的属性值,要运行的 CAML 查询,以及要插入、更新或删除的对象(如 ListItem 对象)。
- 然后,您调用 ExecuteQuery 方法。在调用 ExecuteQuery 方法之前,不会发生任何网络流量。在调用该方法时,应用程序将只注册其请求。
从该示例中可以看出,最简单的方法是,先设置一个查询,然后执行该查询。这会导致客户端对象模型向服务器发送流量并接收来自服务器的响应。下一节将详细介绍该模型,并演示为何要这样设计,最后演示如何使用该模型构建应用程序。