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)的更多相关文章

  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. D3D11中的MSAA

    这两年我的工作都转到了D3D11,目前新出硬件几乎全部支持此标准,加上D3D11接口清晰,概念直观,等到windows7普及,想必未来都是D3D11的天下.最近时间较空,我陆续开始写些基础文章,希望对 ...

  2. rails从4.0.2降到3.2.9

    初学ruby和rails,想和教程同步,把rails的版本降下来.从4.0.2降到3.2.9 [lucas@lucas ~]$ rails -v Rails 4.0.2 尝试了 sudo gem un ...

  3. bat 结束进程

    @echo offEcho 先等待7秒..等待启动其他软件ping 127.0.0.1 -n 60Echo 正在杀死进程...taskkill /f /im funshion.exetaskkill ...

  4. Linux - 获取Shell命令帮助信息

    Manual Page Chapter List 1:所有用户可以操作的指令或可执行文件 2:系统核心调用的函数与工具 3:子调用,常用的函数与函数库 4:设备,硬件文件说明,通常是/dev/的文件 ...

  5. LeetCode——Gas Station

    There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...

  6. Repository模式中,Update总是失败及其解析

    在Repository模式中,我的Update方法总是无法更新实体,这个非常郁闷,Update方法如下: 1: public virtual void Update(T entity) 2: { 3: ...

  7. 如何将oc代码转换成运行时代码

    // 运行时 其实就是oc的底层  平时写的代码 最终都是转成底层的运行时代码以下面程序为例子: 如果我们想要看我们的main.m文件底层转换成了怎样的运行时代码 ,我们可以这样做. 1.打开终端  ...

  8. CheckListBox的实现方式分析

    实际项目中常常要实现有CheckBox列表框.但是WPF没有自带这样的一个控件,下面就用Style来实现这样的功能.而对于CheckBox列表框,又常常会有一个Select All的CheckBox来 ...

  9. 重构第5天:提升字段(Pull Up Field)

    理解:提升字段和前面讲解的方法提公很类似,可以说方式都是一样的.就是把继承类中经常用到的字段,提出来 放到基类中,达到通用的目的.提高代码重用性和可维护性. 详解:如下重构前的代码: using Sy ...

  10. f4: Facebook’s Warm BLOB Storage System——Erasure Code

    Facebook在OSDI 2014上发表论文f4: Facebook's Warm BLOB Storage System,这个系统主要目的就是降低存储成本,在容忍磁盘,主机,机架,数据中心的同时提 ...