Question 142
You have a Feature that contains an image named ImageV1.png.
You plan to create a new version of the Feature.
You need to ensure that when the Feature is upgraded, the image is renamed as ImageV2.png. You must achieve this goal by using the minimum amount of development effort.
Which element should you configure in the Feature definition file?
A. <ApplyElementManifests>
B. <CustomUpgradeAction>
C. <MapFile>
D. <VersionRange>

解析:
  本题是你升级了一个Feature,你要保证升级后的Feature中引用的一个图片资源从ImageV1.png指向了ImageV2.png,前提是工作量最少。
  先来快速了解一下Sharepoint的功能升级的相关知识点:
  在 Microsoft SharePoint Foundation 中,每个功能都具有一个在与其对应的 Feature.xml 文件中指定的版本号。在某个特定范围内激活一个功能时,会创建一个与该功能的版本关联的功能实例。利用 SharePoint Foundation 中的功能版本控制,可轻松跟踪功能及其关联实例。之后,当您部署新版本的功能时,SharePoint Foundation 检测到关联的功能也需要进行升级,因为功能实例的版本号小于当前的 Feature.xml 文件中指定的新版本号。
   最佳做法是,决不将 FEATURES 文件夹中的功能文件与解决方案部署文件或解决方案升级文件分开放置,因为功能升级是一个高级部署选项,它不会在部署期间验证功能 XML。
   在运行功能升级时,还会根据新 Feature.xml 文件中指定的升级操作对需要升级的功能实例进行升级。SharePoint Foundation 使用新的 QueryFeatures 方法(可应用于顶级对象,如 SPWebApplication 和 SPSite),基于功能实例的版本号来确定需要升级的功能实例。新 Feature.xml 文件中有一个部分,可用于指定将特定的功能实例从早期版本升级到最新版本所需的升级操作。升级基础结构会查询需要升级的功能实例集,然后升级其中的每个功能实例。此活动会涉及声明性升级操作和自定义升级代码。在 SharePoint Foundation 中,将跟踪每个功能实例的版本号。
下面重点了解与本题相关的Feature.xml:
Feature.xml 文件中新增的 <UpgradeActions> 节指定可应用于指定功能的升级操作。
可以将 <UpgradeActions> 节放置在 Feature.xml 文件的开头或末尾,使其位于 <Feature> 元素的内容中。通过该节,您可以为不同的升级范围指定升级操作,并且可以包含应用于指定范围的升级操作列表。升级定义始终将功能升级到 <Feature> 元素中声明的版本。
以下代码显示可在 Feature.xml 文件中定义的示例 <UpgradeActions> 节。

<UpgradeActions
ReceiverAssembly="MyFeatureReceiver,
Version=1.0.0.0,
Culture=neutral,
PublicKeyToken=2f2197d99d6e2871"
ReceiverClass="FeatureReceiver.TestFeatureReceiver">
<CustomUpgradeAction
Name="DeleteField">
<Parameters>
<Parameter
Name="FieldName">Address3
</Parameter>
</Parameters>
</CustomUpgradeAction>
<VersionRange
BeginVersion="2.0.0.0"
EndVersion="5.0.0.0">
<!-- Here you specify other upgrade actions to apply to Feature instances whose versions are within the range 2.0.0.0 to 5.0.0.0 -->
</VersionRange>
</UpgradeActions>

<UpgradeActions> 节指定如何升级功能实例。可通过直接修改 Feature.xml 文件以声明方式完成常见升级方案 。
<UpgradeActions> 元素可以包含下列子元素:
• <CustomUpgradeAction> :允许您在升级功能实例时执行自定义代码。如果在升级操作序列中指定了操作,则 Microsoft SharePoint Foundation 会按照声明顺序与其他升级操作同步调用 FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>) 方法。【即本题选项B提到的元素】
• <VersionRange> :指定已指定的升级操作应用于的版本范围。【即本题选项D提到的元素】
• <ApplyElementManifests> :向现有功能添加新元素。升级功能时,设置在指定的元素清单中引用的所有非声明性元素。 【即本题选项A提到的元素】
• <AddContentTypeField>: 向现有的已设置内容类型添加新字段。将更改从网站内容类型传播到网站中的所有子列表和内容类型。例如:
 <AddContentTypeField
  ContentTypeId="0x010100A6F9CE1AFE2A48f0A3E6CB5BB770B0F7"
  FieldId="{B250DCFD-9310-4e2d-85F2-BE2DA37A57D2}"
  PushDown="TRUE" />
