SlideShare a Scribd company logo
Deep dive into feature versioning and upgrade support in SharePoint 2010 Jeremy Thake
Jeremy Thake  Enterprise Architect since April ’11 at AvePoint SharePoint MVP since July ’10 Co-Founder of NothingButSharePoint.com Speaker at MS TechEd 2009/10, SPC 11 					Gplus.to/jthake 					@jthake
<Field> <ContentType> <ListInstance> <WebPart> <WorkflowInstance>
Some easier than others Definition vs. Instance Site Column <Field> SPSite, SPWeb Content Type <ContentType>  SPSite, SPWeb, SPList Web Part <WebPart>  WP Gallery, Instances on pages List Template SPSite, SPWeb, Instances at SPWeb
Some easier than others Module (Page Layout, Master Page, Style sheets) As long as not ‘customised’ Renaming files
“OLD SKOOL” Imperative in-place upgrade Deactivate/Activate -> “if column missing add it” Deactivate/Retract/Remove/Add/Deploy/Activate Won’t work if in USE! Field Content Types – blocks delete Web Parts out of gallery and Web Part Instances List Templates – removes but breaks List instances Workflow – removes assembly, breaks Workflow instances New Feature - Stapling PowerShell
V1.0.0.0 V12.0.0.0
One farm many feature versions active SITE A SITE B SITE C SPDevWiki V1.0.0.0 SPDevWiki V3.0.0.0 SPDevWiki V2.0.0.0 SPDevWiki V3.0.0.0 SPDevWiki V3.0.0.0 SPDevWiki V1.0.0.0 SPDevWiki V2.0.0.0 SPDevWiki V3.0.0.0
Upgrading features declaratively Version attribute not just for show ;-) Not set by default in XML so uses 0.0.0.0 ActivationDependencies can specify version UpgradeActions element VersionRange with Begin & End versions MinimumVersion ApplyElementManifest AddContentTypeField MapFile
Upgrading Features Declaratively DEMO
AddContentTypeField Add Columns to ContentType
ApplyElementManifests Integrated new artefacts into existing feature E.g. New Fields in a Content Type
Mapfile Repoint a file to a new location on filesystem E.g. renaming/relocating a deployed style sheet Uncustomised files only
DECLARATIVE FEATURE UPGRADE
Upgrading Feature Instances DEMO
Code ran update-spsolution -identity SharePointProject.wsp-literalpathbinebugharePointProject.wsp –GACDeployment
Powershell get-spfeature | where {$_.DefinitionId -eq '7cd284c9-b998-457b-b782-4473744b7daf' } | select DisplayName, Version (get-spweb http://sp2010rtm:99/).Features | where {$_.DefinitionId -eq '7cd284c9-b998-457b-b782-4473744b7daf' } psconfig -cmd upgrade -inplaceb2b $site = get-spsite http://siteurl $enabledfeature = $site.Features | where {$_.DefinitionId -eq '7cd284c9-b998-457b-b782-4473744b7daf' } if($enabledfeature) {   $enabledfeature.Upgrade($false) }
Upgrade actions Imperative Provide assembly & class in UpgradeActions CustomUpgradeActionss element provides Name and Parameters Fires FeatureUpgrading event receiver
Upgrading Features Imperatively DEMO
IMPERATIVE FEATURE UPGRADE
FEATUREUPGRADING EVENT RECEIVER
TIPS Don’t forget to change definition as well do upgrade ALWAYS quit PowerShell when rebuilding WSP Or use different names for WSP If CustomUpgradeAction fails, doesn’t upgrade feature Will leave things “half baked” – defensive coding Adjust ULS logs to see messages ‘Feature Infrastructure’, ‘Fields’, ‘General’
What to watch - Definitions Copy definition, create new one, hide old version List Templates Workflow Site Definitions or Feature stapling
What to watch - instances Web Parts Imperatively modify properties Assembly upgrade List Instances Incrementally upgrade Workflows Assembly upgrade on existing activities Changing what activities exist on current instances “You’re on your own soldier”
SANDBOXED SOLUTIONS Slightly different! Upgrade button for Sandboxed Solutions On upgrading a Solution All Features are upgraded automatically!
Solution version Defined by having new wsp name  e.g. SPDevWiki_v1.0.0.0.wsp and SPDevWiki_v2.0.0.0.wsp Sandboxed Solutions Deploying different versions to different Site Collections in Farm Supported in Farm Solutions Easy way to identify what version in different Farms  no other way of identifying solutions only keeps most recent
Assembly versions New Assembly Version Workflow instances + Web Part instances Will remove old version from GAC breaking old Web Parts Use Binding Redirect if not worried about old assembly version – if so why do it in the first place? Assembly Versioning broken in Sandboxed Solutions
Feature upgrade object model QueryFeatures method (4 overloads) GuidfeatureId GuidfeatureId, boolneedsUpgrade GuidfeatureId, Version featureVersion SPFeatureScope scope, boolneedsUpgrade Available from SPWebService(Farm), SPWebApplication, SPContentDatabase & SPSite

More Related Content

What's hot

Why vREST?
Why vREST?Why vREST?
Why vREST?
vrest_io
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
pkslide28
 
ATLAS Automation POC
ATLAS Automation POCATLAS Automation POC
ATLAS Automation POCaakashmc
 
Katalon Studio - Successful Test Automation for both Testers and Developers
Katalon Studio - Successful Test Automation for both Testers and DevelopersKatalon Studio - Successful Test Automation for both Testers and Developers
Katalon Studio - Successful Test Automation for both Testers and Developers
Katalon Studio
 
So You Just Inherited a $Legacy Application...
So You Just Inherited a $Legacy Application...So You Just Inherited a $Legacy Application...
So You Just Inherited a $Legacy Application...
Joe Ferguson
 
SharePoint 2010 Development
SharePoint 2010 DevelopmentSharePoint 2010 Development
SharePoint 2010 Development
Elaine Van Bergen
 
Story Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkStory Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium Framework
Oleksiy Rezchykov
 
SharePoint and Usability Testing
SharePoint and Usability TestingSharePoint and Usability Testing
SharePoint and Usability Testing
Chris Poteet
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlow
Aiste Stikliute
 
Practical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test AutomationPractical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test Automation
Sauce Labs
 
V Greavu - Testing with Sharepoint
V Greavu - Testing with SharepointV Greavu - Testing with Sharepoint
V Greavu - Testing with SharepointTestCampRO
 
Visual Studio ALM 2013 - Edition Comparison
Visual Studio ALM 2013 - Edition ComparisonVisual Studio ALM 2013 - Edition Comparison
Visual Studio ALM 2013 - Edition Comparison
Steve Lange
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave Haeffner
Sauce Labs
 
Selenium IDE LOCATORS
Selenium IDE LOCATORSSelenium IDE LOCATORS
Selenium IDE LOCATORS
Mindfire Solutions
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing Process
QASource
 
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Vivek Chawla
 
Apex behind the scenes
Apex behind the scenesApex behind the scenes
Apex behind the scenesEnkitec
 
Web automation with Selenium for software engineers
Web automation with Selenium for software engineersWeb automation with Selenium for software engineers
Web automation with Selenium for software engineers
Mikalai Alimenkou
 
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011
hugs
 
Testing lightning components feb 15th 2018
Testing lightning components feb 15th 2018Testing lightning components feb 15th 2018
Testing lightning components feb 15th 2018
Richard Clark
 

What's hot (20)

Why vREST?
Why vREST?Why vREST?
Why vREST?
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
 
ATLAS Automation POC
ATLAS Automation POCATLAS Automation POC
ATLAS Automation POC
 
Katalon Studio - Successful Test Automation for both Testers and Developers
Katalon Studio - Successful Test Automation for both Testers and DevelopersKatalon Studio - Successful Test Automation for both Testers and Developers
Katalon Studio - Successful Test Automation for both Testers and Developers
 
So You Just Inherited a $Legacy Application...
So You Just Inherited a $Legacy Application...So You Just Inherited a $Legacy Application...
So You Just Inherited a $Legacy Application...
 
SharePoint 2010 Development
SharePoint 2010 DevelopmentSharePoint 2010 Development
SharePoint 2010 Development
 
Story Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkStory Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium Framework
 
SharePoint and Usability Testing
SharePoint and Usability TestingSharePoint and Usability Testing
SharePoint and Usability Testing
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlow
 
Practical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test AutomationPractical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test Automation
 
V Greavu - Testing with Sharepoint
V Greavu - Testing with SharepointV Greavu - Testing with Sharepoint
V Greavu - Testing with Sharepoint
 
Visual Studio ALM 2013 - Edition Comparison
Visual Studio ALM 2013 - Edition ComparisonVisual Studio ALM 2013 - Edition Comparison
Visual Studio ALM 2013 - Edition Comparison
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave Haeffner
 
Selenium IDE LOCATORS
Selenium IDE LOCATORSSelenium IDE LOCATORS
Selenium IDE LOCATORS
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing Process
 
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
 
Apex behind the scenes
Apex behind the scenesApex behind the scenes
Apex behind the scenes
 
Web automation with Selenium for software engineers
Web automation with Selenium for software engineersWeb automation with Selenium for software engineers
Web automation with Selenium for software engineers
 
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011
 
Testing lightning components feb 15th 2018
Testing lightning components feb 15th 2018Testing lightning components feb 15th 2018
Testing lightning components feb 15th 2018
 

Viewers also liked

Bli kvitt møtehelvetet for det koster mer enn sykefraværet fra MyPocket.Academy
Bli kvitt møtehelvetet for det koster mer enn sykefraværet fra MyPocket.AcademyBli kvitt møtehelvetet for det koster mer enn sykefraværet fra MyPocket.Academy
Bli kvitt møtehelvetet for det koster mer enn sykefraværet fra MyPocket.Academy
Solv AS
 
eTwinning_2010_11_17_roskilde
eTwinning_2010_11_17_roskildeeTwinning_2010_11_17_roskilde
eTwinning_2010_11_17_roskilde
Ebbe Schultze
 
Ekorpa Wfest drugi deo
Ekorpa Wfest drugi deoEkorpa Wfest drugi deo
Ekorpa Wfest drugi deo
Ivan Rečević
 
ਲੰਬਕਾਰ ਅਤੇ ਵਿਥਕਾਰ
ਲੰਬਕਾਰ ਅਤੇ ਵਿਥਕਾਰਲੰਬਕਾਰ ਅਤੇ ਵਿਥਕਾਰ
ਲੰਬਕਾਰ ਅਤੇ ਵਿਥਕਾਰ
Vijay Gupta
 
7. 背叛神的百姓
7. 背叛神的百姓7. 背叛神的百姓
7. 背叛神的百姓
hkyeung
 
Visualisoi viestisi
Visualisoi viestisiVisualisoi viestisi
Visualisoi viestisi
LumoLink
 
Prezentace mobilního marketingu od PHOMEDIA s.r.o.
Prezentace mobilního marketingu od PHOMEDIA s.r.o.Prezentace mobilního marketingu od PHOMEDIA s.r.o.
Prezentace mobilního marketingu od PHOMEDIA s.r.o.
Lukas Korinek
 
Marketing Online B2B
Marketing Online B2BMarketing Online B2B
Marketing Online B2B
DB Marketing Intel
 
מחדד הרעיונות - 26.5.2016 - אתגר המותגים
מחדד הרעיונות - 26.5.2016 - אתגר המותגיםמחדד הרעיונות - 26.5.2016 - אתגר המותגים
מחדד הרעיונות - 26.5.2016 - אתגר המותגים
Leo Burnett Israel
 
Attribúciós modellek
Attribúciós modellekAttribúciós modellek
Attribúciós modellek
Zsuzsa Katona
 
Flyt dig! Eller fremtiden kommer efter dig
Flyt dig! Eller fremtiden kommer efter digFlyt dig! Eller fremtiden kommer efter dig
Flyt dig! Eller fremtiden kommer efter dig
Plastindustrien
 
טקס פרס טראמפ להוראה איכותית לשנת 2012
טקס פרס טראמפ להוראה איכותית לשנת 2012טקס פרס טראמפ להוראה איכותית לשנת 2012
טקס פרס טראמפ להוראה איכותית לשנת 2012
Eli Hurvitz
 
A szokás hatalma és a választás paradoxona - Kolozsi István, kolboid
A szokás hatalma és a választás paradoxona - Kolozsi István, kolboidA szokás hatalma és a választás paradoxona - Kolozsi István, kolboid
A szokás hatalma és a választás paradoxona - Kolozsi István, kolboid
István Kolozsi
 
Content strategy for b2 b, cs forum 2013
Content strategy for b2 b, cs forum 2013Content strategy for b2 b, cs forum 2013
Content strategy for b2 b, cs forum 2013
Differo Oy
 
20100520 cssnite hayashi
20100520 cssnite hayashi20100520 cssnite hayashi
20100520 cssnite hayashi
Chiaki Hayashi
 
Anju ppt
Anju pptAnju ppt
Anju ppt
anjuarun2016
 
Mit csinál egy nyelvész egy IT cégnél?
Mit csinál egy nyelvész egy IT cégnél?Mit csinál egy nyelvész egy IT cégnél?
Mit csinál egy nyelvész egy IT cégnél?Zoltan Varju
 
Birth to Three Presentation
Birth to Three PresentationBirth to Three Presentation
Birth to Three Presentation
University of Oregon
 
Marketers don't adapt to mobile.
Marketers don't adapt to mobile.Marketers don't adapt to mobile.
Marketers don't adapt to mobile.
Anette Mellbye
 

Viewers also liked (20)

Bli kvitt møtehelvetet for det koster mer enn sykefraværet fra MyPocket.Academy
Bli kvitt møtehelvetet for det koster mer enn sykefraværet fra MyPocket.AcademyBli kvitt møtehelvetet for det koster mer enn sykefraværet fra MyPocket.Academy
Bli kvitt møtehelvetet for det koster mer enn sykefraværet fra MyPocket.Academy
 
eTwinning_2010_11_17_roskilde
eTwinning_2010_11_17_roskildeeTwinning_2010_11_17_roskilde
eTwinning_2010_11_17_roskilde
 
Ekorpa Wfest drugi deo
Ekorpa Wfest drugi deoEkorpa Wfest drugi deo
Ekorpa Wfest drugi deo
 
ਲੰਬਕਾਰ ਅਤੇ ਵਿਥਕਾਰ
ਲੰਬਕਾਰ ਅਤੇ ਵਿਥਕਾਰਲੰਬਕਾਰ ਅਤੇ ਵਿਥਕਾਰ
ਲੰਬਕਾਰ ਅਤੇ ਵਿਥਕਾਰ
 
7. 背叛神的百姓
7. 背叛神的百姓7. 背叛神的百姓
7. 背叛神的百姓
 
Visualisoi viestisi
Visualisoi viestisiVisualisoi viestisi
Visualisoi viestisi
 
Prezentace mobilního marketingu od PHOMEDIA s.r.o.
Prezentace mobilního marketingu od PHOMEDIA s.r.o.Prezentace mobilního marketingu od PHOMEDIA s.r.o.
Prezentace mobilního marketingu od PHOMEDIA s.r.o.
 
Marketing Online B2B
Marketing Online B2BMarketing Online B2B
Marketing Online B2B
 
מחדד הרעיונות - 26.5.2016 - אתגר המותגים
מחדד הרעיונות - 26.5.2016 - אתגר המותגיםמחדד הרעיונות - 26.5.2016 - אתגר המותגים
מחדד הרעיונות - 26.5.2016 - אתגר המותגים
 
Attribúciós modellek
Attribúciós modellekAttribúciós modellek
Attribúciós modellek
 
Flyt dig! Eller fremtiden kommer efter dig
Flyt dig! Eller fremtiden kommer efter digFlyt dig! Eller fremtiden kommer efter dig
Flyt dig! Eller fremtiden kommer efter dig
 
טקס פרס טראמפ להוראה איכותית לשנת 2012
טקס פרס טראמפ להוראה איכותית לשנת 2012טקס פרס טראמפ להוראה איכותית לשנת 2012
טקס פרס טראמפ להוראה איכותית לשנת 2012
 
A szokás hatalma és a választás paradoxona - Kolozsi István, kolboid
A szokás hatalma és a választás paradoxona - Kolozsi István, kolboidA szokás hatalma és a választás paradoxona - Kolozsi István, kolboid
A szokás hatalma és a választás paradoxona - Kolozsi István, kolboid
 
Content strategy for b2 b, cs forum 2013
Content strategy for b2 b, cs forum 2013Content strategy for b2 b, cs forum 2013
Content strategy for b2 b, cs forum 2013
 
20100520 cssnite hayashi
20100520 cssnite hayashi20100520 cssnite hayashi
20100520 cssnite hayashi
 
Anju ppt
Anju pptAnju ppt
Anju ppt
 
Punjabi Sahit Jhalak
Punjabi Sahit JhalakPunjabi Sahit Jhalak
Punjabi Sahit Jhalak
 
Mit csinál egy nyelvész egy IT cégnél?
Mit csinál egy nyelvész egy IT cégnél?Mit csinál egy nyelvész egy IT cégnél?
Mit csinál egy nyelvész egy IT cégnél?
 
Birth to Three Presentation
Birth to Three PresentationBirth to Three Presentation
Birth to Three Presentation
 
Marketers don't adapt to mobile.
Marketers don't adapt to mobile.Marketers don't adapt to mobile.
Marketers don't adapt to mobile.
 

Similar to Deep dive into feature versioning in SharePoint 2010

Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Jeremy Thake
 
TEC2010 SharePoint 2010 Upgrade
TEC2010 SharePoint 2010 UpgradeTEC2010 SharePoint 2010 Upgrade
TEC2010 SharePoint 2010 Upgrade
Joel Oleson
 
Mai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki - SharePoint 2010 ITPROMai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
Sagar Nakul
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
dasguptahirak
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet Sagar Nakul
 
Migrating to SharePoint 2013 - Business and Technical Perspective
Migrating to SharePoint 2013 - Business and Technical PerspectiveMigrating to SharePoint 2013 - Business and Technical Perspective
Migrating to SharePoint 2013 - Business and Technical Perspective
John Calvert
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
Dylan Jay
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
Gunnar Hillert
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil Framework
Eric ShangKuan
 
Using RequireJS with CakePHP
Using RequireJS with CakePHPUsing RequireJS with CakePHP
Using RequireJS with CakePHP
Stephen Young
 
SharePoint 2010 Upgrade Best Practices Teched Brazil by Joel Oleson
SharePoint 2010 Upgrade Best Practices Teched Brazil by Joel OlesonSharePoint 2010 Upgrade Best Practices Teched Brazil by Joel Oleson
SharePoint 2010 Upgrade Best Practices Teched Brazil by Joel Oleson
Joel Oleson
 
Apache Aries Blog Sample
Apache Aries Blog SampleApache Aries Blog Sample
Apache Aries Blog Sample
Skills Matter
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the Enterprise
Jamund Ferguson
 
The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's How
mrdon
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Mack Hardy
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Rodolfo Finochietti
 
Workflow Management with Espresso Workflow
Workflow Management with Espresso WorkflowWorkflow Management with Espresso Workflow
Workflow Management with Espresso Workflow
Rolf Kremer
 
Spring boot 3g
Spring boot 3gSpring boot 3g
Spring boot 3gvasya10
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
Brian Hogg
 

Similar to Deep dive into feature versioning in SharePoint 2010 (20)

Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010
 
TEC2010 SharePoint 2010 Upgrade
TEC2010 SharePoint 2010 UpgradeTEC2010 SharePoint 2010 Upgrade
TEC2010 SharePoint 2010 Upgrade
 
Mai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki - SharePoint 2010 ITPROMai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki - SharePoint 2010 ITPRO
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
 
Migrating to SharePoint 2013 - Business and Technical Perspective
Migrating to SharePoint 2013 - Business and Technical PerspectiveMigrating to SharePoint 2013 - Business and Technical Perspective
Migrating to SharePoint 2013 - Business and Technical Perspective
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil Framework
 
Using RequireJS with CakePHP
Using RequireJS with CakePHPUsing RequireJS with CakePHP
Using RequireJS with CakePHP
 
SharePoint 2010 Upgrade Best Practices Teched Brazil by Joel Oleson
SharePoint 2010 Upgrade Best Practices Teched Brazil by Joel OlesonSharePoint 2010 Upgrade Best Practices Teched Brazil by Joel Oleson
SharePoint 2010 Upgrade Best Practices Teched Brazil by Joel Oleson
 
Apache Aries Blog Sample
Apache Aries Blog SampleApache Aries Blog Sample
Apache Aries Blog Sample
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the Enterprise
 
The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's How
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
Workflow Management with Espresso Workflow
Workflow Management with Espresso WorkflowWorkflow Management with Espresso Workflow
Workflow Management with Espresso Workflow
 
Spring boot 3g
Spring boot 3gSpring boot 3g
Spring boot 3g
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
 

More from Jeremy Thake

Using Microsoft Teams to enhance your organizational productivity
Using Microsoft Teams to enhance your organizational productivityUsing Microsoft Teams to enhance your organizational productivity
Using Microsoft Teams to enhance your organizational productivity
Jeremy Thake
 
Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...
Jeremy Thake
 
Understand the future of software development in the cloud with the azure app...
Understand the future of software development in the cloud with the azure app...Understand the future of software development in the cloud with the azure app...
Understand the future of software development in the cloud with the azure app...
Jeremy Thake
 
Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...
Jeremy Thake
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online development
Jeremy Thake
 
Application lifecycle management in SharePoint
Application lifecycle management in SharePointApplication lifecycle management in SharePoint
Application lifecycle management in SharePointJeremy Thake
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointJeremy Thake
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentJeremy Thake
 
Presenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationPresenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationJeremy Thake
 
The future of social collaboration in SharePoint
The future of social collaboration in SharePointThe future of social collaboration in SharePoint
The future of social collaboration in SharePointJeremy Thake
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app model
Jeremy Thake
 
SharePoint 2013 overview jeremy thake
SharePoint 2013 overview   jeremy thakeSharePoint 2013 overview   jeremy thake
SharePoint 2013 overview jeremy thake
Jeremy Thake
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online development
Jeremy Thake
 
How to create a secure efficient extranet user experience
How to create a secure efficient extranet user experienceHow to create a secure efficient extranet user experience
How to create a secure efficient extranet user experience
Jeremy Thake
 
How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010Jeremy Thake
 
Governance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointGovernance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointJeremy Thake
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
Jeremy Thake
 
Do's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersDo's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersJeremy Thake
 
How Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share PointHow Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share PointJeremy Thake
 
Share Point Best Practices
Share Point Best PracticesShare Point Best Practices
Share Point Best PracticesJeremy Thake
 

More from Jeremy Thake (20)

Using Microsoft Teams to enhance your organizational productivity
Using Microsoft Teams to enhance your organizational productivityUsing Microsoft Teams to enhance your organizational productivity
Using Microsoft Teams to enhance your organizational productivity
 
Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...
 
Understand the future of software development in the cloud with the azure app...
Understand the future of software development in the cloud with the azure app...Understand the future of software development in the cloud with the azure app...
Understand the future of software development in the cloud with the azure app...
 
Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online development
 
Application lifecycle management in SharePoint
Application lifecycle management in SharePointApplication lifecycle management in SharePoint
Application lifecycle management in SharePoint
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online development
 
Presenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationPresenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organization
 
The future of social collaboration in SharePoint
The future of social collaboration in SharePointThe future of social collaboration in SharePoint
The future of social collaboration in SharePoint
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app model
 
SharePoint 2013 overview jeremy thake
SharePoint 2013 overview   jeremy thakeSharePoint 2013 overview   jeremy thake
SharePoint 2013 overview jeremy thake
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online development
 
How to create a secure efficient extranet user experience
How to create a secure efficient extranet user experienceHow to create a secure efficient extranet user experience
How to create a secure efficient extranet user experience
 
How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010
 
Governance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointGovernance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePoint
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
 
Do's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersDo's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developers
 
How Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share PointHow Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share Point
 
Share Point Best Practices
Share Point Best PracticesShare Point Best Practices
Share Point Best Practices
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

Deep dive into feature versioning in SharePoint 2010

  • 1. Deep dive into feature versioning and upgrade support in SharePoint 2010 Jeremy Thake
  • 2. Jeremy Thake Enterprise Architect since April ’11 at AvePoint SharePoint MVP since July ’10 Co-Founder of NothingButSharePoint.com Speaker at MS TechEd 2009/10, SPC 11 Gplus.to/jthake @jthake
  • 3.
  • 4.
  • 5.
  • 6. <Field> <ContentType> <ListInstance> <WebPart> <WorkflowInstance>
  • 7. Some easier than others Definition vs. Instance Site Column <Field> SPSite, SPWeb Content Type <ContentType> SPSite, SPWeb, SPList Web Part <WebPart> WP Gallery, Instances on pages List Template SPSite, SPWeb, Instances at SPWeb
  • 8. Some easier than others Module (Page Layout, Master Page, Style sheets) As long as not ‘customised’ Renaming files
  • 9. “OLD SKOOL” Imperative in-place upgrade Deactivate/Activate -> “if column missing add it” Deactivate/Retract/Remove/Add/Deploy/Activate Won’t work if in USE! Field Content Types – blocks delete Web Parts out of gallery and Web Part Instances List Templates – removes but breaks List instances Workflow – removes assembly, breaks Workflow instances New Feature - Stapling PowerShell
  • 11.
  • 12. One farm many feature versions active SITE A SITE B SITE C SPDevWiki V1.0.0.0 SPDevWiki V3.0.0.0 SPDevWiki V2.0.0.0 SPDevWiki V3.0.0.0 SPDevWiki V3.0.0.0 SPDevWiki V1.0.0.0 SPDevWiki V2.0.0.0 SPDevWiki V3.0.0.0
  • 13.
  • 14.
  • 15. Upgrading features declaratively Version attribute not just for show ;-) Not set by default in XML so uses 0.0.0.0 ActivationDependencies can specify version UpgradeActions element VersionRange with Begin & End versions MinimumVersion ApplyElementManifest AddContentTypeField MapFile
  • 18. ApplyElementManifests Integrated new artefacts into existing feature E.g. New Fields in a Content Type
  • 19. Mapfile Repoint a file to a new location on filesystem E.g. renaming/relocating a deployed style sheet Uncustomised files only
  • 22. Code ran update-spsolution -identity SharePointProject.wsp-literalpathbinebugharePointProject.wsp –GACDeployment
  • 23. Powershell get-spfeature | where {$_.DefinitionId -eq '7cd284c9-b998-457b-b782-4473744b7daf' } | select DisplayName, Version (get-spweb http://sp2010rtm:99/).Features | where {$_.DefinitionId -eq '7cd284c9-b998-457b-b782-4473744b7daf' } psconfig -cmd upgrade -inplaceb2b $site = get-spsite http://siteurl $enabledfeature = $site.Features | where {$_.DefinitionId -eq '7cd284c9-b998-457b-b782-4473744b7daf' } if($enabledfeature) { $enabledfeature.Upgrade($false) }
  • 24.
  • 25. Upgrade actions Imperative Provide assembly & class in UpgradeActions CustomUpgradeActionss element provides Name and Parameters Fires FeatureUpgrading event receiver
  • 29.
  • 30. TIPS Don’t forget to change definition as well do upgrade ALWAYS quit PowerShell when rebuilding WSP Or use different names for WSP If CustomUpgradeAction fails, doesn’t upgrade feature Will leave things “half baked” – defensive coding Adjust ULS logs to see messages ‘Feature Infrastructure’, ‘Fields’, ‘General’
  • 31. What to watch - Definitions Copy definition, create new one, hide old version List Templates Workflow Site Definitions or Feature stapling
  • 32. What to watch - instances Web Parts Imperatively modify properties Assembly upgrade List Instances Incrementally upgrade Workflows Assembly upgrade on existing activities Changing what activities exist on current instances “You’re on your own soldier”
  • 33. SANDBOXED SOLUTIONS Slightly different! Upgrade button for Sandboxed Solutions On upgrading a Solution All Features are upgraded automatically!
  • 34. Solution version Defined by having new wsp name e.g. SPDevWiki_v1.0.0.0.wsp and SPDevWiki_v2.0.0.0.wsp Sandboxed Solutions Deploying different versions to different Site Collections in Farm Supported in Farm Solutions Easy way to identify what version in different Farms no other way of identifying solutions only keeps most recent
  • 35. Assembly versions New Assembly Version Workflow instances + Web Part instances Will remove old version from GAC breaking old Web Parts Use Binding Redirect if not worried about old assembly version – if so why do it in the first place? Assembly Versioning broken in Sandboxed Solutions
  • 36. Feature upgrade object model QueryFeatures method (4 overloads) GuidfeatureId GuidfeatureId, boolneedsUpgrade GuidfeatureId, Version featureVersion SPFeatureScope scope, boolneedsUpgrade Available from SPWebService(Farm), SPWebApplication, SPContentDatabase & SPSite
  • 37. Versioning strategies Main Goal Identify which versions are across farm Assembly version and Feature versions will diverge Release notes needed! Stick with one approach Major.Minor.Build.Revision Change severity (breaking/major/minor) Shipping/non-shipping (product orientated) Incorporate sprint/iteration Incorporate changeset number Other crazy approaches!
  • 38. How can I prepare 2007 code? Start versioning your features – default 0.0.0.0 <SharePoint:UIVersionedContentUIVersion=“4”> Deprecated API’s Binding redirects VSeWSS -> VS2010 supported WSPBuilder/STSDev/STSADM/custom -> manual
  • 39.
  • 40.
  • 42.
  • 43. Visual Studio 2010 add-in TechNet walkthrough for building VSIX add-in http://msdn.microsoft.com/en-us/library/ee256698.aspx Tommy Segoro (WA, AUS) Completed code sample http://vs2010spupgrade.codeplex.com/
  • 44.
  • 46.
  • 47. Getting Started in SharePoint 2010 development
  • 48.

Editor's Notes

  1. In 2007 provisioning artefacts and then upgrading them was like head butting a brick wall. It’s quick and easy to create these things in the Web UI in one environment, and extremely easy to add new Site Columns to existing Content Types. Or modify Web Part properties.But when you have 10 Site Collections with 20 Content Types and have to modify them in Development, Test and Production. This is tedious for every promotion of a change. This is why we do development over configuration.
  2. Some things are easier than others to replace.Definitions vs InstancesMost are not aware that although you define a Content Type at the Site Collection level, if you create a List in a sub site and attach a Content Type to the List it creates an Instance which has a “link” back to the definition. The same is true of List Templates, although this works slightly different again in that once a List Instance is created, if you modify the List Template the changes are promoted to the List Instance. This is by design, you would need to imperatively update each List Instance. This is why it is encouraged to use Content Types because at least you can push down changes to Fields that way.Pushing Changes DownIn the UI you can change the definition and it pushes the changes down to these instances, but if you do it imperatively in code you have to be careful. It is unsupported to change Content Type Definitions declaratively.Module PagesModule Pages in a Site Collection will reference the file deployed in the Feature within the SharePoint Root (hive), and as long as they are not customised, will automatically take the updated version.
  3. Module PagesModule Pages in a Site Collection will reference the file deployed in the Feature within the SharePoint Root (hive), and as long as they are not customised, will automatically take the updated version.
  4. Deactivate/ActivateThis is a common approach where you just deactivate the feature and reactive which will run the Feature Receiver code where you could imperatively “do stuff” like check columns existed on Content Types etc. to ensure that they matched the Definition in the Content Type manifest in the Feature.In most instances it will pull out the Content Type defintions etc. if they are not used and then on Activation it will provision the new updated Definition. This does not work if the Content Type is in use, which in most cases it will be.Clean upSome people will actually remove Definitions on Deactivation to clean up. Such as Content Type Definitions or even List Templates and Web Parts. Remember that when you deactivate, by default it will leave any instances deployed by Module elements e.g. Web Part Definitions and Master Pages.PowerShellIn 2007 some people used PowerShell to imperatively go through instances in each Site Collection and tweak them. Sometimes, as a Developer it was often slower to sit and work out the API to modify a Content Type compared to a few seconds in the UI. There’s snippets of code all over the web for this and we’ll have the same issues again in SharePoint 2010 although a lot of the SharePoint 2007 stuff is re usable.Don’t overuse features where you are for instance just creating a Images Library on100 sites and deploy a Solution Package with a Feature with List Instance in it. Simply recurse through the sites with PowerShell to provision it.
  5. Feature Version actually means something in SharePoint 2010. It was unused attribute in SharePoint 2007.
  6. #create new project#create content type based on Article#run package solutionAdd-SPSolution -LiteralPath &quot;C:\\Users\\sp_admin\\Documents\\Visual Studio 2010\\Projects\\SharePointProject4\\SPDevWiki.ContentTypesFarmDemo\\bin\\debug\\SPDevWiki.ContentTypesFarmDemo.wsp&quot;Install-SPSolution -Identity &quot;SPDevWiki.ContentTypesFarmDemo.wsp&quot; -GACDeployment#show that farm feature has it at 1.0.0.0get-spfeature | where {$_.DisplayName -eq &apos;SPDevWiki.ContentTypesFarmDemo_SPDevWiki.ContentTypesFarmDemo&apos; } | select DisplayName, Version#show that feature doesn&apos;t exist at Site Collection yet$site = get-spsite &quot;http://sp2010rtm:99&quot;$feature = $site.Features | where {$_.DefinitionId -eq &apos;cc9f1e0b-44ac-4a75-880c-768576cfd4eb&apos; }$featureEnable-SPFeature -Identity &quot;SPDevWiki.ContentTypesFarmDemo_SPDevWiki.ContentTypesFarmDemo&quot; -Url &quot;http://sp2010rtm:99&quot;#show that feature does exist at Site Collection$site = get-spsite &quot;http://sp2010rtm:99&quot;$feature = $site.Features | where {$_.DefinitionId -eq &apos;cc9f1e0b-44ac-4a75-880c-768576cfd4eb&apos; }$feature#Add UpgradeActions for new Site column on Content Type#add a ApplyElementManifests#add the xml snippet#create the new Manifest File - highlight that field isn&apos;t a new SPI#Increment Feature Version from 1.0.0.0 to 2.0.0.0Update-SPSolution -Identity &quot;SPDevWiki.ContentTypesFarmDemo.wsp&quot; -LiteralPath &quot;C:\\Users\\sp_admin\\Documents\\Visual Studio 2010\\Projects\\SharePointProject4\\SPDevWiki.ContentTypesFarmDemo\\bin\\debug\\SPDevWiki.ContentTypesFarmDemo.wsp&quot; -GACDeployment#Show how feature is updated in Farm - show it doesn&apos;t show up updated versionget-spfeature | where {$_.DisplayName -eq &apos;SPDevWiki.ContentTypesFarmDemo_SPDevWiki.ContentTypesFarmDemo&apos; } | select DisplayName, Version#Need to shut down PowerShell to reflect the change here!get-spfeature | where {$_.DisplayName -eq &apos;SPDevWiki.ContentTypesFarmDemo_SPDevWiki.ContentTypesFarmDemo&apos; } | select DisplayName, Version#Show how Version isn&apos;t updated on site yet$site = get-spsite &quot;http://sp2010rtm:99&quot;$feature = $site.Features | where {$_.DefinitionId -eq &apos;cc9f1e0b-44ac-4a75-880c-768576cfd4eb&apos; }$feature#Run the upgrade$feature.Upgrade($false);#show that feature has upgraded on Site Collection now$feature#show Content Type updated showing new field#now show feature installed on new Site Collection that hasn&apos;t had it enabled beforeEnable-SPFeature -Identity &quot;SPDevWiki.ContentTypesFarmDemo_SPDevWiki.ContentTypesFarmDemo&quot; -Url &quot;http://sp2010rtm:81&quot;#show ContentType re-appears and that feature is now on 2.0.0.0$site = get-spsite &quot;http://sp2010rtm:81&quot;$feature = $site.Features | where {$_.DefinitionId -eq &apos;cc9f1e0b-44ac-4a75-880c-768576cfd4eb&apos; }$feature#show that content Type does not have the new field#Run the upgrade$feature.Upgrade($false);#Show that content Type still does not have the new field$feature#Raise importance that you still need to add the stuff to the base content type too#Upgrade is purely to incrementally upgrade instances!#add &lt;FieldRef /&gt; to contenttypeUpdate-SPSolution -Identity &quot;SPDevWiki.ContentTypesFarmDemo.wsp&quot; -LiteralPath &quot;C:\\Users\\sp_admin\\Documents\\Visual Studio 2010\\Projects\\SharePointProject4\\SPDevWiki.ContentTypesFarmDemo\\bin\\debug\\SPDevWiki.ContentTypesFarmDemo.wsp&quot; -GACDeployment#Show that feature now has the new field#now add a feature receiver and add the code snippets#copy the feature assembly info into the upgrade feature assembly bits in properties window#add &lt;CustomUpgradeAction Name=&quot;Upgrade6.0.0.0To7.0.0.0&quot; /&gt; to new VersionRangeUpdate-SPSolution -Identity &quot;SPDevWiki.ContentTypesFarmDemo.wsp&quot; -LiteralPath &quot;C:\\Users\\sp_admin\\Documents\\Visual Studio 2010\\Projects\\SharePointProject4\\SPDevWiki.ContentTypesFarmDemo\\bin\\debug\\SPDevWiki.ContentTypesFarmDemo.wsp&quot; -GACDeployment#close powershell#run$site = get-spsite &quot;http://sp2010rtm:99&quot;$feature = $site.Features | where {$_.DefinitionId -eq &apos;cc9f1e0b-44ac-4a75-880c-768576cfd4eb&apos; }$feature#note that if this fails, stays at existing feature version but antying it&apos;s managed to do declaritively and imperatively will be done and not rolled out (ARGHHH!)$feature.Upgrade($false);$feature#not used#remove featureDisable-SPFeature -Identity &quot;SPDevWiki.ContentTypesFarmDemo_SPDevWiki.ContentTypesFarmDemo&quot; -Url &quot;http://sp2010rtm:99&quot;#show it gone from Content Types list#now remove v2.0.0.0 in fullUninstall-SPSolution -Identity &quot;SPDevWiki.ContentTypesFarmDemo.wsp&quot;Remove-SPSolution -Identity &quot;SPDevWiki.ContentTypesFarmDemo.wsp&quot;#now add v3.0.0.0 solutionAdd-SPSolution -LiteralPath &quot;C:\\Users\\sp_admin\\Documents\\Visual Studio 2010\\Projects\\SharePointProject4\\SPDevWiki.ContentTypesFarmDemo\\bin\\debug\\SPDevWiki.ContentTypesFarmDemo.wsp&quot;Install-SPSolution -Identity &quot;SPDevWiki.ContentTypesFarmDemo.wsp&quot; -GACDeploymentEnable-SPFeature -Identity &quot;SPDevWiki.ContentTypesFarmDemo_SPDevWiki.ContentTypesFarmDemo&quot; -Url &quot;http://sp2010rtm:99&quot;
  7. http://technet.microsoft.com/en-us/library/ee906565.aspxNote: You should probably start a new instance of PowerShell after each time you build, otherwise the actions you perform may be run against an outdated version of your assembly from the GAC.  The same thing sometimes applies to Visual Studio deployment, for instance if one solution refers to an assembly in another solution!
  8. (get-spweb http://sp2010rtm:99/).Features | where {$_.DefinitionId -eq &apos;7cd284c9-b998-457b-b782-4473744b7daf&apos; }get-spfeature | where {$_.DefinitionId -eq &apos;7cd284c9-b998-457b-b782-4473744b7daf&apos; } | select DisplayName, Version
  9. http://msdn.microsoft.com/en-us/library/ee538968(office.14).aspx
  10. http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.queryfeatures(office.14).aspxReturns SPFeatureQueryResultCollection Depending on at what level you query the returned features could cover various scopesSPWebServiceFinds all instances of the feature with given id that require upgrade in the farm. All scopes of features (Farm, Web Application, Site collection, Web) are supported.SPWebApplicationFinds all instances of the feature with given id in all content databases. Web app/site collection/web scoped features are supported.SPContentDatabaseOverloads of QueryFeatures function of this class find site and web scoped features in content database that conform to filtering criteria. Returned collection is ordered with regard to web hierarchy. Parent web features goes before child web features and traversal of the tree is done in depth-first manner.SPSiteOverloads of QueryFeatures function of this class find web scoped features in site collection that conform to filtering criteria. Returned collection is ordered with regard to web hierarchy. Parent web features goes before child web features and traversal of the tree is done in depth-first manner. Overloads of QueryFeatures function of this class will be available in Client OM.