2010年7月25日,星期日

功能升级(第3部分)–引入SPFeatureUpgrade套件

在本系列文章中:

  1. 功能升级(第1部分)– fundamentals
  2. 功能升级(第2部分)–一个样本玩
  3. 功能升级(第3部分)– introducing SPFeature升级套件 (本文)
  4. 功能升级(第4部分)– advanced scenarios
  5. 功能升级(第5部分)–使用PowerShell升级功能

这是我的功能升级系列中的第三篇文章。我想早些发布,但是(典型的开发人员)我被困在对我的工具做更多的工作上’我在这里介绍。回到‘功能升级基础’帖子中,我提到,尽管我们现在拥有用于版本控制和升级功能的强大框架(因此为将新功能/修改后的功能推出到我们的SharePoint网站提供了一个很好的工具),但是没有现成的工具可用于管理这个过程。当人们开始关注功能升级时,这通常会使他们感到困惑–没有大量的重新部署/升级解决方案或停用/重新激活功能将不会触发升级事件(因为重新激活不是*升级*,设计使然!),并且SharePoint 2010不附带任何用户界面,STSADM命令或PowerShell cmdlet来执行此操作。换句话说,一种情况也称为“partner opportunity”!您得到的是API中的一系列方法– although it doesn’不要花太多时间将一个控制台应用程序放在一起,它将填补大部分空白 一些排列,并且处理失败的升级会有些复杂。无论如何,在我的世界里’选择以视觉方式做事总是很高兴的。

因此,就像 内容部署向导 填补了SharePoint的空白’的内容部署框架没有丰富的UI,我的 SPFeature升级套件 如果您开始在环境中进行版本/升级功能,则在Codeplex上使用可能会很有用。该工具包作为WSP安装,所有源代码都在Codeplex站点上发布。

以下是Codeplex Blur的略微扩展版本– 可以单击任何图像放大。

套件中有什么

该工具包包括三部分:
  • Central Admin中的应用程序页面-管理员可以使用它来升级整个服务器场中任何范围的功能
  • 每个网站集的“网站设置”区域中的一个可选页面-可用于将功能升级(从而更新开发人员提供的功能)的责任下放给本地网站管理员。必须在每个站点上启用功能才能启用此功能。
  • [快来了] -一个PowerShell cmdlet,允许从脚本运行功能升级。 (这是最后一部分,由于我’已经实现了核心逻辑。)

应用程序页面允许您做的一件事是 有选择地 升级功能–可能是你不知道’t want 所有 网站或网站以在升级的功能中接收新功能。这些页面在每个功能实例旁边显示复选框,因此您可以控制在何处升级哪些内容。如果您打算‘phase’推出使用功能升级部署的新功能。

[边注–功能升级通常是开发人员主导的事情,因为它’开发功能的开发人员。如果开发人员没有使用管理页面(或PowerShell)的权限,那么显然需要与这样做的管理员进行某些通信。还请注意,正如我在 升级沙盒解决方案,功能升级概念不适用于沙箱,因为 所有 更新沙盒解决方案时,功能实例会自动升级。]

用法

中央管理页面

将更新部署到功能后,可使用此页面在整个服务器场中查找和升级功能的实例。该工具可从‘System Settings’具有中央管理员的区域:

CentralAdmin_FeatureUpgradeLink

然后,服务器场管理员可以选择范围(Farm,WebApplication,Site或Web),然后找到需要升级的功能实例(这在SharePoint API中使用了一组名为QueryFeatures()的方法)。在下图中,我选择了“ WebApplication”作为范围并单击“搜索”以显示结果–我得到了需要升级的不同Web应用程序中的功能表(即已部署但尚未升级的更新版本):

(单击任何图像以查看更大/更清晰的版本)
CentralAdmin_UpgradeWebApp功能 
我可以使用复选框有选择地升级某些实例,而不是其他实例(默认情况下,将全部升级,但这可以通过取消选择复选框来控制)。在下图中,我已经升级了先前找到的2个Web应用程序功能中的1个-所有功能实例的成功/失败结果显示在页面上:

CentralAdmin_CompletedUpgradeWebApp功能

在上面的示例中,所选功能现已升级。

为了在大型服务器场中使用时提供帮助,请使用Central Admin页面进行升级 网站或网站范围 功能和其他过滤器出现,使您可以限制查询的范围。 [边注- this uses some gratuitous jQuery to slide the filter controls in –我几乎可以听到几个服务器管理员(或Spence :))抱怨事情进展,但是,嘿,我’必须在某个地方练习!]。 因此,为了升级站点范围的功能,将出现一个选择器,用于选择父Web应用程序:

CentralAdmin_UpgradeSiteFeatures

同样,对于网络范围内的功能,您可以过滤父网站集:

CentralAdmin_UpgradeWebFeatures过滤

用法

