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. vue中v-bind:class动态添加class

    1.html代码 <template v-for='item in names'> <div id="app" class="selectItem&qu ...

  2. HTTP协议基础

    一.介绍 Hyper Text Transfer Protocol(超文本传输协议)主要用于从WWW服务器传输超文本到本地浏览器的传送协议.已发展到1.1版本. 二.HTTP在TCP/IP参考模型的位 ...

  3. 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍

    我们在前一篇文章微软新神器-Power BI,一个简单易用,还用得起的BI产品中,我们初步介绍了Power BI的基本知识.由于Power BI是去年开始微软新发布的一个产品,虽然已经可以企业级应用, ...

  4. 浅谈async、await关键字 => 深谈async、await关键字

    前言 之前写过有关异步的文章,对这方面一直比较弱,感觉还是不太理解,于是会花点时间去好好学习这一块,我们由浅入深,文中若有叙述不稳妥之处,还请批评指正. 话题 (1)是不是将方法用async关键字标识 ...

  5. 数据可视化-EChart2.0.0使用中遇到的2个问题

    之前项目中都是使用FusionChart和HighChart,基本都是没有购买商业许可.然后现在开发的系统需要交付给客户使用.所以现在图表控件不能直接使用FusionChart和HighChart,通 ...

  6. 通过监控线程状态来保证socket服务器的稳定运行

    云平台中使用的socket服务器是我们自己定义一套通信协议,并通过C#实现的一个socket服务. 该服务目前是和web服务一起运行在IIS容器中,通过启动一个永不退出的新线程来监听端口. 在开发的初 ...

  7. EntityFramework 如何查看执行的 SQL 代码?

    在 VS 调试的时候,如果我们项目中使用的是 EntityFramework,查看 SQL 执行代码就不像 ADO.NET 那样直观了,我们需要设置下,可以参考下: How can I log the ...

  8. Linux:Ubuntu16.04下创建Wifi热点

    Linux:Ubuntu16.04下创建Wifi热点 说明: 1.Ubuntu16.04里面可以直接创建热点,而不用像以前的版本,还要其他辅助工具. 2.本篇文章转载自编程人生 具体步骤如下: 1.  ...

  9. Android 学习Activity(1)activity和intent

    工具是:JDK环境配置+SDK+ADT工具 一.Activity  主要作用: 1.用户与应用程序的接口 2.控件的容器 二.创建Activity要点:(在src中的目录下包里) 1.一个Activi ...

  10. 【字符编码】字符编码 && Base64编码算法

    一.前言 在前面的解决乱码的一文中,只找到了解决办法,但是没有为什么,说白了,就是对编码还是不是太熟悉,编码问题是一个很简单的问题,计算机从业人员应该也必须弄清楚,基于编码的应用有Base64加密算法 ...