Sharepoint学习笔记—习题系列--70-573习题解析 -(Q54-Q56)
Question 54
You create custom code to import content to SharePoint sites.
You create a custom site definition by using Microsoft Visual Studio 2010.
You need to ensure that when a new site that uses the site definition is created, the custom code executes after the site is created.
Which class should you add to the project?
A. SPChangeFile
B. SPItemEventReceiver
C. SPWebEventReceiver
D. SPWebProvisioningProvider
解析:
本题想要做的事有2步:1.开发并部署一个Site Definition。 2.在使用此Site Defintion创建了一个新的Site后,运行一段代码达到向此Site导入指定的内容。问题是:使用哪个类可以达到第二步的目的。
选项A. SPChangeFile: 表示对file所作的修改,此file位于list之外或属于list的附件存在。网上可以找到某些关于此对象的应用示例
eg.使用Sharepoint Designer打开一个网站,添加一个新的Page或修改某个ASPX页面(在此页面上没有存放items),然后你可以使用如下的示例代码去捕获到SPFile对象以及其中的内容:
using (siteCollection)
{using (site)
{SPChangeQuery query = new SPChangeQuery(true, true);
SPTimeZone timeZone = site.RegionalSettings.TimeZone;
SPList list = site.Lists["MyDL"];
SPChangeToken start = new SPChangeToken(SPChangeCollection.CollectionScope.Web, site.ID, DateTime.Now.AddDays(-1));
query.ChangeTokenStart = start;
SPChangeCollection changes = site.GetChanges(query);
foreach (SPChange change in changes)
{if (change is SPChangeFile)
{Console.WriteLine("Date: {0}", change.Time.ToString());}
}}}
从上可以看出选项A与本题没什么关系。
选项B. SPItemEventReceiver 此类是常规EventHandler编写继承的基类之一。它提供了一系列捕获发生在Item之上的事件的方法。例如: ItemAdded、ItemAdding、ItemAttachmentAdded、ItemAttachmentAdding、ItemAttachmentDeleted、ItemAttachmentDeleting、ItemCheckedIn、ItemCheckedOut、ItemCheckingIn、ItemCheckingOut、ItemDeleted、ItemDeleting、ItemFileConverted、ItemFileMoved、ItemFileMoving、ItemUncheckedOut、ItemUncheckingOut、ItemUpdating、ItemUpdated等等。很明显,这个与Item的Event相关的类与本题的Site Definition相关动作没有关系。
选项C. SPWebEventReceiver 与选项B类似,此类提供了一系列捕获发生在Web之上的事件的方法,包括:SiteDeleted,SiteDeleting,WebDeleted,WebDeleting,WebMoved,WebMoving在SPWebEventReceiver中你找不到能捕获Site创建的事件的方法。而此类方法是我们解决本题必须的,这很好理解,因为SPWebEventReceiver是针对一个”已经”创建好的Site所提供的方法,它并不能参与Site的创建过程。
选项D. SPWebProvisioningProvider 它的介绍可以参考上一个Question 53。它是本题的答案,因为SPWebProvisioningProvider类可以介入到Site的创建,我们可以在site provisioning handler中加入我们的代码,以在Site创建好之后实现进一步导入用户指定的内容的目的。
所以本题目正确选项应该是D
参考:
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.spchangefile.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebprovisioningprovider.aspx
Question 55
You create a custom Web Part.
You need to verify whether the Web Part causes any memory leaks.
Which tool should you use?
A. SPDisposeCheck.exe
B. SPMetal.exe
C. Wca.exe
D. WinDbg.exe
解析:
本题主要是考你使用什么工具来检查代码中潜在的内存泄漏。
选项A. SPDisposeCheck.exe SPDisposeCheck是开发Sharepoint项目必不可少的工具之一,用它可以检测出你所写的代码是否正确销毁掉诸如SPSite或者SPWeb之类的“资源消耗大户”(你打开一个spsite或者spweb对象 将占用1M到2M的内存,如果你不断打开此类对象并没有及时关闭,那么你的内存就会很快被消耗掉)。 有关它的具体使用,请参考我的另一篇博文:http://www.cnblogs.com/wsdj-ITtech/archive/2011/11/24/2259773.html
选项B. SPMetal.exe: 是一类用于生成实体类的命令行工具,这些类可向 Microsoft SharePoint Foundation 内容数据库提供面向对象的界面。虽然这些类主要用于 LINQ to SharePoint 查询,但它们也可用于通过利用并发冲突解决方法来添加、删除和更改列表项。此外,还可将它们作为用于引用内容的常规 SharePoint Foundation 对象模型的替代项使用。 所以,此工具并不是用来检查代码内存泄漏的工具。
选项C. Wca.exe 工作流通信活动命令行实用工具:是一个Windows Workflow Foundation 工具。它用于从包含一个或多个 ExternalDataExchangeService 接口的输入程序集中为严格绑定的 HandleExternalEventActivity 活动和 CallExternalMethodActivity 活动派生的类生成代码文件。对于程序集中每个接口的每个方法和事件,活动是使用对应于方法/事件参数的强类型属性创建的。这些严格绑定的活动可通过强类型改善设计体验,并通过放弃使用反射来实现性能的小幅提升。
选项D. WinDbg.exe : WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。WinDbg.exe也可以用来辅助检查内存泄漏,但是,它却无法针对Sharepoint的对象模型来检查Sharepoint代码中潜在的内存泄漏问题。
所以本题目正确选项应该是A
参考:
http://msdn.microsoft.com/zh-cn/library/ee538587(v=office.14).aspx
http://archive.msdn.microsoft.com/SPDisposeCheck
http://msdn.microsoft.com/zh-cn/library/vstudio/bb675220(v=vs.90).aspx
http://www.cnblogs.com/wsdj-ITtech/archive/2011/11/24/2259773.html
Question 56
You are creating a Web Part that will be deployed as a sandboxed solution.
You need to ensure that the Web Part can write debugging information to the SharePoint trace logs.
Which class should the logging component inherit?
A. SPDelegate
B. SPLog
C. SPPersistedObject
D. SPProxyOperation
解析:
本题的意图是想在一个Sandbox Solution中写入信息到Trace Log文件。
我们知道,Sandbox Solution是一种受限的Solution,它是无法操作SharePoint trace logs文件的。但是有的时候,SandBox Solution又的确需要完成一些它自身无权去完成的操作。对于这种情况Sharepoint提供了另外一种途径,即完全信任代理(Full Trust Proxy),这种途径的主要思路就是:通过编写一个继承自SPProxyOperation抽象类的自定类,在此类中实现完全信任模式下的代码功能,然后把它的程序集部署到GAC(global assembly cache),通过此方式把完全信任代理功能暴露给沙盒以沙盒代码调用,这类似于创建了一个警戒区(特区),你可以对此区域的Solution进行特殊的关照。
完全信任代理(Full Trust Proxy)具体的实现可以参考我的博文(共三篇文章):
http://www.cnblogs.com/wsdj-ITtech/archive/2011/09/05/2166617.html
http://www.cnblogs.com/wsdj-ITtech/archive/2011/09/15/2177790.html
http://www.cnblogs.com/wsdj-ITtech/archive/2011/09/16/2177820.html
选项A. SPDelegate: 是一个抽象类,提供所有的升级代理(Upgrade delegates),它受控于Windows SharePoint Services Upgrade Manager。可通过Object属性取得代理的对象。总之它是一个与Windows SharePoint Services升级相关的类。很显然与Sandbox Solution没任何关系。
选项B. SPLog 它也是一个与Windows SharePoint Services升级相关的类,用于操作升级时的Log。所以它也与本题的要求无关。
选项C. SPPersistedObject 用于为对象提供自动序列化其状态值并持久保存以及在需要时获取前面所保存的值并反序列化的相关方法。也即,它属于定义自定义管理设置方面的类。在 Windows SharePoint Services 平台上构建应用程序时,您可能需要创建一个类以定义应用程序的自定义属性设置并提供用于存储这些设置的方法。
Windows SharePoint Services 3.0 中的 Microsoft.SharePoint.Administration 命名空间引入了对象持久性,使用它可将派生自基础 SPPersistedObject 类的类保留到 Windows SharePoint Services 数据库中。
若要创建保留的对象,您可以创建一个类,该类从 SPPersistedObject 或派生自 SPPersistedObject 的 Microsoft.SharePoint.Administration 命名空间中的某个类继承。此类可以定义一个用于存储 Windows SharePoint Services 数据库中的自定义属性设置的对象模型。例如,您可以创建通过某种方式使用 Windows SharePoint Services 的 Windows 服务,这将需要创建一个继承自 SPWindowsService 类的类,以便存储特定于 Windows 服务的设置。已编译的 DLL 将为客户提供一个可用于检索或保存属性的对象模型。Windows SharePoint Services 提供用于存储设置的方法和位置,并管理它们对服务器场中的所有服务器和过程(包括缓存刷新)的可用性。
在实际使用中,我们也可用它来保存用户的某些配置信息。
但很显然,此类也无法完成本题要求的功能。
所以本题目正确选项应该是D
参考:
http://msdn.microsoft.com/en-us/library/ff798433.aspx
http://msdn.microsoft.com/zh-cn/library/gg622616(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.upgrade.splog.aspx
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.administration.sppersistedobject_members.aspx
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q54-Q56)的更多相关文章
- 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 ...
随机推荐
- java中解决组件重叠的问题(例如鼠标移动组件时)
java中解决组件覆盖的问题! 有时候在移动组件的时候会出现两个组件覆盖的情况,但是你想让被覆盖的组件显示出来或者不被覆盖! 在设计GUI时已经可以定义组件的叠放次序了(按摆放组件的先后顺序) ...
- swift实现冒泡排序
刚刚坐着没事干,就用swift语言写了写冒泡排序,还望高手指点.拍砖!哈哈! 废话不多说,上代码! import Cocoa var array = [,,,,,,,,,,,,,,,,,] print ...
- BEA-150021 - The admin server failed to authenticate the identity of the user username starting the managed server.
原因:用户名.密码错误. 解决方法:修改boot.properties用户名密码为明文方式,然后重新启动就OK了,自动加密.
- HTML5 新特性总结
1.使用autocomplete 自动完成必须给input 加上name. 2.SVG图形代码 复制https://developer.mozilla.org/zh-CN/docs/Web/SVG/E ...
- 浅谈java类集框架和数据结构(1)
在另外一篇博客我简单介绍了java类集框架相关代码和理论. 这一篇博客我主要分析一下各个类集框架的原理以及源码分析. 一:先谈谈LinkedList 这是LinkedList源码的开头,我们能看到几点 ...
- Blocked Process Report
当同个对象上有互斥的锁存在时,查询需要等待很长时间,我们是否可以收到来自SQL Server提醒?答案是可以的,做法非常简单,因为SQL Server为你提供了称为Blocked Process Re ...
- 基于HTML5技术的电力3D监控应用(三)
继(一)和(二)之后不少,不少网友问我移动终端的使用问题,因为我们项目这次采用Android平板终端,所以我对这方面有点肤浅的研究,这篇分享些项目经验总结,希望对大家有所帮助. 电力3D项目去年底刚立 ...
- CSS魔法堂:选择器及其优先级
一.前言 首先看看一道阿里这期网申的题目吧! 1.找出下面优先级相同的选择器 A. img.thumb:after B.[data-job="frontend"]::firs ...
- 以神经网络使用为例的Matlab和Android混合编程
由于需要在一个Android项目中使用神经网络,而经过测试发现几个Github上开源项目的训练效果就是不如Matlab的工具箱好,所以就想在Android上使用Matlab神经网络代码(可是...) ...
- 30 分钟快快乐乐学 SQL Performance Tuning
转自:http://www.cnblogs.com/WizardWu/archive/2008/10/27/1320055.html 有些程序员在撰写数据库应用程序时,常专注于 OOP 及各种 fra ...