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. 数据结构与算法JavaScript (二) 队列

    队列是只允许在一端进行插入操作,另一个进行删除操作的线性表,队列是一种先进先出(First-In-First-Out,FIFO)的数据结构 队列在程序程序设计中用的非常的频繁,因为javascript ...

  2. ECMAScript

    在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function). 一般而言,通过new Function产生的对象是函数对象,其他对 ...

  3. javascript运动系列第六篇——轨迹和投掷

    × 目录 [1]运动轨迹 [2]拖拽轨迹 [3]投掷 前面的话 一般地,不同的运动形式会产生不同的轨迹.但仅凭肉眼去识别运动轨迹,其实并不是很直观.因此,在页面中显示运动轨迹,是一个重要的问题.物体初 ...

  4. Android之JSON解析

    做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSO ...

  5. 搭建AngualarJS开发环境

    1.选择Web浏览器 Chrome和Firefox浏览器 2.选择代码编辑器 Subline Text和Visual Studio Code 3.安装Web服务器 3.1Apache HTTP Ser ...

  6. 精确率与召回率,RoC曲线与PR曲线

    在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢? 首先,我们需要搞清楚几个拗口 ...

  7. Ubuntu杂记——Ubuntu下安装VMware

    转战Ubuntu,不知道能坚持多久,但是自己还是要努力把转战过程中的学习到的给记录下来.这次就来记录一下,Ubuntu下如何安装VMware. 就我所知,Linux下有VirtualBox和VMwar ...

  8. 构建自己的PHP框架--定义ORM的接口

    在上一篇博客中,我们抽象出了Controller的基类,实现了页面的渲染和返回JSON字符串的功能. 那作为一个框架,我们现在还缺少什么?是的,大家应该已经注意到了,我们在这之前从来没有连接过数据库, ...

  9. JavaScrict中的断言调试

    今天在看忍者秘籍的时候,看到一个断言方法.查阅了一下资料,原来javascript中的console也包含这个方法.具体用法如下: <script type="text/javascr ...

  10. MongoDB初学

    参考:MongoDB 教程 | 菜鸟教程 安装 1.下载安装,从官网下载winows安装包,安装到d盘(注意路径) 2.由于我安装在d盘,所以在d盘创建文件夹data,里面创建db文件夹 3.启动方法 ...