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 对象的属性、检索子对象及其属性,或检索集合中的子项。
 
所以本题目正确选项应该是A
参考:
http://msdn.microsoft.com/en-us/library/ee535231.aspx
http://msdn.microsoft.com/zh-cn/library/ee535491(v=office.14).aspx

Question 126
You create a custom list named Products.
You need to perform a Representational State Transfer (REST) query that returns products 30 to 39.
Which URL should you use?
A. /ListData.svc/Products(30) $skip=10
B. /ListData.svc/Products(39) $skip=30
C. /ListData.svc/Products $skip=10&$top=30
D. /ListData.svc/Products $skip=30&$top=10

解析:
 本题试图通过REST方式从Sharepoint的Products列表中读取从第30到39条记录。
 先了解一下REST的相关知识点:
  SharePoint Foundation 2010 引入了客户端对象模型,允许开发人员通过其选择的 Web 编程技术与 SharePoint 远程交流:.NET Framework、Microsoft Silverlight 或 JavaScript。     SharePoint 2013 引入了可与客户端对象模型完全匹敌的代表性状态传输 (REST) 服务。在 SharePoint 2013 中,客户端对象模型的几乎每个 API 都将有对应的 REST 端点。现在,开发人员可以通过任何支持 REST Web 请求的技术与 SharePoint 对象模型远程交互。
  SharePoint 2013 新增了使用 REST 与 SharePoint 网站远程交互的功能。现在,您可以使用任何支持标准 REST 功能的技术直接与 SharePoint 项目进行交互。
 要使用内置于 SharePoint 2013 的 REST 功能,您可以根据对应于所需客户端对象模型 API 的开放数据协议 (OData) 标准构建 RESTful HTTP 请求。client.svc Web 服务可以处理 HTTP 请求并以 Atom 或 JSON(JavaScript 对象表示法)格式作出适当的响应。然后,客户端应用程序必须分析该响应。
   SharePoint 2013 REST 服务中的终结点对应于 SharePoint 客户端对象模型中的类型和成员。通过 HTTP 请求,您可以使用这些 REST 端点对 SharePoint 工件(如列表和网站)执行典型的 CRUD(Create、Read、Update 和 Delete)操作。
  默认情况下,通过使用 Atom 协议根据 OData 规范对 SharePoint 2013 REST 服务响应进行格式设置。此外,REST 服务支持 HTTP Accept 标题,允许您规定以 JSON 格式返回响应。
OData 查询运算符支持
SharePoint REST 服务支持多种 OData 查询字符串运算符,使用这些运算符,您可以选择、筛选及订购您请求的数据。
选择要返回的字段:使用 $select 查询选项指定针对给定列表、列表项或实体集表示的其他 SharePoint 对象返回的字段。您可以使用 $select=* 来返回所有可用字段。
通常,如果您不指定 $select 查询选项,则 REST 服务默认返回所有可用字段。但是,在少数几种情况下,某些 SharePoint 对象包含检索资源极为密集的属性;为了优化 REST 服务性能,默认查询中并不包含这些属性,必须显式请求。例如,默认情况下不返回 SPWeb.EffectiveBasePermissions 属性,必须使用 $select 查询选项显式请求。
此外,您可以指定请求从其他列表返回预计字段和查询值。为此,请在 $select 和 $expand 查询选项中指定字段名称。例如:
http://server/site/_api/web/lists('guid')/Products?$select=Title,Products/Name&$expand=Products/Name
 选择要返回的项
 使用 $filter 查询选项选择要返回的项。下图列出 SharePoint REST 服务支持的筛选查询比较选项和功能。
 

下图展示了支持的 OData 查询选项:
  
单个值循环字段查询:单个值循环字段由 SharePoint REST 服务中两个单独的字段表示:一个字段表示实际字段值,另一个表示字段名称。您可以像对该数据类型的任何其他字段一样对循环字段值执行查询。例如,如果查询字段值为字符串,则可以在查询中使用字符串比较选项。
用户查询:在 SharePoint REST 服务中,用户用用户的友好(显示)名称,而非其别名或域\别名组合表示。因此,您必须阵对用户的友好名称构造用户查询。它不支持基于成员类型的用户查询。不支持使用 Current 运算符查询当前用户的 ID。
多值循环字段和用户查询: 由于多值循环字段作为多值字符串返回,因此无法进行查询(例如,不支持 Includes 元素或 NotIncludes 元素的等效物)。
对返回的项进行排序:使用 $orderby 查询选项指定如何对查询返回集中的项进行排序。要对多个字段进行排序,请指定以逗号分隔的字段列表。您还可以通过将 asc 或 desc 关键字附加到查询指定是按升序还是降序对项进行排序。
翻阅返回的项:使用 $top 和 $skip 查询选项选择查询以其他方式返回的项的子集。
使用 $top 选项,您可以选择返回返回集的前 n 个项。例如,以下 URI 请求实际返回潜在返回集中的前 10 个项:
http://server/site/_api/web/lists('<guid>')/items$top=10
使用 $skip 选项,您可以跳过指定数目的项返回剩余的项。
下面是REST的URL的一般语法结构:
http://SPServer/_vti/bin/ListData.svc/{Entity}[({identifier})]/[{Property}]
对于上述的元素:
ListData.svc – wcf srevices that follows REST protocol.
Entity – 是Sharepoint的列表的名字
Identifier –可以是列表项的ID
Property –列表的字段
你也可以使用过滤功能,例如下面的示例返回列表Cites中City字段为’NJ’的列表项
/_vti/_bin/ListData.svc/{Entity}?filter=Cities/ City eq ‘NJ’