在大多数情况下,ContentTypeId 和 FieldId 属性的值在定义内容类型和字段的 Elements.xml 文件中指定。
• <MapFile> : 允许您将未自定义的文件映射到前端 Web 服务器上的其他位置。可以使用 FromPath 和 ToPath 属性重命名功能中的文件(例如,<MapFile FromPath=”oldname.gif” ToPath=”newname.gif” />),还可以使用 MapFile 移动文件。在这种情况下,FromPath 和 ToPath 属性指定相对于 TEMPLATE 目录的路径。例如,如果名为“MyFeature”的功能在“Gifs”目录中安装了 .gif 文件(如 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\MyFeature\Gifs\basketball.gif),并且您要在版本 2 中将目录从“Gifs”重命名为“Images”,则<MapFile FromPath=”Gifs\ball.gif” ToPath=”Images\basketball.gif” /> 可用于移动这些文件。【即本题选项C提到的元素】
为了帮助您处理已进行版本控制的功能依赖关系,<ActivationDependency> 元素增加了 MinimumVersion 属性,该属性在功能所依赖的另一功能的版本号必须大于或等于 MinimumVersion 时使用。

直接分析各选项:
  选项A. <ApplyElementManifests> :用于向现有功能添加新元素,本题并不是添加新元素,而是修改一个已经存在的旧元素。
选项B. <CustomUpgradeAction>允许您在升级功能实例时执行自定义代码。本元素显然与引用图片资源的位置无关。
选项C. <MapFile>  允许您将未自定义的文件映射到前端 Web 服务器上的其他位置,根据上述的具体描述,正是本题需要的。
选项D. <VersionRange>指定已指定的升级操作应用于的版本范围。也明显与本题要求无关。
所以本题目正确选项应该是C
参考:
http://msdn.microsoft.com/en-us/library/ff595311.aspx
http://msdn.microsoft.com/zh-cn/library/ee535723(v=office.14).aspx

Question 143
You have a Feature named Feature1.
You plan to create a new version of Feature1 that will upgrade the existing version of Feature1.
You need to ensure that when Feature1 is upgraded, additional configuration data is added to the property bag of the site.
What should you do?
A. Add a <CustomUpgradeAction> element and increase the Version number of the Feature.
B. Add a <CustomUpgradeAction> element and increase the UIVersion number of the Feature.
C. Add an <ActivationDependencies> element and increase the Version number of the Feature.
D. Add an <ActivationDependencies> element and increase the UIVersion number of the Feature.
解析:
  本题还是关于功能升级的,要求在Feature1升级时,完成额外的动作:添加附加的配置数据到网站的属性包(Property bag)中。
   先来看看本题提到的属性包是怎么回事:事实上,在SharePoint上安装的Feature都会有一个属性包,该属性包是一个名称/值的集合。无论是Feature还是Feature定义都通过Properties属性暴露它们的属性包,而SPFeaturePropertyCollection对象则表示属性集合。在Sharepoint中,我们可以通过元素清单来定义文件、文件夹、列表项或网站的属性包(也即:属性包是分层次的)。它可以用来存储我们的配置信息。
    再来看看< ActivationDependencies >元素, 指定当前功能的激活所依赖的功能列表。功能激活依赖关系表达对两个功能之间相互关系的要求。您可以针对同一个范围的功能或更大范围内的功能表达激活依赖关系。当某个特定范围内的某个功能对于其他范围内的其他功能具有依赖关系时,就存在跨范围激活依赖关系。
