zoukankan      html  css  js  c++  java
  • Sharepoint学习笔记—习题系列--70-573习题解析 -(Q142-Q143)

    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 FilesMicrosoft Sharedweb server extensions14TEMPLATEFEATURESMyFeatureGifsasketball.gif),并且您要在版本 2 中将目录从“Gifs”重命名为“Images”,则<MapFile FromPath=”Gifsall.gif” ToPath=”Imagesasketball.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

  • 相关阅读:
    Sqlmap使用详解
    WEB漏洞学习手册
    量压形态的使用方法
    sql执行过程及常见优化手段
    什么是JavaScript 函数作用域
    git http 拉取代码 自动输入用户名和密码
    PHP 报文件写入无权限 file_put_contents failed to open stream: Permission denied in xxxxx on line 2
    记一次 解决PHP Linux服务器报 打开文件数过多的异常
    微信开发 坑 记录帖
    python 安装 cv2 注意事项 填坑 opencv-python 找不到指定的模块
  • 原文地址:https://www.cnblogs.com/wsdj-ITtech/p/3164269.html
Copyright © 2011-2022 走看看