A set of tools for managing upgradable Features in SharePoint 2010. (Upgrading Features is a means of deploying code/artifact updates to existing SharePoint sites).
You have developed Features for SharePoint 2007, you’re probably aware of a very serious limitation of Feature Development: upgradability. Deploying version 1 of your customization is no problem, but If you want to deploy a bug fix or additional functionality in version 2, you’re basically on your own. In SharePoint 2010, this problem is solved, you can now build features that are upgradable. You can built your feature as usual, and optionally you’ve got the opportunity to specify what should happen when the feature gets upgraded from a previous version.
Background of the TOOL CODEPLEXSharePoint 2010 introduces the concept of 'versioned' or 'upgradable' Features, as a means of applying updates to existing sites. A new version of a Feature is created by modifying the definition (with new XML or code) and incrementing the version number. For the change to be applied, existing Feature instances (e.g. in each web for a web-scoped Feature) must be upgraded. SharePoint 2010 does not ship with any admin screen, STSADM command or PowerShell cmdlet to manage this process. The only way to upgrade Features is to write code - however, this kit provides tools so that no code is required on your behalf; I've done it for you.
(Read a 4 part series on Feature upgrade on my blog - http://www.sharepointnutsandbolts.com/2010/06/feature-upgrade-part-1-fundamentals.html)
What's in the kitThe kit is comprised of 3 things:
- An application page in Central Admin - administrators can use this to upgrade Features of any scope across the entire farm
- An OPTIONAL page in each site collection's Site Settings - this can be used to devolve responsibility for upgrading Features (and therefore updating functionality provided by developers) to local site administrators. A Feature must be enabled on each site to enable this.
- COMING SOON - a PowerShell cmdlet which allows Feature upgrade to be run from script. (This is the final piece and will be ready shortly, since the core logic is implemented already.)
Central Admin page…
http://www.sharepointnutsandbolts.com/2010/06/feature-upgrade-part-1-fundamentals.html and 4 articles on this subjects on this blog
SharePoint 2010 introduces additional lifecycle management capabilities with the ability to version and upgrade Features. There are some declarative elements such as ApplyElementManifests and AddContentTypeField, but using the CustomUpgradeAction element allows you to shell out to code where necessary.
The only way to actually perform upgrade on a Feature once it has been updated is to call SPFeature.Upgrade() on each instance of the Feature (e.g. in each web) which should be upgraded – new QueryFeatures() methods help you locate Feature instances which can be upgraded. I’ve written a custom application page which helps manage this process, to be discussed next time.