再来看看UIVersion是怎么,首先要知道Sharepoint升级的UI控制问题: 默认情况下,在将 Windows SharePoint Services 3.0 网站或 Office SharePoint Server 2007 网站升级到 SharePoint 2010 时,最初将通过使用 Windows SharePoint Services 3.0 的版本 3 用户界面来呈现其页面。但是,将用户界面迁移到版本 4 的时间将由网站管理员通过使用浏览器中的标准命令逐个网站进行确定。通过利用某些信息,SharePoint 2010 可在各版本之间来回切换网站的用户界面。每个 SharePoint 网站均由一个 SPWeb 对象表示。从 SharePoint 2010 开始,每个 SPWeb 对象都带有一个在内容数据库中跟踪的新 UIVersion 属性。UIVersion 属性是基于整数的,它可包含的有效值为 3 或 4。当某个网站的 UIVersion 属性值为 3 时,SharePoint 2010 将使用版本 3 来呈现该网站的页面。当某个网站的 UIVersion 属性值为 4 时,SharePoint 2010 将使用版本 4 来呈现该网站的页面。所以,此属性是用来切换不同版本的Sharepoint界面的。
    至于<CustomUpgradeAction>,允许您在升级功能实例时执行自定义代码。如果在升级操作序列中指定了操作,则 Microsoft SharePoint Foundation 会按照声明顺序与其他升级操作同步调用 FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>) 方法。
    分析到此处,本题的答案也就出来了:通过<CustomUpgradeAction>它允许您在升级功能实例时执行自定义代码。你可以在代码中完成额外的操作,当然也包括本题想要添加附加的配置数据到网站的属性包(Property bag)中这样的任务。

所以本题目正确选项应该是A
参考:

http://msdn.microsoft.com/zh-cn/library/ff647766.aspx
http://msdn.microsoft.com/en-us/library/ee537575.aspx

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

  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. jQuery源码分析系列(39) : 动画队列

    data函数在jQuery中只有短短的300行代码,非常不起点 ,剖析源码的时候你会发现jQuery只要在有需要保存数据的地方无时无刻不依赖这个基础设施 动画会调用队列,队列会调用data数据接口还保 ...

  2. 国内版Office 365和Azure AAD绑定的问题及解决方案

      背景: 1. 开发人员要做的事情,是希望在应用程序里面能调用Office 365 的API(Microsoft Graph)来动态添加Office 365账号 2. 如果需要调用这些API,必须在 ...

  3. iOS - 类扩展与分类的区别

    类扩展 (Class Extension也有人称为匿名分类) 作用: 能为某个类附加额外的属性,成员变量,方法声明 一般的类扩展写到.m文件中 一般的私有属性写到类扩展 使用格式: @interfac ...

  4. Tools - Get technical information from the Internet

    Official Sites Overview / QuickStart Guide / Docs / E-books Community / Fourm / Blog Demo / Download ...

  5. Ubuntu下搭建Mininet环境

    Mininet环境搭建分为两个步骤,如下: 1.从GITHUB上获取mininet源码到本地的opt目录下 打开Linux终端,切换目录到根目录 cd / 切换到Linux的opt目录下 cd opt ...

  6. 微信小程序探究

    前段时间比较流行的微信小程序,因为一直没有所谓内测码也没具体关注.拖到现在正好借组内分享的时机来仔细了解一下微信小程序.了解一个新的事物无外乎从是什么(本质),怎么用(具体用法),为什么用(优缺点)来 ...

  7. 如何将MyEclipse项目导入eclipse

    我们经常会在网上下载一些开源项目,或者从别的地方迁移一些项目进来,但经常会发现导入后各种报错.这是初学java肯定会遇到的问题,本文对一些常见的处理方案做一个总结.(本文将MyEclipse项目导入e ...

  8. 花几分钟搭建一个自已的GIT服务器

    安装软件: 1.下载GIT服务 For Windows  64 https://git-scm.com/download/win 选中所有功能默认安装便可 2.下载GOGS服务 GOGS具有GITHU ...

  9. effective java 读后感

    think in java  , effective java  这两本书一直都在java的生态圈中经久不衰.本来想着先翻过 think in java 这本大山,但是读到一半就放弃了.过长的篇幅,让 ...

  10. HTML元素坐标定位,这些知识点得掌握

    文档坐标和视口坐标 视口坐标是相对于窗口的坐标,而文档坐标是相对于整个文档而言.例如,在文档坐标中如果一个元素的相对于文档的Y坐标是200px,并且用户已经把浏览器向下滚动了75px,那么视口坐标中元 ...