SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Managing the SharePoint Application Lifecycle – beyond version 1.0.0.0PART 1 DEV103 Chris O’Brien - MVP
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
What is ALM? Definition: Considering all aspects of app through lifetime Key aspect: managing upgrades and change SharePoint presents unique challenges – complex platform!
Part 1 (this session) Initial build ,[object Object]
Building Feature XMLUpgrading a SharePoint application ,[object Object]
How to version a Feature
Using code/XML to upgrade,[object Object]
Changes to WSP framework
Assembly versioning in SP2010
Versioning recommendationsUpgrading a SharePoint application
Considerations in initial build Decision: provisioning with XML or code? Drivers to use code approach: Ability to debug provisioning! More control over sequencing Upgrading artifacts requires code anyway BUT, some XML always required: Site definitions, list templates, delegate controls, custom actions
Developing Feature XML By hand Some ‘startup’ support with VS item templates Copy/paste from last project  NEW – reverse-engineer with tools Step 1: Save site as template (WSP) Step 2: Import WSP in VS2010
Feature framework changes
Receivers New XML Can now add event receiver to specific list declaratively:
PropertyBag New XML Used to set list item values declaratively Also entries on root web, web, list
WorkflowAssociation New XML Used to add workflow to list/ctype
WebTemplate New XML Similar to site def, for web only Also used in sandbox
CustomAction New XML Expanded for ribbon customization Can also add JS to page (SPSite-scoped)
wsp IMPORT Streamlining the initial site build
WSP import gotchas OOTB site def artifacts included NOT full fidelity:  Can’t do BCS entities, code WFs, list/site defs and more.. NOT supported to import 2007 WSP! Round-trip/customized files issue Web part properties – serialized as binary
WSP import recommendations Do not use generated VS project itself Selectively move artifacts into ‘created’ VS project(s)
Feature versioning/upgrade
Approaches for upgrading Create new feature Staple to existing site def for new sites Script activation on existing sites Upgrade existing feature Old way: reactivate feature ISSUE: Some artifacts get duplicated ISSUE: May be undesirable for activation code to run multiple times New way: upgrade feature
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
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)
Feature dependencies Can now depend on specific version of Feature (MinimumVersion) Depended-on Features auto-upgraded where possible  Plus same dependency rules as 2007: Cannot depend on lower scope Hidden features cannot have dependencies
UPGRADING A FEATURE Updating functionality
Triggering upgrade NOT automatic on deployment/ reactivation! Run [Foo].QueryFeatures() to find Features requiring upgrade Run SPFeature.Upgrade() on all/selected No UI, PS cmdlet, STSADM cmd to do this

Weitere ähnliche Inhalte

Was ist angesagt?

Serverless meetup - OpenWhisk overview and architecture
Serverless meetup - OpenWhisk overview and architectureServerless meetup - OpenWhisk overview and architecture
Serverless meetup - OpenWhisk overview and architectureSandeep Paliwal
 
Laravel and CodeIgniter: pros & cons
Laravel and CodeIgniter: pros & consLaravel and CodeIgniter: pros & cons
Laravel and CodeIgniter: pros & consElenorWisozk
 
ATLAS Automation POC
ATLAS Automation POCATLAS Automation POC
ATLAS Automation POCaakashmc
 
Metrics & Challenges for Testing Streaming Applications in 2019
Metrics & Challenges for Testing Streaming Applications in 2019Metrics & Challenges for Testing Streaming Applications in 2019
Metrics & Challenges for Testing Streaming Applications in 2019Sarah Elson
 
Deploy mule application
Deploy mule applicationDeploy mule application
Deploy mule applicationSon Nguyen
 
Modern App Development with the SharePoint Framework
Modern App Development with the SharePoint FrameworkModern App Development with the SharePoint Framework
Modern App Development with the SharePoint FrameworkPete Filicetti
 
What's new in ALM using Visual Studio 2013 and Team Foundation Service
What's new in ALM using Visual Studio 2013 and Team Foundation ServiceWhat's new in ALM using Visual Studio 2013 and Team Foundation Service
What's new in ALM using Visual Studio 2013 and Team Foundation ServiceMicrosoft Visual Studio
 
KKBOX WWDC17 Security - Antony
KKBOX WWDC17 Security - AntonyKKBOX WWDC17 Security - Antony
KKBOX WWDC17 Security - AntonyLiyao Chen
 
