SlideShare a Scribd company logo
1 of 25
Office 365:
Attack of the Clones!
Building Site Templates with the
Office 365 PnP Framework
Agenda
• Introduction
• The case for site templates
• Old way
• New way
• Introducing Office Dev PnP
• Demos (3)
• Getting started - PnP resources
• Questions
Chris Johnson
@cjohnsonO365
• Microsoft MVP – Office Development
• Director, PSC Group (Schaumburg, IL)
• 7+ years developing for SharePoint
• Document Management
• Branding
• Managed Metadata
• Provisioning and Governance
• Office 365
• Nintex Forms & Workflow
• Current focus: app modernization & cloud readiness
1. SharePoint Developer  Office
365 Developer
2. This is an amazing time to be an
Office 365 developer!
Hey, listen!
• Some images used on these slides have been borrowed from the Office
Dev PnP site. These– especially the artsy ones– are not my creation!
• A lot of the code you see during this presentation was written by me, but
it’s built on frameworks and sample code from the PnP community
• I will tweet out links after the presentation so you can:
• Go to the Office Dev PnP site
• Connect to the GitHub repo
• Download code from demos
• View this slide deck, etc.
@cjohnsonO365
Raise your hand if:
• You’re an end user, power
user or BA
• You’re an administrator
• You’re a developer /
architect / consultant / etc.
• You use SharePoint 2013 on-
premise
• You use Office 365
• You use a hybrid farm
• You’ve ever tried to provision
custom sites in SharePoint
• You’ve heard of the OfficeDev
Patterns and Practices
community
• You’ve use a PnP framework,
solution or sample project
WARNING:
CODE
</>
Community: Current SharePoint Initiatives
Application Modernization
“Get me to the cloud!”
• Re-write server-side LOB
applications to use “App
Model” CSOM
• Decrease dependencies
on feature.xml
• Eliminate custom master
pages
• Increase OOB feature
usage
Take advantage of NEW
Office 365 features
• Unified Experience 
Unified Endpoint
• New APIs for Office
Graph, Delve, etc.
• Consistency across Add-
Ins: Office, SharePoint,
etc.
Build a better user
experience
• Modern web applications
over “SharePoint-y” UI
• New mobile experiences
• Office mobile apps
• PowerApps
• Next-generation
portals
• Lean on provider-hosted
apps
The case for site templates
WHY
• Easily reproduce common business
customizations
• Enforce governance
• Provide consistent user experience
WHAT
• Fields
• Content types
• Lists and libraries
• Groups
• Permissions
• Pages
• Web parts
• Navigation
• Look and feel
• Custom actions
The old way
• Site Settings  Save as template
• Sometimes worked
• Import to Visual Studio (disaster)
• Site Definitions
• onet.xml (kinda hairy)
• Publishing? Good luck!
• Custom subclass of SPWebProvisioningProvider
• Create site, then apply changes (this is good!)
• Requires full-trust code deployed as solution in Central Administration
• Great on-prem solution, but very advanced
Limitations in Office 365
• No full-trust code  No custom
SPWebProvisioningProvider
• “Save as template” still unreliable
• Use of sandbox solutions and Feature.xml
discouraged
Why are these
limitations in place?
• Ensure forwards
compatibility
• Provide flexibility
for:
• Developers
• Administrators
• Users
Client-side development in Office 365
BENEFITS
• Streamlined deployment
• Use the framework of your
choice
• Safe
LIMITATIONS
• Asynchronous
• More complicated
programming
• Less documentation
• API is less complete
Introducing: Office Dev PnP
• More than just a provisioning
framework
• Several core frameworks –
Provisioning is just one of them
• Also a thriving community
• Fills gaps in client-side development
paradigm
• Guidance & best practices for:
• Add-ins
• Branding
• Event receivers
• Timer jobs
• Workflow
• Managed Metadata
• Provisioning
• More
from the Office Dev PnP site
Introducing: Office Dev PnP
• Solutions
• Samples
• Frameworks
…that constitute best practices for administration
and development on Office 365
...ALL open source in GitHub!
…ALL documented!
...Frequently updated: monthly releases with
open conference call
QUICK DEMO
Office Dev PnP guidance and documentation
GitHub
Wish list: Cloud-ready provisioning solution
• Ability to provision:
• Look and feel
• Fields
• Content types
• Lists and libraries
• Groups
• Permissions
• Pages
• Web parts
• Client-side object model
• Scriptable OR deployable as an
app
• Declarative OR
compiled/managed code
• Documented
SharePoint
PnP Provisioning: Basic Implementation
Console app
-OR-
PowerShell script
C# >
APPLY
TEMPLATE
EXTRACT
TEMPLATE
PnP
Provisioning
Schema
XML
</>
PnP Core Framework
C# >
DEMO
PowerShell: extract & apply template
PnP Provisioning: Advanced Implementation
SOLUTION COMPONENTS
• Provider-hosted SharePoint Add-In
• ASP.NET MVC web site hosted in Azure
• AppInstalled and AppUninstalled event
receivers (Azure service bus) that create
artifacts on host web
• Timer Job (Azure Web Job) w/logging
• User-managed custom Site Templates based
on PnP Provisioning Schema
• Common library + PnP extensions
HOST WEB ARTIFACTS
• SharePoint Lists for site requests (on host
web to allow integration with other
applications, e.g. Nintex)
• SharePoint Library for templates (associate
with base template, e.g. Team Site-- allow
site requests to choose template)
• Custom ribbon actions to request and cancel
provisioning
• Ribbon control w/ScriptEnabled methods
• JavaScript ScriptLink custom action to
override "New Site" link on provisioned sites
• Branding assets
DEMO
Provider-hosted provisioning app (UI)
New SharePoint
Site Collection
ASP.NET MVC Provider-
Hosted App
C#
Service Bus
C#
PnP Core Framework
+ Helper Classes
C#
Azure Web Job
(Console App)
C#
App
Host Web
Library:
Site
Templates
List:
Requests
INSTALLED ON1
PROVIDES APP-ONLY SECURITY
TOKEN TO HOST WEB
2
APPINSTALLING EVENT CREATES
LIST, LIBRARY, CUSTOM ACTIONS
+ UPLOADS ASSETS ON HOST WEB
3
UPLOADS
TEMPLATE4
CREATES
REQUEST5RETRIEVES SITE
COLLECTION REQUESTS
FROM LIST
6
RETRIEVES USER-MANAGED
TEMPLATE FROM LIBRARY7
CREATES SITE COLLECTION
+ APPLIES TEMPLATE
+ APPLIES ADD’L CONFIGURATION
8
XML
</>
DEMO
Provider-hosted provisioning app
This is an amazing time to be an
Office 365 developer!
Where to find Office Dev PnP
Office Dev Center http://dev.office.com/patterns-and-practices
GitHub https://github.com/OfficeDev/PnP
Twitter @OfficeDevPnP
@ErwinVanHunen
@VesaJuvonen
@PaoloPia
from the Office Dev PnP site
@cjohnsonO365
Questions?

