SlideShare a Scribd company logo
1 of 44
 SharePoint add-in model
 Legacy SharePoint customizations
 Add-in model techniques
 Updating UI and declarative customizations
 Using the PnP Provisioning Engine
 Updating timer job customizations
 “Preferred modern approach” to development
 Who here is a…
 Developer?
 System administrator?
 Power user?
 Others?
 Have you heard of the SharePoint add-in model?
 Maybe you know it as the app model? 
 What about the SharePoint client object model?
 What version(s) of SharePoint?
 Many SharePoint customizations built before
SharePoint 2013 were deployed using:
 Farm solutions (2007+)
 Sandboxed solutions (2010)
 Shortcomings of solutions
 Full-trust code runs in the same process as SharePoint
 Server file system footprint
 Requires an app pool reset to deploy updates
 Sandboxed solutions were severely constrained
 Components hosted in isolated
add-in domain
 Can use JavaScript, HTML, CSS,
declarative markup
 No server-side code
 Add-in components can be hosted
anywhere (cloud or on-premises)
 Authorized using OAuth or the
JavaScript cross-domain library
 Can use ANY implementation
language (ASP.NET, PHP, etc.)
 The add-in model is a no-brainer for most new
development efforts
 SharePoint Framework is NOT related to the add-in model
 SharePoint Framework is complementary to the add-in model
 What about all of our legacy customizations?
 Most legacy customizations fall into one of the
following categories:
 User interface customizations
 Custom master pages, branding, web parts
 Declarative customizations
 XML for custom site columns, content types, list instances
 Timer job customizations
 If you had to migrate to the cloud tomorrow,
where would you start?
 Get a list of deployed solutions (farm and
sandboxed)
 Using the UI or PowerShell
 Map deployed code to functionality
 Is anything no longer needed?
 Determine if any no-code sandboxed solutions can be deployed to
SharePoint Online
 Categorize customizations by type
 Build and deploy add-ins using the add-in model
 Add-in model techniques
 Supported on-premises and in SharePoint Online
 No magic bullet, lots of rework may be required
 Getting away from legacy feature framework
 Remote provisioning of assets
 Making customizations with a “lighter touch”
 When necessary, running custom server-side code
outside of SharePoint
 Started by Microsoft in 2013
 Improve developer productivity
 PnP Core Component
 CSOM extension methods
 PowerShell cmdlets
 Provisioning engine
 Timer job framework
 https://github.com/sharepoint/pnp
 “Make SharePoint not look like SharePoint”
 Use corporate logo and branding
 Edit existing .master page or start from scratch
 Minimal.master popular starting point
 Issues with upgrades
 SharePoint Online
 Supported, NOT recommended
 “Change the appearance of these things”
 DOM manipulation
 Styling things
 Hiding things
 Embedded within pages
 Master page <head> section
 Content editor/script editor web parts
 Overwriting out-of-the-box CSS files 
 “Lighter touch” UI customizations
 Including themes and composed looks
 Externalize CSS and JavaScript customizations
 Remote provision these files where necessary
 Reference using Alternate CSS URL
 CustomAction script registrations
 Most common UI customization
 Easy to build in Visual Studio
 Design view removed from SharePoint Designer
 No more Data View web parts or conditional formatting
 Add-in parts not ideal
 Loaded in <iframe>
 Not responsive
 App script parts
 Reference external JavaScript
 Define container <div> where content is loaded
 Include in Content property of .webpart file
 Remote provision to site web part gallery
 SharePoint Framework
 XML to define artifacts
 Site columns
 Content types
 List definitions and instances
 Visual Studio can generate
 Elements.xml files
 .NET code not required
 Often deployed via sandboxed solutions
 Sandboxed solutions include a DLL file in the