Bring Order to the Chaos: Take the MVC Plunge
Bring Order to the Chaos: Take the MVC PlungeBring Order to the Chaos: Take the MVC Plunge
Bring Order to the Chaos: Take the MVC PlungeColdFusionConference
 
Akash 2013CA05 software testing presentation -selenium
Akash 2013CA05 software testing presentation  -seleniumAkash 2013CA05 software testing presentation  -selenium
Akash 2013CA05 software testing presentation -seleniumAkash Verma
 
Accelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol developmentAccelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol developmentMicro Focus
 
IAM EclipseCon 2009
IAM EclipseCon 2009IAM EclipseCon 2009
IAM EclipseCon 2009mpoindexter
 
Building your first android app using xamarin (Gill Cleeren)
Building your first android app using xamarin (Gill Cleeren)Building your first android app using xamarin (Gill Cleeren)
Building your first android app using xamarin (Gill Cleeren)Visug
 
Mockingbird – mock api
Mockingbird – mock apiMockingbird – mock api
Mockingbird – mock apiSagar Rao
 

Was ist angesagt? (18)

Serverless meetup - OpenWhisk overview and architecture
Serverless meetup - OpenWhisk overview and architectureServerless meetup - OpenWhisk overview and architecture
Serverless meetup - OpenWhisk overview and architecture
 
Laravel and CodeIgniter: pros & cons
Laravel and CodeIgniter: pros & consLaravel and CodeIgniter: pros & cons
Laravel and CodeIgniter: pros & cons
 
automationframework
automationframeworkautomationframework
automationframework
 
ATLAS Automation POC
ATLAS Automation POCATLAS Automation POC
ATLAS Automation POC
 
Metrics & Challenges for Testing Streaming Applications in 2019
Metrics & Challenges for Testing Streaming Applications in 2019Metrics & Challenges for Testing Streaming Applications in 2019
Metrics & Challenges for Testing Streaming Applications in 2019
 
Deploy mule application
Deploy mule applicationDeploy mule application
Deploy mule application
 
Modern App Development with the SharePoint Framework
Modern App Development with the SharePoint FrameworkModern App Development with the SharePoint Framework
Modern App Development with the SharePoint Framework
 
ASP.NET Core 1.0 Overview
ASP.NET Core 1.0 OverviewASP.NET Core 1.0 Overview
ASP.NET Core 1.0 Overview
 
Automation
AutomationAutomation
Automation
 
What's new in ALM using Visual Studio 2013 and Team Foundation Service
What's new in ALM using Visual Studio 2013 and Team Foundation ServiceWhat's new in ALM using Visual Studio 2013 and Team Foundation Service
What's new in ALM using Visual Studio 2013 and Team Foundation Service
 
KKBOX WWDC17 Security - Antony
KKBOX WWDC17 Security - AntonyKKBOX WWDC17 Security - Antony
KKBOX WWDC17 Security - Antony
 
Bring Order to the Chaos: Take the MVC Plunge
Bring Order to the Chaos: Take the MVC PlungeBring Order to the Chaos: Take the MVC Plunge
Bring Order to the Chaos: Take the MVC Plunge
 
Akash 2013CA05 software testing presentation -selenium
Akash 2013CA05 software testing presentation  -seleniumAkash 2013CA05 software testing presentation  -selenium
Akash 2013CA05 software testing presentation -selenium
 
Accelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol developmentAccelerating time to delivery modern tools for cobol development
Accelerating time to delivery modern tools for cobol development
 
Composer talk by Maxim Romanovsky
Composer talk by Maxim RomanovskyComposer talk by Maxim Romanovsky
Composer talk by Maxim Romanovsky
 
IAM EclipseCon 2009
IAM EclipseCon 2009IAM EclipseCon 2009
IAM EclipseCon 2009
 
Building your first android app using xamarin (Gill Cleeren)
Building your first android app using xamarin (Gill Cleeren)Building your first android app using xamarin (Gill Cleeren)
Building your first android app using xamarin (Gill Cleeren)
 
Mockingbird – mock api
Mockingbird – mock apiMockingbird – mock api
Mockingbird – mock api
 

Andere mochten auch

SPCSEA 2013 - Upgrading to SharePoint 2013
SPCSEA 2013 - Upgrading to SharePoint 2013SPCSEA 2013 - Upgrading to SharePoint 2013
SPCSEA 2013 - Upgrading to SharePoint 2013Michael Noel
 
