SlideShare a Scribd company logo
An Introduction to the
OfficeDevPnP Community
Initiative
Nigel Price
Thanks to the Sponsors!
With Thanks, Apologies and
Acknowledgements to Vesa
Juvonen, Erwin Van Hunen,
Paolo Pialorsi and Bert Jansen
What is Office 365 Developer Patterns and
Practices (PnP)
• PnP is community driven open source project where Microsoft and
external community members are sharing their learning's around
implementation practices for Office 365 and SharePoint on-premises
(add-in model). Active development and contributions happen at our
GitHub project under Dev branch and each month there is a master
merge (monthly release) with more comprehensive testing and
communications. Latest activities and future plans are covered in the
monthly community calls which are open for anyone from the
community. Download invite from http://aka.ms/OfficeDevPnPCall.
Why Do We Need The
OfficeDevPnP Initiative ?
SharePoint evolves…
SharePoint
2007
SharePoint
2010 SharePoint
2013
Sandbox
Provider Hosted Add-
Ins
_api
“We’ve heard this story so
many times, but want to
stay on doing farm solutions
at on-premises…”
Absolutely nothing wrong with that.
Evaluate your business requirements
and chose the right customization
model for you.
What does add-ins mean in our terminology
Classic - Full trust solutions
• ISV solutions
• Platform level customizations
to on-premises
• Custom service applications
• Custom WCF services
• SharePoint customizations, not
customer specific
customizations
Client Side Solutions
• Server side controls as
JavaScript on page layouts and
master pages
• Remote provisioning for
elements
• Embracing un-ghosted model
• SP add-in dimension with
provider hosted apps to
provide new capabilities
• Customer specific
customizations
Store add-ins
• Add-in catalog based solution
• Packaged reusable solutions
built for specific functionality
• Not only for market place or
store, but also as platform for
customer specific
customizations
SharePoint Add-Ins means all operations
which are executed outside of the server
xml
Content Type B
Manifest xml in the solution
package introduces the
feature framework
elements.
15templatesfeaturesFeatureA
Configuration database
Content
database
Content Type A
Content Type C
Feature framework feature
with element xml files for
content type and site
columns.
WSPpackage
1
2
3
Content type and site columns with dependency
Not recommended approach
Provisioned content types
And site columns have
dependency on element xml
files
 These are essentially files deployed to
the site
 You should follow the same “remote
provisioning pattern” that we outlined
for application artifacts such as
.webpart files, page layouts and
master pages.
 Challenge with feature framework