现在回到本题,本题其实就是考你使用REST方式翻阅返回的项,本题的目的是读取从第30到39条记录:
选项A. /ListData.svc/Products(30) $skip=10  找到ID的值为30的项并返回,忽略前10条记录
选项B. /ListData.svc/Products(39) $skip=30  找到ID的值为39的项并返回,忽略前30条记录
选项C. /ListData.svc/Products $skip=10&$top=30  返回从10到39条的记录
选项D. /ListData.svc/Products $skip=30&$top=10  返回从30到39条的记录
 
所以本题目正确选项应该是D

参考:
http://mysharepointwork.blogspot.com/2010/09/using-rest-to-get-data-form-sharepoint.html
http://msdn.microsoft.com/en-us/library/ff798339.aspx

Sharepoint学习笔记—习题系列--70-573习题解析 -(Q125-Q126)的更多相关文章

  1. Sharepoint学习笔记—ECM系列—文档列表的Metedata Navigation与Key Filter功能的实现

    如果一个文档列表中存放了成百上千的文档,想要快速的找到你想要的还真不是件容易的事,Sharepoint提供了Metedata Navigation与Key Filter功能可以帮助我们快速的过滤和定位 ...

  2. Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现

    文档集是 SharePoint Server 2010 中的一项新功能,它使组织能够管理单个可交付文档或工作产品(可包含多个文档或文件).文档集是特殊类型的文件夹,它合并了唯一的文档集属性以及文件夹和 ...

  3. Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录

        Sharepoint学习笔记—习题系列--70-576习题解析  为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是:     1. ...

  4. Sharepoint学习笔记—习题系列--70-573习题解析 --索引目录

                  Sharepoint学习笔记—习题系列--70-573习题解析 为便于查阅,这里整理并列出了我前面播客中的关于70-573习题解析系列的所有问题,有些内容可能会在以后更新, ...

  5. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. Deep Learning(深度学习)学习笔记整理系列之(七)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Deep Learning(深度学习)学习笔记整理系列之(六)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(四)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  10. Deep Learning(深度学习)学习笔记整理系列之(三)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. java 动态创建数据库和动态连接数据库

    项目中有一个需求要动态创建数据库并且要动态连接数据库,本来以为还很难实现呢,在网上找了好久,都不是很理想,最后看到有人说创建数据库时,先连接到任意一个数据库,获得连接后用createStatement ...

  2. IOS学习之路七(使用 Operation 异步运行任务)

    在 application delegate 头文件(.h)中声明一个 operation 队列和两个 invocation operations: #import <UIKit/UIKit.h ...

  3. selenium webdriver (python) 第三版

    感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙 ...

  4. C++ 多态的实现原理与内存模型

    多态在C++中是一个重要的概念,通过虚函数机制实现了在程序运行时根据调用对象来判断具体调用哪一个函数. 具体来说就是:父类类别的指针(或者引用)指向其子类的实例,然后通过父类的指针(或者引用)调用实际 ...

  5. php + Redis 写的类似于新浪微博的feed系统

    最近接了一个feed系统的外包,类似于微博那种!客户端是ios和android,服务器用的php,数据库用的是redis.分享下服务器和数据库部分的功能!希望对大家有帮助. 关于redis的介绍,大家 ...

  6. sprint 1 总结

    1.之前已经总结了一下了.. 提前完成了任务,明天还要继续测试一下,看有没有BUG.这次搭建,遇到好多问题,服务器经常不稳定崩毁,毕竟免费...不能完美..途中经常小细节没注意,导致错误连连,卡了好几 ...

  7. c3p0配置

    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN&q ...

  8. 使用Eclipse Installer安装Eclipse

    由于一些原因,需要重新安装Eclipse,登陆到Eclipse官网下载Eclipse时发现社区又推出了Eclipse Installer.所以就下下来尝尝鲜. 刚开始确实有些选项不太明白,不过现在挺喜 ...

  9. 【转】http-equiv="X-UA-Compatible" 设置IE浏览器兼容模式详解

    文件兼容性用于定义让IE如何编译你的网页.此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式. 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE ...

  10. 2015 Multi-University Training Contest 2 1002 Buildings

    Buildings Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5301 Mean: n*m列的网格,删除一个格子x,y,用矩形 ...