SharePoint 2013 Migration
SharePoint 2013 MigrationSharePoint 2013 Migration
SharePoint 2013 MigrationVishal Gupta
 
SharePoint Taxonomy and Metadata 11-19-09
SharePoint Taxonomy and Metadata 11-19-09SharePoint Taxonomy and Metadata 11-19-09
SharePoint Taxonomy and Metadata 11-19-09Stephanie Lemieux
 
Best Practices for Organizing Documents in SharePoint 2010
Best Practices for Organizing Documents in SharePoint 2010Best Practices for Organizing Documents in SharePoint 2010
Best Practices for Organizing Documents in SharePoint 2010Agnes Molnar
 
Access Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to KnowAccess Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to KnowNik Patel
 
10 Reasons your SharePoint Migration Failed
10 Reasons your SharePoint Migration Failed10 Reasons your SharePoint Migration Failed
10 Reasons your SharePoint Migration FailedBenjamin Niaulin
 

Andere mochten auch (6)

SPCSEA 2013 - Upgrading to SharePoint 2013
SPCSEA 2013 - Upgrading to SharePoint 2013SPCSEA 2013 - Upgrading to SharePoint 2013
SPCSEA 2013 - Upgrading to SharePoint 2013
 
SharePoint 2013 Migration
SharePoint 2013 MigrationSharePoint 2013 Migration
SharePoint 2013 Migration
 
SharePoint Taxonomy and Metadata 11-19-09
SharePoint Taxonomy and Metadata 11-19-09SharePoint Taxonomy and Metadata 11-19-09
SharePoint Taxonomy and Metadata 11-19-09
 
Best Practices for Organizing Documents in SharePoint 2010
Best Practices for Organizing Documents in SharePoint 2010Best Practices for Organizing Documents in SharePoint 2010
Best Practices for Organizing Documents in SharePoint 2010
 
Access Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to KnowAccess Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to Know
 
10 Reasons your SharePoint Migration Failed
10 Reasons your SharePoint Migration Failed10 Reasons your SharePoint Migration Failed
10 Reasons your SharePoint Migration Failed
 

Ähnlich wie Managing the SharePoint Application Lifecycle – beyond version 1.0.0.0PART 1

Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2Chris O'Brien
 
Developer application lifecycle process and tools - v.5
Developer application lifecycle process and tools - v.5Developer application lifecycle process and tools - v.5
Developer application lifecycle process and tools - v.5Ivan Sanders
 
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...Ivan Sanders
 
Practical Guidance for SharePoint 2010 Upgrade
Practical Guidance for SharePoint 2010 UpgradePractical Guidance for SharePoint 2010 Upgrade
Practical Guidance for SharePoint 2010 UpgradeJoel Oleson
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien
 
Building and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and ContextBuilding and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and ContextSvilen Sabev
 
Features and Context Overview
Features and Context OverviewFeatures and Context Overview
Features and Context Overviewbrentratliff
 
Continuous DB migration based on carbon5 framework
Continuous DB migration based on carbon5 frameworkContinuous DB migration based on carbon5 framework
Continuous DB migration based on carbon5 frameworkb0ris_1
 
Борис Трофимов. Continuous Database migration-это просто!
Борис Трофимов. Continuous Database migration-это просто!Борис Трофимов. Continuous Database migration-это просто!
Борис Трофимов. Continuous Database migration-это просто!Volha Banadyseva
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development ServicesKabilan D
 
[Portland 365Sat] PCF Custom Controls
[Portland 365Sat] PCF Custom Controls[Portland 365Sat] PCF Custom Controls
[Portland 365Sat] PCF Custom Controls⚡ Danish Naglekar
 
Netbeans 6.1 Talk
Netbeans 6.1 TalkNetbeans 6.1 Talk
Netbeans 6.1 TalkAngad Singh
 
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 2013Mack Hardy
 
Updating Legacy SharePoint Customizations to the Add-in Model
Updating Legacy SharePoint Customizations to the Add-in ModelUpdating Legacy SharePoint Customizations to the Add-in Model
Updating Legacy SharePoint Customizations to the Add-in ModelDanny Jessee
 
Best Practices Configuring And Developing Share Point Solutions
Best Practices Configuring And Developing Share Point SolutionsBest Practices Configuring And Developing Share Point Solutions
Best Practices Configuring And Developing Share Point SolutionsAlexander Meijers
 
SPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxSPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxNCCOMMS
 