generated .wsp by default
 Must be removed to deploy to SharePoint Online
 Remote provision assets using CSOM
 Standalone console application
 Provider-hosted add-in
 “Save site as template”
 Captures customizations to a site
 Site columns and content types
 List instances and list items
 Branding assets and other files
 Requires PnP-PowerShell
 https://github.com/sharepoint/pnp-powershell
 Generate provisioning template
 Get-PnPProvisioningTemplate
 XML file can be modified by hand or programmatically
 Save copies of additional files if necessary
 Write once, apply everywhere
 Apply-PnPProvisioningTemplate
 Development, staging, pre-production, production…
 Run autonomously on a schedule
 Run with elevated permissions
 Execute against multiple sites
 Log information and errors
 Remote timer job
 Console application
 Scheduled to run via:
 Windows Task Scheduler
 Azure WebJob/Azure Scheduler
 Define a class that inherits from TimerJob
 Execution logic in TimerJobRun event
 Instantiate class, set up authentication in Main()
 User or service account
 Client ID and secret values (app-only authentication)
 Define sites where timer job should run
 Call Run()
 Add-in model is capable and powerful enough
to handle most legacy customizations
 Apply all customizations with a “lighter touch”
 Remote provision assets
 SharePoint Developer PnP: here to help!
 Keep an eye on SharePoint Framework
Updating Legacy SharePoint Customizations to
the Add-in Model
Tooling up for SharePoint Framework
Individuals and organizations start
for free at pluralsight.com
Updating Legacy SharePoint Customizations to the Add-in Model

More Related Content

What's hot

Intro Open Social and Dashboards
Intro Open Social and DashboardsIntro Open Social and Dashboards
Intro Open Social and DashboardsAtlassian
 
SharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint FrameworkSharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint FrameworkJoAnna Cheshire
 
Front end architecture
Front end architectureFront end architecture
Front end architectureRemus Langu
 
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
 
New Features of ASP.NET 4.0
New Features of ASP.NET 4.0New Features of ASP.NET 4.0
New Features of ASP.NET 4.0Buu Nguyen
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013Kiril Iliev
 
Spsto 2013 whats_newinworkflows_amitvasu.
Spsto 2013 whats_newinworkflows_amitvasu.Spsto 2013 whats_newinworkflows_amitvasu.
Spsto 2013 whats_newinworkflows_amitvasu.amitvasu
 
Facebook Developer Garage Hamburg_cellity AG
Facebook Developer Garage Hamburg_cellity AGFacebook Developer Garage Hamburg_cellity AG
Facebook Developer Garage Hamburg_cellity AGcellity
 
Introduction to JSF
Introduction toJSFIntroduction toJSF
Introduction to JSFSoftServe
 
Introduction To Mvc
Introduction To MvcIntroduction To Mvc
Introduction To MvcVolkan Uzun
 
Server Side Template Injection
Server Side Template InjectionServer Side Template Injection
Server Side Template InjectionVlada Kulish
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC PresentationVolkan Uzun
 
Chatbot development with Microsoft Bot Framework
Chatbot development with Microsoft Bot FrameworkChatbot development with Microsoft Bot Framework
Chatbot development with Microsoft Bot FrameworkMd. Mahedee Hasan
 
Automated Testing Of Web Applications Using XML
Automated  Testing Of  Web  Applications Using  XMLAutomated  Testing Of  Web  Applications Using  XML
Automated Testing Of Web Applications Using XMLdiongillard
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRfunkatron
 

What's hot (20)

Intro Open Social and Dashboards
Intro Open Social and DashboardsIntro Open Social and Dashboards
Intro Open Social and Dashboards
 
SharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint FrameworkSharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint Framework
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Jsf
JsfJsf
Jsf
 
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
 
Flash Testing with Selenium RC
Flash Testing with Selenium RCFlash Testing with Selenium RC
Flash Testing with Selenium RC
 
New Features of ASP.NET 4.0
New Features of ASP.NET 4.0New Features of ASP.NET 4.0
New Features of ASP.NET 4.0
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
 
Spsto 2013 whats_newinworkflows_amitvasu.
Spsto 2013 whats_newinworkflows_amitvasu.Spsto 2013 whats_newinworkflows_amitvasu.
Spsto 2013 whats_newinworkflows_amitvasu.
 
Facebook Developer Garage Hamburg_cellity AG
Facebook Developer Garage Hamburg_cellity AGFacebook Developer Garage Hamburg_cellity AG
Facebook Developer Garage Hamburg_cellity AG
 
Introduction to JSF
Introduction toJSFIntroduction toJSF
Introduction to JSF
 
Introduction To Mvc
Introduction To MvcIntroduction To Mvc
Introduction To Mvc
 
Server Side Template Injection
Server Side Template InjectionServer Side Template Injection
Server Side Template Injection
 
