SlideShare a Scribd company logo
1 of 23
Approaches and Best Practices for deploying SharePoint sites DEV212 Chris O’Brien - MVP
Ask The Experts Panel Text numbers 1. IT PRO – 07891 100640 2. DEV – 07790 108093   3. IW – 07790 132855   4. BA – 07989 359425
Chris O’Brien, MVP, MCSD.Net, MCTS www.sharepointnutsandbolts.com Hands-on developer Author of Content Deployment Wizard tool Regular speaker at UK user group
What we’ll cover Deployment goals and challenges Options: Deployment with Features STSADM export Content Deployment/Wizard Kivati Studio/code/PowerShell Considerations Best practices and guidelines
The challenge Most projects will use multiple environments (esp. WCM) Complex mix of .Net/SharePoint artifacts Files/assemblies SharePoint schema (e.g. content types, site columns) SharePoint content  Configuration (e.g. web.config)
Deployment goals Repeatable Should always be able to rebuild from zero Predictable Acceptable packaging effort Automation scale Documentation is critical
Deployment options
FEATURES
Option 1: Features Pros Classic approach for rolling out functionality to multiple site collections Fairly rich framework/tools Can provision files as ‘uncustomized’ Cons Deals with schema only, not data Relatively steep learning curve Code often required for updates
Option 2: STSADM export Pros Very simple Moves site collections/web – data & schema  Can be scripted Cons Doesn’t allow setting of certain switches All objects given new IDs – can break things ListView web parts, InfoPath connections etc. Bi-directional can cause problems
Option 2: STSADM export Other considerations: Is not backup/restore! Not deployed: Alerts Audit trail Change log history Recycle bin items Workflow tasks/state
Content deployment wizard
Option 3: Content Deployment Wizard Pros Same deal as STSADM export, but.. Exposes more switches e.g. retain IDs Can deploy site collection/web/list/list item Can be scripted (beta)  Cons Files are deployed as customized Bi-directional can cause problems Need to understand capabilities
KIVATI STUDIO
Option 4: Kivati Studio Pros Packages updates into .exe for administrator Nice structure for e.g. content type updates Workflow designer allowing reuse Can write custom code if no built-in task  Cons Fairly steep learning curve Potential lock-in? Doesn’t move content e.g. list items/files
Choosing a method
Choosing a method - factors Features are generally the best option, but consider: Type of solution: Single site collection/WCM – Wizard good here Multiple site collection Packaging experience Timeframe also a factor Frequency/type of updates More code required to update Features
Choosing a method – factors If multiple developers, consider team dev model:
Best practices – to always do Always use WSPs for file system files, SafeControl entries etc. Document how to deploy/rebuild site! Identify how updates will be rolled out E.g. Updates to content types, list schemas etc.
Best practices – avoid: Using STSADM backup/restore to move a site Only for restoring to same location! Using ‘Save as site template’ to move a publishing site Not all settings saved Modifying live Feature or site def files Update using code once deployed
Summary Don’t lose sight of deployment goals We considered 4 approaches Identify approach which suits project Analysed factors in decision Some best practices are always relevant Documentation  Need to avoid ‘pitfall’ methods!
Resources: Kivati – www.kivati.com Deployment Wizard – www.codeplex.com/SPDeploymentWizard P & P/Rob Bogue - ‘Upgrading SharePoint apps’ - http://www.thorprojects.com/blog/archive/2009/02/28/upgrading-your-sharepoint-applications.aspx
Thank you for attending! Questions?

More Related Content

More from Chris 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
 
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
 
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
 
Automated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentChris O'Brien
 
Optimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet SitesOptimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet SitesChris O'Brien
 
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
 

More from Chris O'Brien (20)

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
 
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
 
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
 
Automated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 Development
 
Optimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet SitesOptimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet Sites
 
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
 

Approaches and Best Practices for Deploying SharePoint sites

  • 1. Approaches and Best Practices for deploying SharePoint sites DEV212 Chris O’Brien - MVP
  • 2. Ask The Experts Panel Text numbers 1. IT PRO – 07891 100640 2. DEV – 07790 108093   3. IW – 07790 132855   4. BA – 07989 359425
  • 3. Chris O’Brien, MVP, MCSD.Net, MCTS www.sharepointnutsandbolts.com Hands-on developer Author of Content Deployment Wizard tool Regular speaker at UK user group
  • 4. What we’ll cover Deployment goals and challenges Options: Deployment with Features STSADM export Content Deployment/Wizard Kivati Studio/code/PowerShell Considerations Best practices and guidelines
  • 5. The challenge Most projects will use multiple environments (esp. WCM) Complex mix of .Net/SharePoint artifacts Files/assemblies SharePoint schema (e.g. content types, site columns) SharePoint content Configuration (e.g. web.config)
  • 6. Deployment goals Repeatable Should always be able to rebuild from zero Predictable Acceptable packaging effort Automation scale Documentation is critical
  • 9. Option 1: Features Pros Classic approach for rolling out functionality to multiple site collections Fairly rich framework/tools Can provision files as ‘uncustomized’ Cons Deals with schema only, not data Relatively steep learning curve Code often required for updates
  • 10. Option 2: STSADM export Pros Very simple Moves site collections/web – data & schema Can be scripted Cons Doesn’t allow setting of certain switches All objects given new IDs – can break things ListView web parts, InfoPath connections etc. Bi-directional can cause problems
  • 11. Option 2: STSADM export Other considerations: Is not backup/restore! Not deployed: Alerts Audit trail Change log history Recycle bin items Workflow tasks/state
  • 13. Option 3: Content Deployment Wizard Pros Same deal as STSADM export, but.. Exposes more switches e.g. retain IDs Can deploy site collection/web/list/list item Can be scripted (beta) Cons Files are deployed as customized Bi-directional can cause problems Need to understand capabilities
  • 15. Option 4: Kivati Studio Pros Packages updates into .exe for administrator Nice structure for e.g. content type updates Workflow designer allowing reuse Can write custom code if no built-in task Cons Fairly steep learning curve Potential lock-in? Doesn’t move content e.g. list items/files
  • 17. Choosing a method - factors Features are generally the best option, but consider: Type of solution: Single site collection/WCM – Wizard good here Multiple site collection Packaging experience Timeframe also a factor Frequency/type of updates More code required to update Features
  • 18. Choosing a method – factors If multiple developers, consider team dev model:
  • 19. Best practices – to always do Always use WSPs for file system files, SafeControl entries etc. Document how to deploy/rebuild site! Identify how updates will be rolled out E.g. Updates to content types, list schemas etc.
  • 20. Best practices – avoid: Using STSADM backup/restore to move a site Only for restoring to same location! Using ‘Save as site template’ to move a publishing site Not all settings saved Modifying live Feature or site def files Update using code once deployed
  • 21. Summary Don’t lose sight of deployment goals We considered 4 approaches Identify approach which suits project Analysed factors in decision Some best practices are always relevant Documentation Need to avoid ‘pitfall’ methods!
  • 22. Resources: Kivati – www.kivati.com Deployment Wizard – www.codeplex.com/SPDeploymentWizard P & P/Rob Bogue - ‘Upgrading SharePoint apps’ - http://www.thorprojects.com/blog/archive/2009/02/28/upgrading-your-sharepoint-applications.aspx
  • 23. Thank you for attending! Questions?

Editor's Notes

  1. ProsCan provision files as ‘uncustomized’ - perf
  2. Starting development without having a deployment strategyHuge overlap between the two