based provisioning is that any
operation to sandbox or farm
solution will impact directly end user
sites
Note. This pic is for farm solution based provisioning, butsame challenge iswith sandbox solutions.
Full trust solution challenges
• Full trust solutions with ghosted files
– Implications to Disaster Recovery model
• Deployments always cause downtime
– Impact on Service Level Agreements as well as availability
– Very expensive to maintain enough Infrastructure to reach “near zero”
• Full trust solutions have to be closely analyzed
– Do you trust your solution fully?
– Complex Application Lifecycle Management processes
• Not available in Office 365 (Multi-Tenant or Dedicated vNext)
What if…We would use same
model for on-
premises and cloud?
Introducing CSOM and The
OfficeDevPnP Initiative
What is CSOM ?
• CSOM is short for the Client Side Object Model
• It allows another machines to interact with SharePoint servers to
create and operate on Content Types, Site Columns, Lists etc
• The other machine can be anything :- Windows, Linux
• The code on the other machine can be anything C#, PowerShell, PHP
etc
• It covers almost all of the functionality that the Server Side Object
Model does (Information Management Policies is an exception)
So What is OfficeDevPnP ?
• OfficeDevPnP was started by Vesa Juvonen, Erwin Van Hunen, Paolo
Pialorsi and Bert Jansen (and apologies to anyone I have missed) 12 – 18
months ago
• Vesa and Bert work for Microsoft and Erwin and Paolo work for other
companies
• OfficeDevPnP is a framework which has been built on top of CSOM to make
it easier for developers and IT Pros to use CSOM
• OfficeDevPnP is a community Initiative which anyone can get involved in
and contribute (ie Its OpenSource)
• Works with both SharePoint online and SharePoint On Premises
(SP2013,SP2016)
What Does The OfficeDevPnP Consist Of ?
• PnP Sites Core Component - GitHub repository
• PnP Core Component (JavaScript) - GitHub repository
• PnP PowerShell - GitHub repository
• PnP Partner Pack - Reusable starter kit for typical enterprise requirements
• PnP Guidance - GitHub repository
• PnP Office-Addins - GitHub repository
• PnP Tools - GitHub repository
• PnP Transformation - GitHub repository
• PnP Provisioning Schema - GitHub repository
Remote Provisioning Using
OfficeDevPnP
Site provisioning is the
heart and soul for each
enterprise deployment…
Evergreen and release cycle – old model
SP2007 SP2010 SP2013 SP2016
Tightly coupled
SharePoint customizations
• Specific upgrade project each time new version is introduced
• Customizations haveto be upgraded to get access on new capabilities in product
• Will cause additional costs during each release cycle of customizations
• Customization updates cause downtime each time something is changed
• Complex ALM processes forensuring quality of the code
Evergreen and release cycle – new model
SP2013
Loosly coupled
SharePoint customizations
SP2016 O17 O18
• You choose when and how applications are updated
• Backwards compatibility for API levelto movecustomizations crossversions
• Customizations don’t block new capabilities from SharePoint
• Customizations extend, not change SharePoint
• Customizations can be updated with minimal impact on SharePoint
Customizations will utilize services from
SharePoint and other services, but won’t
usually change out of the box services.
xml
Content Type B
Assetsand configurations
either using just code or with
for example xml
Content
database
Content Type A
Content Type C
PowerShell or code
provisioning the assets
using remote provisioning
pattern directly to content
database.
1
Content types do not have
any dependency and farm
solution can be retracted
without any impact to them
2
Content type and site columns with remote
provisioning
Recommended approach
Comparison of CSOM and OfficeDevPnP –
Creating a List
ClientContext context = new
ClientContext("http://SiteUrl");
// The SharePoint web at the URL.
Web web = context.Web;
ListCreationInformation creationInfo = new
ListCreationInformation();
creationInfo.Title = "My List";
creationInfo.TemplateType =
(int)ListTemplateType.Announcements;
List list = web.Lists.Add(creationInfo);
list.Description = "New Description";
list.Update();
context.ExecuteQuery();
#SPO Sample
$cred = Get-Credential -UserName
'pricen@njpenterprises.com' -Message "Enter SPO
credentials"
#Connect to new site and validate
Connect-SPOnline -Url
'https://njpenterprises.sharepoint.com/sites/SPS-
London-demosite99' -Credentials $cred -ErrorAction
Stop
#Create list
New-SPOList -Title "Demo list" -Template GenericList -
Url 'lists/demo'
PnP
Creating Different Types of Fields
Add-SPOField -DisplayName "Project End Date" -InternalName "ProjectEndDate" -Id "65E1E394-B354-4C67-B267-
57407C416C10" -Type Date -Required -Group "Tender Group"
Add-SPOTaxonomyField -DisplayName "Record Type" -InternalName "RecordType" -Id "{53FF9B38-32F2-47A0-A094-
D3692CB52352}" -Group "Tender Group" -TermSetPath "InnovateUK|Tenders|Record Type“
Add-SPOField -DisplayName "Project Phase" -InternalName "ProjectPhase" -Id "{53FF9B38-32F2-47A0-A094-
D3692CB52354}" -Type Choice -Group "Tender Group" -AddToDefaultView -Choices
"Initiation","Definition","Development","Delivery","Evaluation"
Add-SPOField -DisplayName "Supplier Name" -InternalName "SupplierName" -Id "65E1E394-B354-4C67-B267-
57407C416C15" -Type Text -Required -Group "Tender Group"
Add-SPOField -DisplayName "Project Name" -InternalName "ProjectName" -Id "65E1E394-B354-4C67-B267-
57407C416C16" -Type Text -Required -Group "Tender Group"
PnP
OfficeDevPnP Site
Provisioning Framework
Business user driven templates
Provisioning
engine
Provider Hosted
App / PowerShell
SharePoint Service
https://contoso.sharepoint.com
/sites/site
1 2
5
4
3
Template details are being extracted from actual
template sites during provisioning.
Templates can be modified and created using browser UI
and all changes are reflected to the newly created and
potentially modified sites.
PnP Site Provisioning Framework
//Gettemplatefromexistingsite
template=ctx.Web.GetProvisioningTemplate();
1
2
4
3
//Save templateusing XMLprovider
XMLFileSystemTemplateProvider provider =
newXMLFileSystemTemplateProvider(@"c:temp", "");
stringtemplateName ="template.xml";
provider.SaveAs(template, templateName);
//Load thesaved model again
ProvisioningTemplate p2=
provider.GetTemplate(templateName);
//Applytemplatetoexistingsite
ctxTarget.Web.ApplyProvisioningTemplate(template);
PnP
What is the challenge with custom master
page?
Time
Oob Master
Custom Master<< Copy >>
Service updates for introducing new version of
the out of the box master page with some new
capabilities or bug fixes.
Significant differences on the outcome unless custom
master page been updated during the releases.
New custom master page is created by
copying oob master or starting from scratch
using oob master as the reference
master
Seattle.master
Version 1.0 master
Seattle.master
Version 2.0 master
Seattle.master
Version 3.0
master
contoso.master
Version 1.0 master
contoso.master
Version 1.0 master
contoso.master
Version 1.0
PnP
“Why are you using
CSOM/REST for
provisioning operations
and not feature
framework?”
When you provision your changes on top
of oob templates using remote APIs, you
get always all of the latest capabilities from
the services or product.
Summary
• What is Office 365 Developer Patterns and Practices (PnP)
• Why Do We Need The OfficeDevPnP Initiative ?
• Introducing CSOM and The OfficeDevPnP Initiative
• What is CSOM ?
• What is OfficeDevPnP ?
• What Does The OfficeDevPnP Consist Of ?
• Remote Provisioning Using OfficeDevPnP
• OfficeDevPnP Site Provisioning Framework
It is a community project!
Feel free to contribute with Issues,
Pull Requests and Yammer threads
“Sharing is caring”
Any Questions ?