Wpf 1
Wpf 1Wpf 1
Wpf 1
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
Week1 dq5
Week1 dq5Week1 dq5
Week1 dq5
 
Chatbot development with Microsoft Bot Framework
Chatbot development with Microsoft Bot FrameworkChatbot development with Microsoft Bot Framework
Chatbot development with Microsoft Bot Framework
 
Automated Testing Of Web Applications Using XML
Automated  Testing Of  Web  Applications Using  XMLAutomated  Testing Of  Web  Applications Using  XML
Automated Testing Of Web Applications Using XML
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
 
Developing Facebook Application
Developing Facebook ApplicationDeveloping Facebook Application
Developing Facebook Application
 

Similar to Updating Legacy SharePoint Customizations to the Add-in Model

SharePoint development 2017 wrap-up
SharePoint development   2017 wrap-upSharePoint development   2017 wrap-up
SharePoint development 2017 wrap-upJoel Rodrigues
 
Spca2014 chris o brien modern share-point development - techniques for off-...
Spca2014 chris o brien   modern share-point development - techniques for off-...Spca2014 chris o brien   modern share-point development - techniques for off-...
Spca2014 chris o brien modern share-point development - techniques for off-...NCCOMMS
 
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
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. Kushan Lahiru Perera
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Rencore
 
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...SUGES (SharePoint Users Group España)
 
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
 
06.SharePointApps
06.SharePointApps06.SharePointApps
06.SharePointAppsEaswariSP
 
#SPFestDC Migrate your custom solutions to the modern stack
#SPFestDC Migrate your custom solutions to the modern stack#SPFestDC Migrate your custom solutions to the modern stack
#SPFestDC Migrate your custom solutions to the modern stackVincent Biret
 
Sys02 best way to create a share point app
Sys02   best way to create a share point appSys02   best way to create a share point app
Sys02 best way to create a share point appDotNetCampus
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesBrian Culver
 
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
 
#ESPC18 how to migrate to the #SharePoint Framework?
#ESPC18 how to migrate to the #SharePoint Framework?#ESPC18 how to migrate to the #SharePoint Framework?
#ESPC18 how to migrate to the #SharePoint Framework?Vincent Biret
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassEuropean Collaboration Summit
 
Broaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsBroaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsEric Overfield
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for DevelopersRob Wilson
 
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...European Collaboration Summit
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to AppsGilles Pommier
 
Empowering Business Users with Flexible SharePoint Customization
Empowering Business Users with Flexible SharePoint Customization Empowering Business Users with Flexible SharePoint Customization
Empowering Business Users with Flexible SharePoint Customization D'arce Hess
 

Similar to Updating Legacy SharePoint Customizations to the Add-in Model (20)

SharePoint development 2017 wrap-up
SharePoint development   2017 wrap-upSharePoint development   2017 wrap-up
SharePoint development 2017 wrap-up
 
Spca2014 chris o brien modern share-point development - techniques for off-...
Spca2014 chris o brien   modern share-point development - techniques for off-...Spca2014 chris o brien   modern share-point development - techniques for off-...
Spca2014 chris o brien modern share-point development - techniques for off-...
 
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
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
 
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
 
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
 
06.SharePointApps
06.SharePointApps06.SharePointApps
06.SharePointApps
 
#SPFestDC Migrate your custom solutions to the modern stack
#SPFestDC Migrate your custom solutions to the modern stack#SPFestDC Migrate your custom solutions to the modern stack
#SPFestDC Migrate your custom solutions to the modern stack
 
Sys02 best way to create a share point app
Sys02   best way to create a share point appSys02   best way to create a share point app
Sys02 best way to create a share point app
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
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
 
#ESPC18 how to migrate to the #SharePoint Framework?
#ESPC18 how to migrate to the #SharePoint Framework?#ESPC18 how to migrate to the #SharePoint Framework?
#ESPC18 how to migrate to the #SharePoint Framework?
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
 
Broaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsBroaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding options
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for Developers
 
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps
 
Introducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFxIntroducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFx
 
Empowering Business Users with Flexible SharePoint Customization
Empowering Business Users with Flexible SharePoint Customization Empowering Business Users with Flexible SharePoint Customization
Empowering Business Users with Flexible SharePoint Customization
 

