This document discusses strategies for upgrading SharePoint applications beyond the initial version. It covers upgrading different artifacts like content types, files, and lists using techniques like applying element manifests or mapping files to new locations. The document also addresses upgrading features through the new version attribute and upgrade actions element. It provides recommendations for versioning assemblies and features to track changes across farm upgrades. Special considerations for upgrading workflows are also outlined.
Managing the SharePoint 2010 Application Lifecycle - Part 2
1. Managing the SharePoint Application Lifecycle – beyond version 1.0.0.0PART 2 DEV108 Chris O’Brien - MVP
2. Chris O’Brien, MVP, MCSD.Net, MCTS www.sharepointnutsandbolts.com Twitter: @ChrisO_Brien Hands-on developer Author of ALM chapter in MVP book Creator of Content Deployment Wizard tool Regular speaker at UK user group
11. Versioning/upgrading Features Version attribute now has a purpose! Define what should occur in 1.0.0.0-2.0.0.0 UpgradeActions element XML – some new XML for common scenarios Code – specify method/parameters in CustomUpgradeActions element New FeatureUpgrading method – add logic here
12. Feature upgrade XML ApplyElementManifests Integrate new artifacts into existing Feature Sometimes all you need! AddContentTypeField Add columns to content type MapFile Repoint a file to new location on filesystem (uncustomized files only)
26. Solution framework changes Resource files Resx files can now target App_GlobalResources folder Solution dependencies But not solution receivers Assembly binding redirects
27. Dealing with shared assemblies Solutiondependencies: Does not deploy dependent solution Only checks at deployment time – possible to retract a depended on solution Redirects help for versioning assemblies: Version numbers stored everywhere! Redirect = one place to update
29. Versioning strategies - ?.?.?.? Assembly versioning – tracing back: Main thing is to increment in some way Common plans - Major.Minor.Build.Revision: Change severity (breaking/major/minor) Shipping/non-shipping (product-oriented) Incorporate sprint/iteration Incorporate changeset number Other custom Consider ‘File version’ for internal versioning
30. Versioning strategies - ?.?.?.? Feature versioning: Main purpose - identify which version is where across farm Use similar principles as assemblies: Increment major for large/new release changes Assembly/Feature versions willdiverge Keep release notes to track
31. Summary Now have standardized framework for upgrading applications New XML e.g. AddFieldToContentType Implement code in FeatureUpgrading event Use the new capabilities! WSP import Solution dependencies for shared assemblies
32. Closing thoughts If you didn’t before, now is the time to do versioning! Assemblies -> AssembyBindingRedirect Features -> Feature upgrade code/XML Some extra considerations, but big benefits for non-trivial apps