COB - Azure Functions for Office 365 developers
COB - Azure Functions for Office 365 developersCOB - Azure Functions for Office 365 developers
COB - Azure Functions for Office 365 developersChris O'Brien
 
Mobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best PracticesMobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best PracticesAndrew Ferrier
 
SPUnite17 Become a Developer Hero by Building Office Add ins
SPUnite17 Become a Developer Hero by Building Office Add insSPUnite17 Become a Developer Hero by Building Office Add ins
SPUnite17 Become a Developer Hero by Building Office Add insNCCOMMS
 

Ähnlich wie Managing the SharePoint Application Lifecycle – beyond version 1.0.0.0PART 1 (20)

Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2
 
Developer application lifecycle process and tools - v.5
Developer application lifecycle process and tools - v.5Developer application lifecycle process and tools - v.5
Developer application lifecycle process and tools - v.5
 
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...
 
Practical Guidance for SharePoint 2010 Upgrade
Practical Guidance for SharePoint 2010 UpgradePractical Guidance for SharePoint 2010 Upgrade
Practical Guidance for SharePoint 2010 Upgrade
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developers
 
Building and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and ContextBuilding and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and Context
 
Features and Context Overview
Features and Context OverviewFeatures and Context Overview
Features and Context Overview
 
Continuous DB migration based on carbon5 framework
Continuous DB migration based on carbon5 frameworkContinuous DB migration based on carbon5 framework
Continuous DB migration based on carbon5 framework
 
Борис Трофимов. Continuous Database migration-это просто!
Борис Трофимов. Continuous Database migration-это просто!Борис Трофимов. Continuous Database migration-это просто!
Борис Трофимов. Continuous Database migration-это просто!
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development Services
 
SharePoint 2010 Development
SharePoint 2010 DevelopmentSharePoint 2010 Development
SharePoint 2010 Development
 
[Portland 365Sat] PCF Custom Controls
[Portland 365Sat] PCF Custom Controls[Portland 365Sat] PCF Custom Controls
[Portland 365Sat] PCF Custom Controls
 
Netbeans 6.1 Talk
Netbeans 6.1 TalkNetbeans 6.1 Talk
Netbeans 6.1 Talk
 
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
 
Updating Legacy SharePoint Customizations to the Add-in Model
Updating Legacy SharePoint Customizations to the Add-in ModelUpdating Legacy SharePoint Customizations to the Add-in Model
Updating Legacy SharePoint Customizations to the Add-in Model
 
Best Practices Configuring And Developing Share Point Solutions
Best Practices Configuring And Developing Share Point SolutionsBest Practices Configuring And Developing Share Point Solutions
Best Practices Configuring And Developing Share Point Solutions
 
SPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxSPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFx
 
COB - Azure Functions for Office 365 developers
COB - Azure Functions for Office 365 developersCOB - Azure Functions for Office 365 developers
COB - Azure Functions for Office 365 developers
 
Mobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best PracticesMobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best Practices
 
SPUnite17 Become a Developer Hero by Building Office Add ins
SPUnite17 Become a Developer Hero by Building Office Add insSPUnite17 Become a Developer Hero by Building Office Add ins
SPUnite17 Become a Developer Hero by Building Office Add ins
 

Mehr von Chris O'Brien

Chris O'Brien - Building AI into Power Platform solutions
Chris O'Brien - Building AI into Power Platform solutionsChris O'Brien - Building AI into Power Platform solutions
Chris O'Brien - Building AI into Power Platform solutionsChris O'Brien
 
Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris O'Brien
 
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmapsChris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmapsChris O'Brien
 
COB ESPC18 - Rich PowerApps with offline support
COB ESPC18 - Rich PowerApps with offline supportCOB ESPC18 - Rich PowerApps with offline support
COB ESPC18 - Rich PowerApps with offline supportChris O'Brien
 
COB - PowerApps - the good, the bad and the ugly - early 2018
COB - PowerApps - the good, the bad and the ugly - early 2018COB - PowerApps - the good, the bad and the ugly - early 2018
COB - PowerApps - the good, the bad and the ugly - early 2018Chris O'Brien
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris O'Brien
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentChris O'Brien
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentChris O'Brien
 
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien
 
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris O'Brien
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
 
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienChris O'Brien
 
SP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'BrienSP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'BrienChris O'Brien
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienGetting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienChris O'Brien
 
SharePoint Ribbon Deep Dive
SharePoint Ribbon Deep DiveSharePoint Ribbon Deep Dive
SharePoint Ribbon Deep DiveChris O'Brien
 

