Sharepoint学习笔记—习题系列--70-573习题解析 -(Q85-Q87)
Question 85
You create a Microsoft .NET Framework console application that uses a Representational State Transfer (REST) API to query a custom list named Products.
The application contains the following code segment.
AdventureWorksDataContext codc = new AdventureWorksDataContext(new Uri("http://contoso/_vti_bin/listdata.svc"));
codc.Credentials = CredentialCache.DefaultCredentials;
You need to read all items in Products into an object.
Which method should you use?
A. codc.Products.All;
B. codc.Products.AsQueryable;
C. codc.Products.ElementAt;
D. codc.Products.ToList;
解析:
本题的操作思想是在一个Console应用程序中引用一个Service。通常当你在VS2010中创建此引用时,VS2010会为你创建一个service.edmx文件,此文件就是一个描述EDM(Entity Data Mode)的文件。有了此文件,你的Console应用程序就直接与此EDM打交道而不用管实际的数据是从哪儿来的(数据可以来自于Sharepoint,Data Base甚至内存),它就像一个中介代替,接收你的数据请求,处理你的请求,然后返还给你想要的结果。需要注意的是,此Service 引用将创建的是“强类型”的数据DataContext,此DataContext直接映射的是你整个网站的结构(如果你的数据源是Sharepoint网站的话)。
本题就是把上述描述的功能通过AdventureWorksDataContext类来实现,对于DataContext类型的数据,我们可以像对待一个类实例一样去访问它或者也可以使用类似于LINQ的语法去读取其中的数据。
在各选项中
选项A: codc.Products.All :返回所有的Products,[它并不是把这些Products读取到某个object中去]
选项B: codc.Products.AsQueryable: AsQueryable将一个序列向下转换为一个IQueryable, 它生成了一个本地查询的IQueryable包装。
选项C:codc.Products.ElementAt:返回序列中指定的Product
选项D:ToList:把所有的元素读取到List对象.[符合本题read all items in Products into an object的要求]
所以本题目正确选项应该是D
参考:
http://blogs.msdn.com/b/vssharepointtoolsblog/archive/2010/05/25/surfacing-business-data-in-a-web-part-that-you-create-by-using-sharepoint-tools-in-visual-studio.aspx
http://msdn.microsoft.com/en-us/library/vstudio/ee231515.aspx
http://extendtheenterprise.com/2010/11/03/using-sharepoint-2010-rest-apis-in-asp-net/
http://msdn.microsoft.com/en-us/library/bb342261.aspx
Question 86
You have a SharePoint Web application that has the URL http://intranet.
You are creating a Microsoft .NET Framework application that will display the title of the SharePoint Web application and will execute outside of the SharePoint server.
You create a textbox named textBoxTitle.
You write the following code segment. (Line numbers are included for reference only.)
01 ClientContext context = new ClientContext("http://intranet");
03 Web site = context.Web;
04 context.Load(site);
06 textBoxTitle.Text = site.Title;
You discover that line 04 generates an error.
You need to ensure that the .NET application displays the title of the SharePoint Web application in textBoxTitle.
What should you do?
A. Add the following line of code at line 02:
context.ExecuteQuery();
B. Add the following line of code at line 02:
context.ValidateOnClient = true;
C. Add the following line of code at line 05:
context.ExecuteQuery();
D. Add the following line of code at line 05:
context.ValidateOnClient = true;
解析:
这是一道关于Sharepoint客户端编程的题目,我们知道Sharepoint提供了三种客户端对象模型
1、ECMAScript(JavaScript、JScript) 客户端对象模型
2、.NET 托管客户端对象模型
3、Silverlight 客户端对象模型
本题是属于第2种,即.NET 托管客户端对象模型。
不管是哪种模型,我们都可以使用客户端对象模型来检索特定 SharePoint 客户端对象(ClientObject,或者 ECMAScript(JavaScript、JScript) 中的 ClientObject的属性,或检索子对象及其关联的属性或集合中的子项。对象模型使用显式数据检索语义,在检索正常工作的数据时,必须遵循这些语义。客户端对象模型不保留在客户端上本地检索的数据。
执行数据检索涉及以下过程:
1.使用 ClientContext() 构造函数 (JavaScript: ClientContext(serverRelativeUrl)返回客户端请求的上下文。
2.使用对象模型指定要检索的对象或要从中检索数据的对象。
3.通过就地加载或可查询加载来加载对象或集合,就地加载使用 Load<T>(T, []) (JavaScript: load(clientObject) 方法返回特定的对象、集合或数据;可查询加载使用 LoadQuery() (JavaScript: loadQuery(clientObjectCollection, exp)方法返回对象的可枚举集合。
4.通过在客户端对象模型的 .NET 托管版本中调用同步 ExecuteQuery() 方法执行查询,或者在 Silverlight 版本中,当代码从不修改用户界面 (UI) 的线程执行时,执行查询。在对象模型的 JavaScript 版本中,或者当 Silverlight 版本修改 UI 时,数据检索过程将使用异步回调模型,并且您必须调用 ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) 方法 (JavaScript: executeQueryAsync(succeededCallback, failedCallback)),该方法包括用于处理成功或失败请求的方法参数。当执行查询的方法调用返回(同步或异步)时,您可以访问从中启动查询的对象上的查询结果。
有了上面的了解,回过头来看本题就比较清楚了,分析本题的题干:
01 ClientContext context = new ClientContext("http://intranet"); //完成的是上面的第1步即:返回客户端请求的上下文
02
03 Web site = context.Web; //完成上面的第2步: 使用对象模型指定要检索的对象
04 context.Load(site); //完成上面的第3步:Load
05 //缺少第4步:通过在客户端对象模型的 .NET 托管版本中调用同步 ExecuteQuery() 方法执行查询,所以选项C应该是属于此行代码
06 textBoxTitle.Text = site.Title;
所以本题目正确选项应该是C
再来看其它选项:
选项A. Add the following line of code at line 02:
context.ExecuteQuery(); // ExecuteQuery方法执行早了,应该在Load之后执行
选项B.D 都是操作 ValidateOnClient属性,此属性继承自ClientRuntimeContext类,用以获取或设置客户端库是否需要验证方法的参数。显然与本题无关。
参考:
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.client.clientruntimecontext.validateonclient.aspx
http://msdn.microsoft.com/en-us/library/ee536158.aspx
Question 87
You have a SharePoint site collection that has the URL http://contoso/sites/finance.
You are creating a Microsoft .NET Framework console application that will use the SharePoint client object model to create a site in the site collection.
The application contains the following code segment. (Line numbers are included for reference only.)
01 ClientContext cCtx = new ClientContext("http://contoso/sites/finance");
02 Web root = cCtx.Site.RootWeb;
03 cCtx.Load(root);
04 WebCreationInformation webInfo = new WebCreationInformation();
05 webInfo.Title = "site1";
06 webInfo.Url = "site1";
07 webInfo.WebTemplate = "MPS#2";
08 root.Webs.Add(webInfo);
10 cCtx.Dispose();
You need to ensure that the application creates the site.
Which code segment should you add at line 09?
A. cCtx.ExecuteQuery();
B. cCtx.Site.RootWeb.Update();
C. root.Context.Dispose();
D. root.Update();
解析:
本题仍旧是关于Sharepoint客户端编程问题,参见Question86的讲解,可以看出题干的代码想访问Sharepoint的http://contoso/sites/finance网站集,并向其中添加一个新的Web。从01到08代码完成的是获取ClientContext对象,Web对象,然后设置新Web的相关参数并添加到Site Collection对象中。前面所有的准备工作都完成后,就差最后的执行按钮” ExecuteQuery”了。所以选项A应该添加到第09行。
选项B. cCtx.Site.RootWeb.Update(); 是试图完成保存对RootWeb的更新。
选项C. root.Context.Dispose();试图销毁root.Context。
选项D. root.Update();也是试图完成保存对RootWeb的更新。
所以本题目正确选项应该是A
参考:
http://msdn.microsoft.com/en-us/library/ee535521.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.update.aspx
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q85-Q87)的更多相关文章
- Sharepoint学习笔记—ECM系列—文档列表的Metedata Navigation与Key Filter功能的实现
如果一个文档列表中存放了成百上千的文档,想要快速的找到你想要的还真不是件容易的事,Sharepoint提供了Metedata Navigation与Key Filter功能可以帮助我们快速的过滤和定位 ...
- Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
文档集是 SharePoint Server 2010 中的一项新功能,它使组织能够管理单个可交付文档或工作产品(可包含多个文档或文件).文档集是特殊类型的文件夹,它合并了唯一的文档集属性以及文件夹和 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-576习题解析 为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是: 1. ...
- Sharepoint学习笔记—习题系列--70-573习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-573习题解析 为便于查阅,这里整理并列出了我前面播客中的关于70-573习题解析系列的所有问题,有些内容可能会在以后更新, ...
- Deep Learning(深度学习)学习笔记整理系列之(五)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(八)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(七)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(六)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(四)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(三)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
随机推荐
- seajs中spm压缩工具使用
seajs是个好东西,用起来很方便,但是她的压缩工具spm确不被网友看好,因为使用起来很麻烦,捯饬了一天多,终于勉强能压缩了,这里就简单记录一下. 按照地址:http://www.zhangxinxu ...
- java 去掉html标签
使用正则表达式删除HTML标签. import java.util.regex.Matcher; import java.util.regex.Pattern; public class HTMLSp ...
- codeforces B. Design Tutorial: Learn from Life
题意:有一个电梯,每一个人都想乘电梯到达自己想要到达的楼层!从a层到b层的时间是|a-b|, 乘客上下电梯的时间忽略不计!问最少需要多少的时间.... 这是一道神题啊,自己的思路不知不觉的就按 ...
- android小技巧和注意事项
在listView 或者 gridView 的使用中,通常不仅仅为了展现数据,更多的是操作数据.于是当控件重合在一起时,我们需要添加事件.就会出现一个问题,当点击一个控件和长按这个控件时,常常出现长按 ...
- 编码神器——Sublime Text 包管理工具及扩展大全
Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写 ...
- LeetCode——Find the Duplicate Number
Description: Given an array nums containing n + 1 integers where each integer is between 1 and n (in ...
- 堆表和%%lockres%%函数
在今天的文章里,我想向你展示下SQL Server里一个未公开的函数,还有你如何用那个函数来找出在哪页记录被存储. %%lockres%% 今天我想向你展示的未公开函数叫做%%lockres%%,它与 ...
- MVC中Action之间传值
一 MVCAction之间的传值 之前一直觉得关于MVC里面的传值,只能从<视图—>Action>,和<Actoin->视图>但是今天在项目里面需要实现将几个视图 ...
- c++转C#
//c++:HANDLE(void *) ---- c#:System.IntPtr //c++:Byte(unsigned char) ---- ...
- 环信SDK与Apple Watch的结合(3)
第3章主要介绍怎样在Watch App的页面上显示iPhone程序里的数据.主要操作的是“EMWatchOCDemo WatchKit Extension”这个文件夹,附源码EMWatchOCDemo ...