More from Danny Jessee

Build and Deploy Provider-hosted SharePoint Add-ins
Build and Deploy Provider-hosted SharePoint Add-insBuild and Deploy Provider-hosted SharePoint Add-ins
Build and Deploy Provider-hosted SharePoint Add-insDanny Jessee
 
Build Secure Cloud-Hosted Apps for SharePoint 2013
Build Secure Cloud-Hosted Apps for SharePoint 2013Build Secure Cloud-Hosted Apps for SharePoint 2013
Build Secure Cloud-Hosted Apps for SharePoint 2013Danny Jessee
 
Put it on a Map! Using the new Location and Map Features in SharePoint 2013
Put it on a Map! Using the new Location and Map Features in SharePoint 2013Put it on a Map! Using the new Location and Map Features in SharePoint 2013
Put it on a Map! Using the new Location and Map Features in SharePoint 2013Danny Jessee
 
Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Danny Jessee
 
Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Danny Jessee
 
Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Danny Jessee
 
Get Started with Apps for SharePoint 2013
Get Started with Apps for SharePoint 2013Get Started with Apps for SharePoint 2013
Get Started with Apps for SharePoint 2013Danny Jessee
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
 
Claims-Based Identity, Facebook, and the Cloud
Claims-Based Identity, Facebook, and the CloudClaims-Based Identity, Facebook, and the Cloud
Claims-Based Identity, Facebook, and the CloudDanny Jessee
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010,Claims-Based Identity, Facebook, and the CloudSharePoint 2010,Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
 
Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Danny Jessee
 

More from Danny Jessee (13)

Build and Deploy Provider-hosted SharePoint Add-ins
Build and Deploy Provider-hosted SharePoint Add-insBuild and Deploy Provider-hosted SharePoint Add-ins
Build and Deploy Provider-hosted SharePoint Add-ins
 
Build Secure Cloud-Hosted Apps for SharePoint 2013
Build Secure Cloud-Hosted Apps for SharePoint 2013Build Secure Cloud-Hosted Apps for SharePoint 2013
Build Secure Cloud-Hosted Apps for SharePoint 2013
 
Put it on a Map! Using the new Location and Map Features in SharePoint 2013
Put it on a Map! Using the new Location and Map Features in SharePoint 2013Put it on a Map! Using the new Location and Map Features in SharePoint 2013
Put it on a Map! Using the new Location and Map Features in SharePoint 2013
 
Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!
 
Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!
 
Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!Get Started with Apps for SharePoint 2013!
Get Started with Apps for SharePoint 2013!
 
Get Started with Apps for SharePoint 2013
Get Started with Apps for SharePoint 2013Get Started with Apps for SharePoint 2013
Get Started with Apps for SharePoint 2013
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
 
