Managing the SharePoint Application Lifecycle – beyond version 1.0.0.0PART 2<br />DEV108<br />Chris O’Brien - MVP<br />
Chris O’Brien, MVP, MCSD.Net, MCTS<br />www.sharepointnutsandbolts.com<br />Twitter: @ChrisO_Brien<br />Hands-on developer...
Last time..<br />Initial build<br /><ul><li>Feature framework changes
Leveraging WSP import</li></ul>Upgrading a SharePoint application<br /><ul><li>SP2010 upgradable Features
How to version a Feature
Using code/XML to upgrade</li></li></ul><li>Today’s focus <br /><ul><li>How to upgrade different artifacts
Changes to WSP framework
Assembly versioning in SP2010
Versioning recommendations</li></ul>Upgrading a SharePoint application<br />
Recap – Feature upgrade<br />
Versioning/upgrading Features<br />Version attribute now has a purpose!<br />Define what should occur in 1.0.0.0-2.0.0.0<b...
Feature upgrade XML<br />ApplyElementManifests<br />Integrate new artifacts into existing Feature<br />Sometimes all you n...
UPGRADING A FEATURE<br />Updating functionality<br />
Artifact upgrade<br />
Upgrade - ‘provisioned’ artifacts<br />Typically must use API:<br />‘Standard’ cases<br /><ul><li>Use AddContentTypeField
Use API</li></ul>Content type<br /><ul><li>Uncustomized:
Overwrite file on filesystem
Use MapFile
Customized:
Overwrite file in library</li></ul>Module (file)<br />
Upgrade - ‘declarative’ artifacts<br />Typically update file on filesystem:<br />‘Standard’ cases<br />List definition<br ...
Upcoming SlideShare
Loading in …5
×

Managing the SharePoint 2010 Application Lifecycle - Part 2

1,731 views

Published on

The second of two presentations from SharePoint Evolutions conference, aimed at SharePoint developers - covers new capabilities of SharePoint 2010 in managing changes and upgrades to exisitng apps.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,731
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Managing the SharePoint 2010 Application Lifecycle - Part 2

  1. 1. Managing the SharePoint Application Lifecycle – beyond version 1.0.0.0PART 2<br />DEV108<br />Chris O’Brien - MVP<br />
  2. 2. Chris O’Brien, MVP, MCSD.Net, MCTS<br />www.sharepointnutsandbolts.com<br />Twitter: @ChrisO_Brien<br />Hands-on developer<br />Author of ALM chapter in MVP book<br />Creator of Content Deployment Wizard tool<br />Regular speaker at UK user group<br />
  3. 3. Last time..<br />Initial build<br /><ul><li>Feature framework changes
  4. 4. Leveraging WSP import</li></ul>Upgrading a SharePoint application<br /><ul><li>SP2010 upgradable Features
  5. 5. How to version a Feature
  6. 6. Using code/XML to upgrade</li></li></ul><li>Today’s focus <br /><ul><li>How to upgrade different artifacts
  7. 7. Changes to WSP framework
  8. 8. Assembly versioning in SP2010
  9. 9. Versioning recommendations</li></ul>Upgrading a SharePoint application<br />
  10. 10. Recap – Feature upgrade<br />
  11. 11. Versioning/upgrading Features<br />Version attribute now has a purpose!<br />Define what should occur in 1.0.0.0-2.0.0.0<br />UpgradeActions element<br />XML – some new XML for common scenarios<br />Code – specify method/parameters in CustomUpgradeActions element<br />New FeatureUpgrading method – add logic here<br />
  12. 12. Feature upgrade XML<br />ApplyElementManifests<br />Integrate new artifacts into existing Feature<br />Sometimes all you need!<br />AddContentTypeField<br />Add columns to content type<br />MapFile<br />Repoint a file to new location on filesystem (uncustomized files only)<br />
  13. 13. UPGRADING A FEATURE<br />Updating functionality<br />
  14. 14. Artifact upgrade<br />
  15. 15. Upgrade - ‘provisioned’ artifacts<br />Typically must use API:<br />‘Standard’ cases<br /><ul><li>Use AddContentTypeField
  16. 16. Use API</li></ul>Content type<br /><ul><li>Uncustomized:
  17. 17. Overwrite file on filesystem
  18. 18. Use MapFile
  19. 19. Customized:
  20. 20. Overwrite file in library</li></ul>Module (file)<br />
  21. 21. Upgrade - ‘declarative’ artifacts<br />Typically update file on filesystem:<br />‘Standard’ cases<br />List definition<br /><ul><li>Update schema.xml (carefully!)
  22. 22. Deploy new list definition, mark old as hidden</li></ul>Site definition<br /><ul><li>New sites - staple new Feature
  23. 23. Existing sites – activate Feature (script?)
  24. 24. OR upgrade existing Feature</li></li></ul><li>‘Upgrading workflows<br />Special considerations<br />Deserialization errors after upgrade<br />Typically ensure new instances use new SPWorkflowAssociation to new assembly<br />Allow running instances to complete using old assembly<br />
  25. 25. WSP framework<br />
  26. 26. Solution framework changes<br />Resource files<br />Resx files can now target App_GlobalResources folder<br />Solution dependencies<br />But not solution receivers <br />Assembly binding redirects<br />
  27. 27. Dealing with shared assemblies<br />Solutiondependencies:<br />Does not deploy dependent solution<br />Only checks at deployment time – possible to retract a depended on solution<br />Redirects help for versioning assemblies:<br />Version numbers stored everywhere!<br />Redirect = one place to update<br />
  28. 28. Assembly versioning<br />Updating functionality<br />
  29. 29. Versioning strategies - ?.?.?.?<br />Assembly versioning – tracing back:<br />Main thing is to increment in some way <br />Common plans - Major.Minor.Build.Revision:<br />Change severity (breaking/major/minor) <br />Shipping/non-shipping (product-oriented)<br />Incorporate sprint/iteration<br />Incorporate changeset number<br />Other custom<br />Consider ‘File version’ for internal versioning<br />
  30. 30. Versioning strategies - ?.?.?.?<br />Feature versioning:<br />Main purpose - identify which version is where across farm<br />Use similar principles as assemblies:<br />Increment major for large/new release changes<br />Assembly/Feature versions willdiverge<br />Keep release notes to track<br />
  31. 31. Summary <br />Now have standardized framework for upgrading applications<br />New XML e.g. AddFieldToContentType<br />Implement code in FeatureUpgrading event<br />Use the new capabilities!<br />WSP import<br />Solution dependencies for shared assemblies<br />
  32. 32. Closing thoughts<br />If you didn’t before, now is the time to do versioning! <br />Assemblies -> AssembyBindingRedirect<br />Features -> Feature upgrade code/XML<br />Some extra considerations, but big benefits for non-trivial apps<br />
  33. 33. Thank you for attending!<br />

×