More Related Content

What's hot

O365Engage17 - Skype for Business Cloud PBX in the Real World
O365Engage17 - Skype for Business Cloud PBX in the Real WorldO365Engage17 - Skype for Business Cloud PBX in the Real World
O365Engage17 - Skype for Business Cloud PBX in the Real World
NCCOMMS
 
O365Engage17 - One drive for business deploy, manage, migrate
O365Engage17 - One drive for business deploy, manage, migrateO365Engage17 - One drive for business deploy, manage, migrate
O365Engage17 - One drive for business deploy, manage, migrate
NCCOMMS
 
SharePoint 2013 Workflow from K2
SharePoint 2013 Workflow from K2SharePoint 2013 Workflow from K2
SharePoint 2013 Workflow from K2
K2
 
OSGi Community Event 2010 - Migration from Java EE Application Server to Serv...
OSGi Community Event 2010 - Migration from Java EE Application Server to Serv...OSGi Community Event 2010 - Migration from Java EE Application Server to Serv...
OSGi Community Event 2010 - Migration from Java EE Application Server to Serv...
mfrancis
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
Adam Getchell
 
SPCA2013 - Using SharePoint Designer 2013 to create Workflows Present and Future
SPCA2013 - Using SharePoint Designer 2013 to create Workflows Present and FutureSPCA2013 - Using SharePoint Designer 2013 to create Workflows Present and Future
SPCA2013 - Using SharePoint Designer 2013 to create Workflows Present and Future
NCCOMMS
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
NCCOMMS
 
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’ SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
Adam Levithan
 