More Related Content

What's hot

SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSébastien Levert
 
Supercharge Your SharePoint Framework Webpart with React
Supercharge Your SharePoint Framework Webpart with ReactSupercharge Your SharePoint Framework Webpart with React
Supercharge Your SharePoint Framework Webpart with ReactEric Overfield
 
Use office ui fabric react to build beauty with SharePoint
Use office ui fabric react to build beauty with SharePointUse office ui fabric react to build beauty with SharePoint
Use office ui fabric react to build beauty with SharePointEric Overfield
 
Move past bootstrap and build our lightweight responsive framework w.v1.2
Move past bootstrap and build our lightweight responsive framework w.v1.2Move past bootstrap and build our lightweight responsive framework w.v1.2
Move past bootstrap and build our lightweight responsive framework w.v1.2Eric Overfield
 
Who Needs A Developer For Automated SharePoint Provisioning
Who Needs A Developer For Automated SharePoint ProvisioningWho Needs A Developer For Automated SharePoint Provisioning
Who Needs A Developer For Automated SharePoint ProvisioningEric Overfield
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...Bill Ayers
 
Web jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless ComputingWeb jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless ComputingParis Polyzos
 
Branding office 365 with front end tooling
Branding office 365 with front end toolingBranding office 365 with front end tooling
Branding office 365 with front end toolingThomas Daly
 