Mehr von Chris O'Brien (20)

Chris O'Brien - Building AI into Power Platform solutions
Chris O'Brien - Building AI into Power Platform solutionsChris O'Brien - Building AI into Power Platform solutions
Chris O'Brien - Building AI into Power Platform solutions
 
Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing work
 
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmapsChris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
 
COB ESPC18 - Rich PowerApps with offline support
COB ESPC18 - Rich PowerApps with offline supportCOB ESPC18 - Rich PowerApps with offline support
COB ESPC18 - Rich PowerApps with offline support
 
COB - PowerApps - the good, the bad and the ugly - early 2018
COB - PowerApps - the good, the bad and the ugly - early 2018COB - PowerApps - the good, the bad and the ugly - early 2018
COB - PowerApps - the good, the bad and the ugly - early 2018
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 development
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 development
 
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
 
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
 
SP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'BrienSP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'Brien
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienGetting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'Brien
 
SharePoint Ribbon Deep Dive
SharePoint Ribbon Deep DiveSharePoint Ribbon Deep Dive
SharePoint Ribbon Deep Dive
 

Managing the SharePoint Application Lifecycle – beyond version 1.0.0.0PART 1

  • 1. Managing the SharePoint Application Lifecycle – beyond version 1.0.0.0PART 1 DEV103 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
  • 3. What is ALM? Definition: Considering all aspects of app through lifetime Key aspect: managing upgrades and change SharePoint presents unique challenges – complex platform!
  • 4.
  • 5.
  • 6. How to version a Feature
  • 7.
  • 8. Changes to WSP framework
  • 10. Versioning recommendationsUpgrading a SharePoint application
  • 11. Considerations in initial build Decision: provisioning with XML or code? Drivers to use code approach: Ability to debug provisioning! More control over sequencing Upgrading artifacts requires code anyway BUT, some XML always required: Site definitions, list templates, delegate controls, custom actions
  • 12. Developing Feature XML By hand Some ‘startup’ support with VS item templates Copy/paste from last project  NEW – reverse-engineer with tools Step 1: Save site as template (WSP) Step 2: Import WSP in VS2010
  • 14. Receivers New XML Can now add event receiver to specific list declaratively:
  • 15. PropertyBag New XML Used to set list item values declaratively Also entries on root web, web, list
  • 16. WorkflowAssociation New XML Used to add workflow to list/ctype
  • 17. WebTemplate New XML Similar to site def, for web only Also used in sandbox
  • 18. CustomAction New XML Expanded for ribbon customization Can also add JS to page (SPSite-scoped)
  • 19. wsp IMPORT Streamlining the initial site build
  • 20. WSP import gotchas OOTB site def artifacts included NOT full fidelity: Can’t do BCS entities, code WFs, list/site defs and more.. NOT supported to import 2007 WSP! Round-trip/customized files issue Web part properties – serialized as binary
  • 21. WSP import recommendations Do not use generated VS project itself Selectively move artifacts into ‘created’ VS project(s)
  • 23. Approaches for upgrading Create new feature Staple to existing site def for new sites Script activation on existing sites Upgrade existing feature Old way: reactivate feature ISSUE: Some artifacts get duplicated ISSUE: May be undesirable for activation code to run multiple times New way: upgrade feature
  • 24. 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
  • 25. 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. Feature dependencies Can now depend on specific version of Feature (MinimumVersion) Depended-on Features auto-upgraded where possible Plus same dependency rules as 2007: Cannot depend on lower scope Hidden features cannot have dependencies
  • 27. UPGRADING A FEATURE Updating functionality
  • 28. Triggering upgrade NOT automatic on deployment/ reactivation! Run [Foo].QueryFeatures() to find Features requiring upgrade Run SPFeature.Upgrade() on all/selected No UI, PS cmdlet, STSADM cmd to do this
  • 29. Upgrade tool on Codeplex http://spfeatureupgrade.codeplex.com(soon!):
  • 30. Feature upgrade gotchas Messages not logged by default – change ULS settings for : “Feature Infrastructure”, “Fields”, “General” BeginVersion inclusive but EndVersion not Newly-activated Feature instances out of sync = Feature design issue Ensure obey ‘elements by scope’ rules!
  • 31. Summary WSP import useful in initial build Now have standardized framework for upgrading applications New XML e.g. AddFieldToContentType Implement code in FeatureUpgrading event
  • 32.
  • 33.