Icws 2016 v1
Icws 2016 v1Icws 2016 v1
Icws 2016 v1
Pradeep K. Venkatesh
 
What's new in SharePoint 2013
What's new in SharePoint 2013What's new in SharePoint 2013
What's new in SharePoint 2013
sboldt
 
QualiSystems-Brief TestShell
QualiSystems-Brief TestShellQualiSystems-Brief TestShell
QualiSystems-Brief TestShell
Amy Ho, PMP, PMI-ACP
 
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQuali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
QualiQuali
 
Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFS
Mehdi Khalili
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
Pixel Federation
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source Control
Ed Leighton-Dick
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Lucas Jellema
 
Office 365 Video migration to microsoft stream cinci
Office 365 Video migration to microsoft stream cinciOffice 365 Video migration to microsoft stream cinci
Office 365 Video migration to microsoft stream cinci
Johnny Lopez
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
ESUG
 
Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring Production
Aviran Mordo
 
DevOps from a developer perspective
DevOps from a developer perspective DevOps from a developer perspective
DevOps from a developer perspective
WSO2
 

What's hot (20)

O365Engage17 - Skype for Business Cloud PBX in the Real World
O365Engage17 - Skype for Business Cloud PBX in the Real WorldO365Engage17 - Skype for Business Cloud PBX in the Real World
O365Engage17 - Skype for Business Cloud PBX in the Real World
 
O365Engage17 - One drive for business deploy, manage, migrate
O365Engage17 - One drive for business deploy, manage, migrateO365Engage17 - One drive for business deploy, manage, migrate
O365Engage17 - One drive for business deploy, manage, migrate
 
SharePoint 2013 Workflow from K2
SharePoint 2013 Workflow from K2SharePoint 2013 Workflow from K2
SharePoint 2013 Workflow from K2
 
OSGi Community Event 2010 - Migration from Java EE Application Server to Serv...
OSGi Community Event 2010 - Migration from Java EE Application Server to Serv...OSGi Community Event 2010 - Migration from Java EE Application Server to Serv...
OSGi Community Event 2010 - Migration from Java EE Application Server to Serv...
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
SPCA2013 - Using SharePoint Designer 2013 to create Workflows Present and Future
SPCA2013 - Using SharePoint Designer 2013 to create Workflows Present and FutureSPCA2013 - Using SharePoint Designer 2013 to create Workflows Present and Future
SPCA2013 - Using SharePoint Designer 2013 to create Workflows Present and Future
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
 
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’ SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
 
Icws 2016 v1
Icws 2016 v1Icws 2016 v1
Icws 2016 v1
 
What's new in SharePoint 2013
What's new in SharePoint 2013What's new in SharePoint 2013
What's new in SharePoint 2013
 
QualiSystems-Brief TestShell
QualiSystems-Brief TestShellQualiSystems-Brief TestShell
QualiSystems-Brief TestShell
 
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQuali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
 
Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFS
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source Control
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
 
Office 365 Video migration to microsoft stream cinci
Office 365 Video migration to microsoft stream cinciOffice 365 Video migration to microsoft stream cinci
Office 365 Video migration to microsoft stream cinci
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
 
Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring Production
 
DevOps from a developer perspective
DevOps from a developer perspective DevOps from a developer perspective
DevOps from a developer perspective
 

Similar to An introduction to the office devpnp community initiative

#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
Vincent Biret
 
Understanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsUnderstanding SharePoint Framework Extensions
Understanding SharePoint Framework Extensions
BIWUG
 
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
Vincent Biret
 