Things you can do to brand Office 365 now
Things you can do to brand Office 365 nowThings you can do to brand Office 365 now
Things you can do to brand Office 365 nowThomas Daly
 
The Adventures of Azure Functions and Microsoft Graph
The Adventures of Azure Functions and Microsoft GraphThe Adventures of Azure Functions and Microsoft Graph
The Adventures of Azure Functions and Microsoft GraphEric Overfield
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSébastien Levert
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartEric Overfield
 
Use Office UI Fabric React to Build Beauty with SharePoint
Use Office UI Fabric React to Build Beauty with SharePointUse Office UI Fabric React to Build Beauty with SharePoint
Use Office UI Fabric React to Build Beauty with SharePointEric Overfield
 
Uncovering the Latest in SharePoint Development
Uncovering the Latest in SharePoint DevelopmentUncovering the Latest in SharePoint Development
Uncovering the Latest in SharePoint DevelopmentEric Overfield
 
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
 
Getting started with the PnP Provisioning Engine
Getting started with the PnP Provisioning EngineGetting started with the PnP Provisioning Engine
Getting started with the PnP Provisioning EngineSPC Adriatics
 
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsEuropean Collaboration Summit
 

What's hot (20)

SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
 
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
 
Supercharge Your SharePoint Framework Webpart with React
Supercharge Your SharePoint Framework Webpart with ReactSupercharge Your SharePoint Framework Webpart with React
Supercharge Your SharePoint Framework Webpart with React
 
Use office ui fabric react to build beauty with SharePoint
Use office ui fabric react to build beauty with SharePointUse office ui fabric react to build beauty with SharePoint
Use office ui fabric react to build beauty with SharePoint
 
Move past bootstrap and build our lightweight responsive framework w.v1.2
Move past bootstrap and build our lightweight responsive framework w.v1.2Move past bootstrap and build our lightweight responsive framework w.v1.2
Move past bootstrap and build our lightweight responsive framework w.v1.2
 
Who Needs A Developer For Automated SharePoint Provisioning
Who Needs A Developer For Automated SharePoint ProvisioningWho Needs A Developer For Automated SharePoint Provisioning
Who Needs A Developer For Automated SharePoint Provisioning
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
 
Web jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless ComputingWeb jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless Computing
 
Branding office 365 with front end tooling
Branding office 365 with front end toolingBranding office 365 with front end tooling
Branding office 365 with front end tooling
 
Things you can do to brand Office 365 now
Things you can do to brand Office 365 nowThings you can do to brand Office 365 now
Things you can do to brand Office 365 now
 
The Adventures of Azure Functions and Microsoft Graph
The Adventures of Azure Functions and Microsoft GraphThe Adventures of Azure Functions and Microsoft Graph
The Adventures of Azure Functions and Microsoft Graph
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 development
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework Webpart
 
Use Office UI Fabric React to Build Beauty with SharePoint
Use Office UI Fabric React to Build Beauty with SharePointUse Office UI Fabric React to Build Beauty with SharePoint
Use Office UI Fabric React to Build Beauty with SharePoint
 
Uncovering the Latest in SharePoint Development
Uncovering the Latest in SharePoint DevelopmentUncovering the Latest in SharePoint Development
Uncovering the Latest in SharePoint Development
 
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...
 
Getting started with the PnP Provisioning Engine
Getting started with the PnP Provisioning EngineGetting started with the PnP Provisioning Engine
Getting started with the PnP Provisioning Engine
 
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
 

Similar to O365: Attack of the Clones

aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSébastien Levert
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...Sébastien Levert
 
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Thoughts on building deployable and updatable share point solutions
Thoughts on building deployable and updatable share point solutionsThoughts on building deployable and updatable share point solutions
Thoughts on building deployable and updatable share point solutionsSerge van den Oever
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection NavigationThomas Daly
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Talbott Crowell
 
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfxVincent Biret
 
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna LinsO365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna LinsNCCOMMS
 
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)
 
