Question 125
You are creating an application for SharePoint Server 2010.
The application will run on a remote computer.
You need to identify a data access method to query lists in the application.
Strongly-typed access to columns must be provided from within Microsoft Visual Studio 2010.
Which method should you use?
A. client object model
B. LINQ to SharePoint
C. Representational State Transfer (REST)
D. server object model 解析:
本题是想在一个远程运行的应用程序上通过强类型方式访问Sharepoint列表数据。
所以核心是:远程+强类型
我们知道REST(Representational State Transfer)不是强类型访问,REST协议的一个特点,就是可以把我们需要的操作都浓缩在一个URL中,并可以通过GET、POST、PUT、DELETE、MERGE这几种HTTP访问方式,来实现列表数据的增、删、查、改。通过这种方式访问的时候,客户端使用JSON的格式把需要的数据通过某种HTTP方法发送至服务器,服务器收到相关请求,处理后即可以返回Xml格式(Atom协议),也可以返回JSON格式(如果不特别声明的话,默认使用Atom协议,也就是Xml格式)的处理结果。和客户端对象模型相同的是,我们通过Url,可以定义所需要返回的那些字段值,从而减少客户端和服务器端的数据传递大小。所以,REST所提供的接口XML/JSON都是字符串类型(需要注意:由VS创建的用于封装你的List/Content类型的代理类[Proxy]却是强类型的)。
LINQ to SharePoint 提供程序是在 Microsoft.SharePoint.Linq 命名空间中定义的。它将 LINQ 查询转换为协作应用程序标记语言 (CAML) 查询。开发人员无需再了解如何编写 CAML 查询。LINQ 查询可在服务器代码中使用。若要从客户端应用程序中查询请使用 SharePoint 对 ADO.NET Data Services 的支持。所以LINQ to SharePoint不能在客户端(Remote Computer)使用。
server object model 就是服务器端对象模型,顾名思义,只能在服务器端使用。
server object model 即客户端对象模型。客户端对象模型包含了许多与Sharepoint对象打交道的强类型类。Microsoft SharePoint Foundation 2010 引入了三个用于从以下位置与 SharePoint 网站交互的全新客户端 API:.NET 托管应用程序(Microsoft .NET Framework 3.5 或更高版本)、Microsoft Silverlight 应用程序(Silverlight 2.0 或更高版本)或在浏览器中执行的 ECMAScript(JavaScript、JScript)。这些新的 API 可访问服务器端对象模型的 Microsoft.SharePoint 命名空间中包含的部分类型和成员。
新客户端对象模型提供了面向对象的系统,用于从远程计算机与 SharePoint 数据进行互操作,并且这些客户端对象模型在许多方面都比现有 SharePoint Foundation Web 服务更易于使用。您可以先检索代表当前请求上下文的客户端上下文对象,通过此上下文,您可以访问网站集级别或 SharePoint Foundation 层次结构中更低级别的客户端对象。客户端对象从 ClientObject 类 (JavaScript: ClientObject (该链接可能指向英文页面)) 继承,您可以使用它们检索特定 SharePoint 对象的属性、检索子对象及其属性,或检索集合中的子项。