网站设置页面
“网站设置”页面的工作方式非常相似,只是只能升级“网站”功能和基于Web的功能(在当前网站集中)。的‘COB.SharePoint.Utilities.SiteSettingFeatureUpgrade’必须针对每个网站集激活功能,该网站集应显示此页面的链接。启用后,可以从网站集的“网站设置”区域访问该工具:

SiteSettings_FeatureUpgradeLink

网站集管理员然后可以选择范围(例如网站或网站),然后找到需要升级的功能。在下图中,我选择了“ Web”作为作用域,然后单击“搜索”以显示结果:

CentralAdmin_UpgradeWebFeatures

和以前一样,我可以使用复选框有选择地升级某些实例,而不是其他实例(默认情况下,将全部升级,但这可以通过取消选择复选框来控制)。在下面的图像中,我已经升级了先前找到的4个Web功能中的2个-所有功能实例的成功/失败结果显示在页面上:

FeatureUpgradeResult

概要

SharePoint 2010引入了版本和升级功能的功能,但没有’提供任何高级工具来管理此过程。一世’m为服务器场管理员和(可选)网站集管理员提供工具来执行此操作。在撰写本文时,PowerShell cmdlet形式的最后一部分仍在开发中,但应尽快提供。

该套件可从以下网站下载 http://spfeatureupgrade.codeplex.com/

2010年7月8日,星期四

再次续订为SharePoint MVP

上周收到微软的邮件说’一个SharePoint MVP一年(第三年)。回顾过去12个月,’在发布新版本之前和之后担任MVP非常有趣,我一直很荣幸能够担任这一职位。我有一些机会做一些有趣的事情,例如帮助编写2010年考试,编写MSDN内容并合着书,这很棒。最终,由于全职工作,现有的社区承诺以及我们双胞胎的到来,我不得不拒绝其中的一些人,但是您可以’t have everything :)

该列表主要是给我的,而不是给你的,但是我做的主要事情是:

让我讨厌的一件事是,我知道一些博客评论在超级忙碌的时期流失了。我对此感到难过,但有时它们只是太厚实和太快而我不 ’似乎有一个找到未答复者的好系统!向受影响者致歉–一定要再试一次,我’我会尽力回答。

非常感谢那些留下反馈的人,’一直很感激:)

2010年7月6日,星期二

功能升级(第2部分)–一个样本玩

在本系列文章中:

  1. 功能升级(第1部分)– fundamentals
  2. 功能升级(第2部分)–一个样本(本文)
  3. 功能升级(第3部分)–引入SPFeatureUpgrade套件
  4. 功能升级(第4部分)– advanced scenarios
  5. 功能升级(第5部分)–使用PowerShell升级功能

在上一篇文章中,我介绍了SharePoint 2010的一些基本方面。’的功能升级框架,并涵盖了诸如使用纯XML升级功能(ApplyElementManifests, AddContentTypeField)或掏空编写代码(CustomUpgradeAction)执行必要的步骤。出于某种原因,感觉功能升级是其中一个较难启动和运行的领域之一,可能是因为某些步骤需要对某些XML进行启动,或者可能是因为提出了逼真的逼真的升级方案文物本身需要花费一些精力。因此,我认为如果我提供一个样本,可能会有用’一直在使用(例如在我的ALM讲座和书中的章节中)供人们下载和使用,以希望对自己看到这些东西感兴趣的开发人员可以减少工作量。

这个样本

除了提供源/ XML文件之外,我还花了一些时间来记录使用这些文件来执行操作时要经过的确切步骤。‘execute’我的功能升级方案。那里’一个3页的Word文档,它将引导您完成升级步骤,这意味着该示例实际上是一个“lab”您在培训课程中可能会遇到的类型:

 FeatureUpgradeSample_Doc

同样,提供的文件涵盖所有不同的“states”在此过程中,您可以在复制时粘贴并粘贴位:

FeatureUpgradeSample_Files

升级实例

我为该示例提出了以下升级方案:

  • 升级迭代1-使用ApplyElementManifests和AddContentTypeField将新字段添加到内容类型,并使用它向下推送到列表。
  • 升级迭代2–使用CustomUpgradeAction / FeatureUpgrading将Text字段伪升级为Note字段,方法是设置新的Note字段/运行代码以将列表项/数据从旧字段迭代到新字段/将旧字段标记为隐藏。 (这种情况说明许多升级都需要代码。)

链接

从下载文件 http://sites.google.com/site/sharepointchris/sp2010_featureupgradesample

概要

功能升级是一个稍微复杂的领域,我’m提供了一个示例,如果您想更仔细地研究这是SharePoint 2010的一个方面,可能会有所帮助。一世’我们已经测试了文档/文件,但是如果有人使用了该示例并遇到了问题,请随时在此处发表评论,我’我会尽力帮助。我写的书的一章包含了该示例的译文(随着应用程序生命周期管理的覆盖面越来越广,’d期望),但我认为最好将其发布给更多的读者。