SharePoint Conference North America 2018 - Las Vegas - Announcements
SharePoint Conference North America 2018 - Las Vegas - AnnouncementsSharePoint Conference North America 2018 - Las Vegas - Announcements
SharePoint Conference North America 2018 - Las Vegas - AnnouncementsNick Hobbs
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSThomas Daly
 
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...Wilco Turnhout
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint FrameworkMałgorzata Borzęcka
 
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!Małgorzata Borzęcka
 
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
 
WKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationWKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationRob Wilson
 
Zero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExZero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExBradley Brown
 
Microsoft Ignite 2017 Conference Notes by Nick Hobbs
Microsoft Ignite 2017 Conference Notes by Nick HobbsMicrosoft Ignite 2017 Conference Notes by Nick Hobbs
Microsoft Ignite 2017 Conference Notes by Nick HobbsNick Hobbs
 
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...Rencore
 

Similar to O365: Attack of the Clones (20)

aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 Development
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
 
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
 
Thoughts on building deployable and updatable share point solutions
Thoughts on building deployable and updatable share point solutionsThoughts on building deployable and updatable share point solutions
Thoughts on building deployable and updatable share point solutions
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
 
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna LinsO365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
 
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...
 
SharePoint Conference North America 2018 - Las Vegas - Announcements
SharePoint Conference North America 2018 - Las Vegas - AnnouncementsSharePoint Conference North America 2018 - Las Vegas - Announcements
SharePoint Conference North America 2018 - Las Vegas - Announcements
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
 
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
 
WKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationWKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development Presentation
 
Zero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExZero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApEx
 
Microsoft Ignite 2017 Conference Notes by Nick Hobbs
Microsoft Ignite 2017 Conference Notes by Nick HobbsMicrosoft Ignite 2017 Conference Notes by Nick Hobbs
Microsoft Ignite 2017 Conference Notes by Nick Hobbs
 
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 