SAP ByDesign Development
SAP ByDesign DevelopmentSAP ByDesign Development
SAP ByDesign Development
Malan Amarasinghe
 
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
Eric 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
 
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)
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019
Microsoft 365 Developer
 
#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
Vincent Biret
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
#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
Vincent Biret
 
SharePoint 2013 Dev Features
SharePoint 2013 Dev FeaturesSharePoint 2013 Dev Features
SharePoint 2013 Dev Features
Ricardo Wilkins
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
Eric Shupps
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
2014 12-16 biwug - cgi SharePoint Factory Framework
2014 12-16 biwug - cgi SharePoint Factory Framework2014 12-16 biwug - cgi SharePoint Factory Framework
2014 12-16 biwug - cgi SharePoint Factory Framework
BIWUG
 
.netcampus2015 office365dev
.netcampus2015 office365dev.netcampus2015 office365dev
.netcampus2015 office365dev
Giuliano De Luca
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
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
 
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
Sé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 Development
Sébastien Levert
 

Similar to An introduction to the office devpnp community initiative (20)

#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
 
Understanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsUnderstanding SharePoint Framework Extensions
Understanding SharePoint Framework Extensions
 
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
 
SAP ByDesign Development
SAP ByDesign DevelopmentSAP ByDesign Development
SAP ByDesign Development
 
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
 
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...
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019
 
#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
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions 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
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
 
SharePoint 2013 Dev Features
SharePoint 2013 Dev FeaturesSharePoint 2013 Dev Features
SharePoint 2013 Dev Features
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
2014 12-16 biwug - cgi SharePoint Factory Framework
2014 12-16 biwug - cgi SharePoint Factory Framework2014 12-16 biwug - cgi SharePoint Factory Framework
2014 12-16 biwug - cgi SharePoint Factory Framework
 
.netcampus2015 office365dev
.netcampus2015 office365dev.netcampus2015 office365dev
.netcampus2015 office365dev
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
 
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...
 
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
 

Recently uploaded

LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 

Recently uploaded (20)

LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 

