Question 144
You are planning a feature upgrade for a SharePoint 2010 farm. The original feature with a version number of 1.0.0.0 is activated in numerous scopes within the farm. You have designed a new version of the feature, 2.0.0.0, which has been deployed and activated in many locations but not all. You need to recommend a way to use the object model to determine if the version number of each feature instance is less than the 2.0.0.0 version in all of the locations. Which approach should you recommend?
A. Use the object model to update the Version attribute of the feature in the existing Feature.xml file.
B. Call the Query Features method for each location hosting the feature in the various scopes.
C. Programmatically add an <Upgrade Actions> section to the Feature.xml file that specifies the new version number for the feature.
D. Create a feature receiver that calls the Upgrade method of the SPFeatures class for the feature.前端
解析:
你计划升级Sharepoint2010场内的某个功能,此功能的老版本1.0.0.0实例已经在场内的若干层次被激活了,你开发的新版本2.0.0.0 被部署到场内的许多位置,但并无覆盖全部1.0.0.0实例的位置。所以,你想要使用对象模型来鉴别场内的哪些功能实例其版本号是低于2.0.0.0的。
本题仍旧涉及Sharepoint的功能升级:
为了提供功能升级能力,Microsoft SharePoint Foundation 对象模型中已经添加了新的类型和成员。这些类型和成员包括:数据库
1. FeatureUpgrading 事件: 功能接收器 (SPFeatureReceiver) 如今可用于处理 FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>) 事件。您能够实现本身的自定义功能接收器来升级功能实例。
2.Version属性: 现有的 SPFeatureDefinition 类已具备一个 Version 属性,而 SharePoint Foundation 中的 SPFeature 类还提供一个新的 Version。可是,在 Feature.xml 文件中指定的当前功能版本是在 SPFeatureDefinition 类中定义的版本。Version 是惟一在指定做用域中与某个功能实例相关联的版本类,而该做用域与功能定义版本可能并不匹配。若是与某个特定做用域中的对象(例如 SPWebApplication 或 SPSite 对象)关联的一个或多个功能的版本号比与该功能实例关联的 Feature.xml 文件中指定的版本号低,则肯定该对象须要升级。【选项A所涉及的思路】,但本题是须要判断哪些功能实例其版本号是低于2.0.0.0的,而不是选项A所做的升级版本号。因此选项A也应该被排除。
3.QueryFeatures 方法:新的 QueryFeatures 方法容许您经过使用一组筛选条件来查询不一样做用域中的功能。SPWebService、SPWebApplication、SPContentDatabase 和 SPSite 类均提供一个 QueryFeatures 方法,其重载容许您指定不一样的条件来肯定返回哪一个功能实例结果集。编程
在升级期间,QueryFeatures 方法在它发现某个实例版本号低于当前 Feature.xml 定义版本号时,肯定某个功能实例是否过时。根据 Feature.xml 文件中的 UpgradeActions 指令,将为每个须要升级的功能实例调用升级。在成功升级某个功能实例以后,其版本号将会更新以匹配 Feature.xml 文件定义版本号。
从以上描述能够判断,QueryFeatures 方法正是咱们在本题须要用到的方法,因此选项B是本题的正解。
4. Upgrade 方法:SPFeature 类如今提供一个 Upgrade(Boolean) 方法来为全部做用域中的某个功能实例执行升级:Farm、WebApplication、Site 和 Web。在对一个从属功能实例调用 QueryFeatures 方法时,该方法首先升级相关层次结构中最高级别的功能实例,而后升级依赖该功能的全部功能实例。这种按层次结构升级的过程可确保全部从属功能实例与其所依赖的功能实例保持同步。【选项D所采用的思路】,但因为本题是要使用对象模型来鉴别场内的哪些功能实例其版本号是低于2.0.0.0的,因此与此方法无关。
至于选项C. <UpgradeActions>节,Feature.xml 文件中新增的 <UpgradeActions> 节指定可应用于指定功能的升级操做。能够将 <UpgradeActions> 节放置在 Feature.xml 文件的开头或末尾,使其位于 <Feature> 元素的内容中。经过该节,您能够为不一样的升级范围指定升级操做,而且能够包含应用于指定范围的升级操做列表。升级定义始终将功能升级到 <Feature> 元素中声明的版本。因此很显然,选项C并非本题想要的解决办法。安全
所以本题答案应该选 B 服务器
参考
http://msdn.microsoft.com/zh-cn/library/ee535708(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/ee537575(v=office.14).aspx架构
Question 145
You are designing a custom application to automate the deployment of SharePoint 2010 solutions. You need to ensure that the application uses Windows Power Shell cmdlets. Which cmdlet sequence should your application use?
A. Add-SPSolution, then Install-SPSolution.
B. Add-SPUserSolution, then Install-SPUserSolution.
C. Install-SPSolution, then Add-SPSolution.
D. Install-SPUserSolution, then Add-SPUserSolution.app
解析:
你开发了一个应用来完成自动部署Sharepoint2010解决方案的任务,你须要保证此应用使用Power Shell命令。你应该选择哪一个选项呢?
本题关于Sharepoint解决方案包的部署安装,Sharepoint解决方案包 是一个分发包,可将您的 SharePoint Server 2010 自定义开发工做分发到您的服务器场中的 Web 服务器或应用程序服务器。解决方案可用于打包和部署自定义功能、网站定义、模板、布局页、Web 部件、级联样式表和程序集。
您可使用解决方案包部署新解决方案,以及升级服务器场中的现有解决方案。您能够将全部 SharePoint Server 实体打包为一个文件,将该文件添加到解决方案存储区,以及将其部署到服务器场中的前端 Web 服务器。解决方案包可用于同步前端 Web 服务器,以使其状态与服务器场中其余 Web 服务器的状态一致。
在本地部署中,仅对从中启动部署操做的计算机部署解决方案文件。仅在将解决方案文件部署到服务器场中的全部可用服务器以后,才会在配置数据库中将该解决方案标记为“已部署”。而后会安装解决方案功能,并将架构和定义文件提交到配置存储区。
添加解决方案包:必须将解决方案包添加到 SharePoint Server 服务器场的解决方案数据库中,而后才能部署该解决方案包。
部署解决方案包:您可使用管理中心网站或 Windows PowerShell 来部署导入的解决方案。在使用 Windows PowerShellAdd-SPSolution cmdlet 将某解决方案添加到解决方案存储区后,必须将该解决方案部署到网站,而后才能对其进行访问。
上面描述说明,要先”添加”,再”安装部署”,因此能够直接排除选项C.D,由于它们的操做顺序反了。
选项A.B主要区别是两个PowerShell命令的区别:
Add-SPUserSolution: 向解决方案库上载新的沙盒解决方案。此 cmdlet 不会激活上载的沙盒解决方案;若要在网站集中激活此解决方案,请使用 Install-SPUserSolution cmdlet。
Add-SPSolution: 向服务器场上载 SharePoint 解决方案程序包。此 cmdlet 不会部署上载的 SharePoint 解决方案。使用 Install-SPSolution cmdlet 能够在服务器场中部署 SharePoint 解决方案。
因为本题是” 完成自动部署Sharepoint2010解决方案的任务”,因此应该选A。而选项B使用Add-SPUserSolution命令仅是针对的是沙盒解决方案,且仅是上载解决方案到Solution Gallery,而后用Install-SPUserSolution激活。less
所以本题答案应该选 A 布局
参考
http://technet.microsoft.com/en-us/library/cc262995(v=office.14).aspx
http://technet.microsoft.com/zh-cn/library/ff607715.aspx
http://technet.microsoft.com/zh-cn/library/ff607552.aspx
http://msdn.microsoft.com/zh-cn/library/vstudio/ee231544.aspx
http://msdn.microsoft.com/zh-cn/magazine/cc507633.aspx网站
Question 146
You are designing a SharePoint 2010 application. You have a requirement to deploy content between servers that experience frequent interruptions in connectivity. You need to design a strategy for exporting the content to a package and transporting the package to meet the requirements. Which approach should you recommend?
A. Create a job to export the content to a package, and then create a job to transport the package.
B. Create a path to export the content to a package, and then create a job to transport the package.
C. Use the Content Migration API to export the content to a package, and then create a path to transport the package.
D. Use the Content Migration API to export the content to a package, and then manually transport the package.
解析:
你开发了Sharepoint2010应用程序来完成向若干个服务器中部署某个内容,这些服务器处于频繁的相互交互状态。所以,你须要想出一个办法来完成把你想部署的内容打进一个包,而后再传送到对应的位置。你该如何操做呢?
本题涉及到Sharepoint的内容迁移,SharePoint Foundation 可提供一组支持将内容和依赖关系迁移到 SharePoint Foundation网站的高度灵活的应用程序编程接口 (API)。此内容可源自另外一个 SharePoint 网站,也能够来自外部源。SharePoint 内容迁移的设计基于导出/导入模型。也就是说,您首先须要将网站数据、依赖关系和网站结构导出到累计加入内容迁移数据包(或多个数据包)的数据文件。而后,在目标位置导入该内容迁移数据包,并在迁移目标上重建数据包中的解压缩内容以及数据、依赖关系和结构。
内容迁移 API 可提供简单而灵活的解决方案,用于在 SharePoint Foundation 网站之间迁移内容。可将与 Windows SharePoint Services 网站有关的内容连同任何依赖项(例如:安全性、角色、版本控制、工做流和其余元数据)一块儿导出到称做内容迁移数据包 的一个或多个 XML 格式的文件中。在导入到目标网站的过程当中,将提取并解释打包的数据。也能够在迁移到其余服务器以前将这些数据包保存到文件服务器。
使用内容迁移 API 的方法
能够经过如下三种方法调用内容迁移 API。
• Windows PowerShell
利用 Windows PowerShell,可使用导入和导出操做来迁移数据。可是,只能在网站范围内执行此操做。此外,没法选择保留在某些状况下多是必需的 GUID。
• SOAP
可使用在 Sites Web 服务中实现的 ImportWeb(String, String, String, Boolean, Boolean, Boolean, Int32) 和 ImportWeb(String, String, [], String, Boolean) 方法迁移远程服务器上的数据。可是,在使用 Stsadm.exe 时,只能在网站范围内执行操做。此外,没法保留在某些状况下多是必需的 GUID。
• Content Migration object model
对象模型可控制多数数据迁移方案。经过使用对象模型,能够将网站中的任何内容迁移到列表中的项或库中的单个文档。能够选择是否包含有关适用于要迁移的对象的安全性、版本控制、用户角色和其余元数据的信息。内容迁移对象模型
在本题的备选项中只有选项C.D使用到了Content Migration API,它们的区别在导入操做上。
因为内容迁移是一个分两步完成的过程。首先,将源中的内容导出到迁移包,而后将迁移包导入目标。表面上,导入内容只是导出的反向操做。可是,在导入操做中会有更复杂的流程和更多的决策点,这种复杂性并不只仅是像选项C那样设置一个Path那么简单,它涉及到许多属性的设置:当指定导入设置 (SPImportSettings) 时,请确保与相应的导出设置 (SPExportSettings) 相匹配。例如,若是 SPExportSettings 对象上的 FileCompression 属性设置为 true,则 SPImportSettings 对象的相应 FileCompression 属性也必须设置为 true。处理流程会提供一些需进行流程分支的决策点。第一个决策点为是否要保留对象标识。此属性设置肯定是经过对象 GUID(若是保留对象标识)仍是经过 URL 来定位导入对象。(有关对象标识和其余迁移概念的详细信息,请参阅选择性迁移中的关键概念。)下一个决策点与从新分配父对象有关。若是对象为层次结构中的顶级对象且您未保留对象标识,则必须从新分配父对象。另外一方面,若是对象不是顶级对象且您未保留对象标识,则无需从新分配父对象。因此在导入过程当中须要采用选项D所使用的人为介入的方式。
Sharepoint内容迁移是一个复杂的过程,不是靠job所能完成的(好比迁移内容来自于外部源时,靠Job显然做用不到外部源),咱们应该依赖于Sharepoint所提供的Content Migration API来做这种工做,这也是排除选项A.B的缘由。
所以本题答案应该选 D
参考
http://msdn.microsoft.com/zh-cn/library/bb249963(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/ms453426(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/cc768611(v=office.14).aspx