O365: Attack of the Clones

  • 1. Office 365: Attack of the Clones! Building Site Templates with the Office 365 PnP Framework
  • 2. Agenda • Introduction • The case for site templates • Old way • New way • Introducing Office Dev PnP • Demos (3) • Getting started - PnP resources • Questions
  • 3. Chris Johnson @cjohnsonO365 • Microsoft MVP – Office Development • Director, PSC Group (Schaumburg, IL) • 7+ years developing for SharePoint • Document Management • Branding • Managed Metadata • Provisioning and Governance • Office 365 • Nintex Forms & Workflow • Current focus: app modernization & cloud readiness
  • 4. 1. SharePoint Developer  Office 365 Developer 2. This is an amazing time to be an Office 365 developer!
  • 5. Hey, listen! • Some images used on these slides have been borrowed from the Office Dev PnP site. These– especially the artsy ones– are not my creation! • A lot of the code you see during this presentation was written by me, but it’s built on frameworks and sample code from the PnP community • I will tweet out links after the presentation so you can: • Go to the Office Dev PnP site • Connect to the GitHub repo • Download code from demos • View this slide deck, etc. @cjohnsonO365
  • 6. Raise your hand if: • You’re an end user, power user or BA • You’re an administrator • You’re a developer / architect / consultant / etc. • You use SharePoint 2013 on- premise • You use Office 365 • You use a hybrid farm • You’ve ever tried to provision custom sites in SharePoint • You’ve heard of the OfficeDev Patterns and Practices community • You’ve use a PnP framework, solution or sample project
  • 8. Community: Current SharePoint Initiatives Application Modernization “Get me to the cloud!” • Re-write server-side LOB applications to use “App Model” CSOM • Decrease dependencies on feature.xml • Eliminate custom master pages • Increase OOB feature usage Take advantage of NEW Office 365 features • Unified Experience  Unified Endpoint • New APIs for Office Graph, Delve, etc. • Consistency across Add- Ins: Office, SharePoint, etc. Build a better user experience • Modern web applications over “SharePoint-y” UI • New mobile experiences • Office mobile apps • PowerApps • Next-generation portals • Lean on provider-hosted apps
  • 9. The case for site templates WHY • Easily reproduce common business customizations • Enforce governance • Provide consistent user experience WHAT • Fields • Content types • Lists and libraries • Groups • Permissions • Pages • Web parts • Navigation • Look and feel • Custom actions
  • 10. The old way • Site Settings  Save as template • Sometimes worked • Import to Visual Studio (disaster) • Site Definitions • onet.xml (kinda hairy) • Publishing? Good luck! • Custom subclass of SPWebProvisioningProvider • Create site, then apply changes (this is good!) • Requires full-trust code deployed as solution in Central Administration • Great on-prem solution, but very advanced
  • 11. Limitations in Office 365 • No full-trust code  No custom SPWebProvisioningProvider • “Save as template” still unreliable • Use of sandbox solutions and Feature.xml discouraged Why are these limitations in place? • Ensure forwards compatibility • Provide flexibility for: • Developers • Administrators • Users
  • 12. Client-side development in Office 365 BENEFITS • Streamlined deployment • Use the framework of your choice • Safe LIMITATIONS • Asynchronous • More complicated programming • Less documentation • API is less complete
  • 13. Introducing: Office Dev PnP • More than just a provisioning framework • Several core frameworks – Provisioning is just one of them • Also a thriving community • Fills gaps in client-side development paradigm • Guidance & best practices for: • Add-ins • Branding • Event receivers • Timer jobs • Workflow • Managed Metadata • Provisioning • More from the Office Dev PnP site
  • 14. Introducing: Office Dev PnP • Solutions • Samples • Frameworks …that constitute best practices for administration and development on Office 365 ...ALL open source in GitHub! …ALL documented! ...Frequently updated: monthly releases with open conference call
  • 15. QUICK DEMO Office Dev PnP guidance and documentation GitHub
  • 16. Wish list: Cloud-ready provisioning solution • Ability to provision: • Look and feel • Fields • Content types • Lists and libraries • Groups • Permissions • Pages • Web parts • Client-side object model • Scriptable OR deployable as an app • Declarative OR compiled/managed code • Documented
  • 17. SharePoint PnP Provisioning: Basic Implementation Console app -OR- PowerShell script C# > APPLY TEMPLATE EXTRACT TEMPLATE PnP Provisioning Schema XML </> PnP Core Framework C# >
  • 18. DEMO PowerShell: extract & apply template
  • 19. PnP Provisioning: Advanced Implementation SOLUTION COMPONENTS • Provider-hosted SharePoint Add-In • ASP.NET MVC web site hosted in Azure • AppInstalled and AppUninstalled event receivers (Azure service bus) that create artifacts on host web • Timer Job (Azure Web Job) w/logging • User-managed custom Site Templates based on PnP Provisioning Schema • Common library + PnP extensions HOST WEB ARTIFACTS • SharePoint Lists for site requests (on host web to allow integration with other applications, e.g. Nintex) • SharePoint Library for templates (associate with base template, e.g. Team Site-- allow site requests to choose template) • Custom ribbon actions to request and cancel provisioning • Ribbon control w/ScriptEnabled methods • JavaScript ScriptLink custom action to override "New Site" link on provisioned sites • Branding assets
  • 21. New SharePoint Site Collection ASP.NET MVC Provider- Hosted App C# Service Bus C# PnP Core Framework + Helper Classes C# Azure Web Job (Console App) C# App Host Web Library: Site Templates List: Requests INSTALLED ON1 PROVIDES APP-ONLY SECURITY TOKEN TO HOST WEB 2 APPINSTALLING EVENT CREATES LIST, LIBRARY, CUSTOM ACTIONS + UPLOADS ASSETS ON HOST WEB 3 UPLOADS TEMPLATE4 CREATES REQUEST5RETRIEVES SITE COLLECTION REQUESTS FROM LIST 6 RETRIEVES USER-MANAGED TEMPLATE FROM LIBRARY7 CREATES SITE COLLECTION + APPLIES TEMPLATE + APPLIES ADD’L CONFIGURATION 8 XML </>
  • 23. This is an amazing time to be an Office 365 developer!
  • 24. Where to find Office Dev PnP Office Dev Center http://dev.office.com/patterns-and-practices GitHub https://github.com/OfficeDev/PnP Twitter @OfficeDevPnP @ErwinVanHunen @VesaJuvonen @PaoloPia from the Office Dev PnP site @cjohnsonO365

Editor's Notes

  1. Clients large to small, international insurance and