An introduction to the office devpnp community initiative

  • 1. An Introduction to the OfficeDevPnP Community Initiative Nigel Price
  • 2. Thanks to the Sponsors!
  • 3. With Thanks, Apologies and Acknowledgements to Vesa Juvonen, Erwin Van Hunen, Paolo Pialorsi and Bert Jansen
  • 4. What is Office 365 Developer Patterns and Practices (PnP) • PnP is community driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen at our GitHub project under Dev branch and each month there is a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in the monthly community calls which are open for anyone from the community. Download invite from http://aka.ms/OfficeDevPnPCall.
  • 5. Why Do We Need The OfficeDevPnP Initiative ?
  • 7. “We’ve heard this story so many times, but want to stay on doing farm solutions at on-premises…” Absolutely nothing wrong with that. Evaluate your business requirements and chose the right customization model for you.
  • 8. What does add-ins mean in our terminology Classic - Full trust solutions • ISV solutions • Platform level customizations to on-premises • Custom service applications • Custom WCF services • SharePoint customizations, not customer specific customizations Client Side Solutions • Server side controls as JavaScript on page layouts and master pages • Remote provisioning for elements • Embracing un-ghosted model • SP add-in dimension with provider hosted apps to provide new capabilities • Customer specific customizations Store add-ins • Add-in catalog based solution • Packaged reusable solutions built for specific functionality • Not only for market place or store, but also as platform for customer specific customizations SharePoint Add-Ins means all operations which are executed outside of the server
  • 9. xml Content Type B Manifest xml in the solution package introduces the feature framework elements. 15templatesfeaturesFeatureA Configuration database Content database Content Type A Content Type C Feature framework feature with element xml files for content type and site columns. WSPpackage 1 2 3 Content type and site columns with dependency Not recommended approach Provisioned content types And site columns have dependency on element xml files
  • 10.  These are essentially files deployed to the site  You should follow the same “remote provisioning pattern” that we outlined for application artifacts such as .webpart files, page layouts and master pages.  Challenge with feature framework based provisioning is that any operation to sandbox or farm solution will impact directly end user sites Note. This pic is for farm solution based provisioning, butsame challenge iswith sandbox solutions.
  • 11. Full trust solution challenges • Full trust solutions with ghosted files – Implications to Disaster Recovery model • Deployments always cause downtime – Impact on Service Level Agreements as well as availability – Very expensive to maintain enough Infrastructure to reach “near zero” • Full trust solutions have to be closely analyzed – Do you trust your solution fully? – Complex Application Lifecycle Management processes • Not available in Office 365 (Multi-Tenant or Dedicated vNext)
  • 12. What if…We would use same model for on- premises and cloud?
  • 13. Introducing CSOM and The OfficeDevPnP Initiative
  • 14. What is CSOM ? • CSOM is short for the Client Side Object Model • It allows another machines to interact with SharePoint servers to create and operate on Content Types, Site Columns, Lists etc • The other machine can be anything :- Windows, Linux • The code on the other machine can be anything C#, PowerShell, PHP etc • It covers almost all of the functionality that the Server Side Object Model does (Information Management Policies is an exception)
  • 15. So What is OfficeDevPnP ? • OfficeDevPnP was started by Vesa Juvonen, Erwin Van Hunen, Paolo Pialorsi and Bert Jansen (and apologies to anyone I have missed) 12 – 18 months ago • Vesa and Bert work for Microsoft and Erwin and Paolo work for other companies • OfficeDevPnP is a framework which has been built on top of CSOM to make it easier for developers and IT Pros to use CSOM • OfficeDevPnP is a community Initiative which anyone can get involved in and contribute (ie Its OpenSource) • Works with both SharePoint online and SharePoint On Premises (SP2013,SP2016)
  • 16. What Does The OfficeDevPnP Consist Of ? • PnP Sites Core Component - GitHub repository • PnP Core Component (JavaScript) - GitHub repository • PnP PowerShell - GitHub repository • PnP Partner Pack - Reusable starter kit for typical enterprise requirements • PnP Guidance - GitHub repository • PnP Office-Addins - GitHub repository • PnP Tools - GitHub repository • PnP Transformation - GitHub repository • PnP Provisioning Schema - GitHub repository
  • 18. Site provisioning is the heart and soul for each enterprise deployment…
  • 19. Evergreen and release cycle – old model SP2007 SP2010 SP2013 SP2016 Tightly coupled SharePoint customizations • Specific upgrade project each time new version is introduced • Customizations haveto be upgraded to get access on new capabilities in product • Will cause additional costs during each release cycle of customizations • Customization updates cause downtime each time something is changed • Complex ALM processes forensuring quality of the code
  • 20. Evergreen and release cycle – new model SP2013 Loosly coupled SharePoint customizations SP2016 O17 O18 • You choose when and how applications are updated • Backwards compatibility for API levelto movecustomizations crossversions • Customizations don’t block new capabilities from SharePoint • Customizations extend, not change SharePoint • Customizations can be updated with minimal impact on SharePoint Customizations will utilize services from SharePoint and other services, but won’t usually change out of the box services.
  • 21. xml Content Type B Assetsand configurations either using just code or with for example xml Content database Content Type A Content Type C PowerShell or code provisioning the assets using remote provisioning pattern directly to content database. 1 Content types do not have any dependency and farm solution can be retracted without any impact to them 2 Content type and site columns with remote provisioning Recommended approach
  • 22. Comparison of CSOM and OfficeDevPnP – Creating a List ClientContext context = new ClientContext("http://SiteUrl"); // The SharePoint web at the URL. Web web = context.Web; ListCreationInformation creationInfo = new ListCreationInformation(); creationInfo.Title = "My List"; creationInfo.TemplateType = (int)ListTemplateType.Announcements; List list = web.Lists.Add(creationInfo); list.Description = "New Description"; list.Update(); context.ExecuteQuery(); #SPO Sample $cred = Get-Credential -UserName 'pricen@njpenterprises.com' -Message "Enter SPO credentials" #Connect to new site and validate Connect-SPOnline -Url 'https://njpenterprises.sharepoint.com/sites/SPS- London-demosite99' -Credentials $cred -ErrorAction Stop #Create list New-SPOList -Title "Demo list" -Template GenericList - Url 'lists/demo'
  • 23. PnP
  • 24. Creating Different Types of Fields Add-SPOField -DisplayName "Project End Date" -InternalName "ProjectEndDate" -Id "65E1E394-B354-4C67-B267- 57407C416C10" -Type Date -Required -Group "Tender Group" Add-SPOTaxonomyField -DisplayName "Record Type" -InternalName "RecordType" -Id "{53FF9B38-32F2-47A0-A094- D3692CB52352}" -Group "Tender Group" -TermSetPath "InnovateUK|Tenders|Record Type“ Add-SPOField -DisplayName "Project Phase" -InternalName "ProjectPhase" -Id "{53FF9B38-32F2-47A0-A094- D3692CB52354}" -Type Choice -Group "Tender Group" -AddToDefaultView -Choices "Initiation","Definition","Development","Delivery","Evaluation" Add-SPOField -DisplayName "Supplier Name" -InternalName "SupplierName" -Id "65E1E394-B354-4C67-B267- 57407C416C15" -Type Text -Required -Group "Tender Group" Add-SPOField -DisplayName "Project Name" -InternalName "ProjectName" -Id "65E1E394-B354-4C67-B267- 57407C416C16" -Type Text -Required -Group "Tender Group"
  • 25. PnP
  • 27. Business user driven templates Provisioning engine Provider Hosted App / PowerShell SharePoint Service https://contoso.sharepoint.com /sites/site 1 2 5 4 3 Template details are being extracted from actual template sites during provisioning. Templates can be modified and created using browser UI and all changes are reflected to the newly created and potentially modified sites.
  • 28. PnP Site Provisioning Framework //Gettemplatefromexistingsite template=ctx.Web.GetProvisioningTemplate(); 1 2 4 3 //Save templateusing XMLprovider XMLFileSystemTemplateProvider provider = newXMLFileSystemTemplateProvider(@"c:temp", ""); stringtemplateName ="template.xml"; provider.SaveAs(template, templateName); //Load thesaved model again ProvisioningTemplate p2= provider.GetTemplate(templateName); //Applytemplatetoexistingsite ctxTarget.Web.ApplyProvisioningTemplate(template);
  • 29. PnP
  • 30. What is the challenge with custom master page? Time Oob Master Custom Master<< Copy >> Service updates for introducing new version of the out of the box master page with some new capabilities or bug fixes. Significant differences on the outcome unless custom master page been updated during the releases. New custom master page is created by copying oob master or starting from scratch using oob master as the reference master Seattle.master Version 1.0 master Seattle.master Version 2.0 master Seattle.master Version 3.0 master contoso.master Version 1.0 master contoso.master Version 1.0 master contoso.master Version 1.0
  • 31.
  • 32. PnP
  • 33. “Why are you using CSOM/REST for provisioning operations and not feature framework?” When you provision your changes on top of oob templates using remote APIs, you get always all of the latest capabilities from the services or product.
  • 34. Summary • What is Office 365 Developer Patterns and Practices (PnP) • Why Do We Need The OfficeDevPnP Initiative ? • Introducing CSOM and The OfficeDevPnP Initiative • What is CSOM ? • What is OfficeDevPnP ? • What Does The OfficeDevPnP Consist Of ? • Remote Provisioning Using OfficeDevPnP • OfficeDevPnP Site Provisioning Framework
  • 35. It is a community project! Feel free to contribute with Issues, Pull Requests and Yammer threads