Claims-Based Identity, Facebook, and the Cloud
Claims-Based Identity, Facebook, and the CloudClaims-Based Identity, Facebook, and the Cloud
Claims-Based Identity, Facebook, and the Cloud
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010,Claims-Based Identity, Facebook, and the CloudSharePoint 2010,Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
 
Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Updating Legacy SharePoint Customizations to the Add-in Model

  • 1.
  • 2.
  • 3.  SharePoint add-in model  Legacy SharePoint customizations  Add-in model techniques  Updating UI and declarative customizations  Using the PnP Provisioning Engine  Updating timer job customizations  “Preferred modern approach” to development
  • 4.  Who here is a…  Developer?  System administrator?  Power user?  Others?  Have you heard of the SharePoint add-in model?  Maybe you know it as the app model?   What about the SharePoint client object model?  What version(s) of SharePoint?
  • 5.
  • 6.  Many SharePoint customizations built before SharePoint 2013 were deployed using:  Farm solutions (2007+)  Sandboxed solutions (2010)  Shortcomings of solutions  Full-trust code runs in the same process as SharePoint  Server file system footprint  Requires an app pool reset to deploy updates  Sandboxed solutions were severely constrained
  • 7.  Components hosted in isolated add-in domain  Can use JavaScript, HTML, CSS, declarative markup  No server-side code
  • 8.  Add-in components can be hosted anywhere (cloud or on-premises)  Authorized using OAuth or the JavaScript cross-domain library  Can use ANY implementation language (ASP.NET, PHP, etc.)
  • 9.  The add-in model is a no-brainer for most new development efforts  SharePoint Framework is NOT related to the add-in model  SharePoint Framework is complementary to the add-in model  What about all of our legacy customizations?
  • 10.
  • 11.  Most legacy customizations fall into one of the following categories:  User interface customizations  Custom master pages, branding, web parts  Declarative customizations  XML for custom site columns, content types, list instances  Timer job customizations  If you had to migrate to the cloud tomorrow, where would you start?
  • 12.  Get a list of deployed solutions (farm and sandboxed)  Using the UI or PowerShell  Map deployed code to functionality  Is anything no longer needed?  Determine if any no-code sandboxed solutions can be deployed to SharePoint Online  Categorize customizations by type
  • 13.
  • 14.
  • 15.  Build and deploy add-ins using the add-in model  Add-in model techniques  Supported on-premises and in SharePoint Online  No magic bullet, lots of rework may be required
  • 16.  Getting away from legacy feature framework  Remote provisioning of assets  Making customizations with a “lighter touch”  When necessary, running custom server-side code outside of SharePoint
  • 17.  Started by Microsoft in 2013  Improve developer productivity  PnP Core Component  CSOM extension methods  PowerShell cmdlets  Provisioning engine  Timer job framework  https://github.com/sharepoint/pnp
  • 18.
  • 19.
  • 20.  “Make SharePoint not look like SharePoint”  Use corporate logo and branding  Edit existing .master page or start from scratch  Minimal.master popular starting point  Issues with upgrades  SharePoint Online  Supported, NOT recommended
  • 21.
  • 22.  “Change the appearance of these things”  DOM manipulation  Styling things  Hiding things  Embedded within pages  Master page <head> section  Content editor/script editor web parts  Overwriting out-of-the-box CSS files 
  • 23.  “Lighter touch” UI customizations  Including themes and composed looks  Externalize CSS and JavaScript customizations  Remote provision these files where necessary  Reference using Alternate CSS URL  CustomAction script registrations
  • 24.
  • 25.  Most common UI customization  Easy to build in Visual Studio  Design view removed from SharePoint Designer  No more Data View web parts or conditional formatting  Add-in parts not ideal  Loaded in <iframe>  Not responsive
  • 26.  App script parts  Reference external JavaScript  Define container <div> where content is loaded  Include in Content property of .webpart file  Remote provision to site web part gallery  SharePoint Framework
  • 27.
  • 28.
  • 29.  XML to define artifacts  Site columns  Content types  List definitions and instances  Visual Studio can generate  Elements.xml files  .NET code not required  Often deployed via sandboxed solutions
  • 30.  Sandboxed solutions include a DLL file in the generated .wsp by default  Must be removed to deploy to SharePoint Online
  • 31.  Remote provision assets using CSOM  Standalone console application  Provider-hosted add-in
  • 32.
  • 33.
  • 34.  “Save site as template”  Captures customizations to a site  Site columns and content types  List instances and list items  Branding assets and other files  Requires PnP-PowerShell  https://github.com/sharepoint/pnp-powershell
  • 35.  Generate provisioning template  Get-PnPProvisioningTemplate  XML file can be modified by hand or programmatically  Save copies of additional files if necessary  Write once, apply everywhere  Apply-PnPProvisioningTemplate  Development, staging, pre-production, production…
  • 36.
  • 37.
  • 38.  Run autonomously on a schedule  Run with elevated permissions  Execute against multiple sites  Log information and errors
  • 39.  Remote timer job  Console application  Scheduled to run via:  Windows Task Scheduler  Azure WebJob/Azure Scheduler
  • 40.  Define a class that inherits from TimerJob  Execution logic in TimerJobRun event  Instantiate class, set up authentication in Main()  User or service account  Client ID and secret values (app-only authentication)  Define sites where timer job should run  Call Run()
  • 41.
  • 42.  Add-in model is capable and powerful enough to handle most legacy customizations  Apply all customizations with a “lighter touch”  Remote provision assets  SharePoint Developer PnP: here to help!  Keep an eye on SharePoint Framework
  • 43. Updating Legacy SharePoint Customizations to the Add-in Model Tooling up for SharePoint Framework Individuals and organizations start for free at pluralsight.com