SlideShare uma empresa Scribd logo
1 de 36
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 ?

Mais conteúdo relacionado

Mais procurados

Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFS
Mehdi Khalili
 
DevOps from a developer perspective
DevOps from a developer perspective DevOps from a developer perspective
DevOps from a developer perspective
WSO2
 

Mais procurados (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
 

Semelhante a An introduction to the office devpnp community initiative

SharePoint 2013 Dev Features
SharePoint 2013 Dev FeaturesSharePoint 2013 Dev Features
SharePoint 2013 Dev Features
Ricardo Wilkins
 
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
 

Semelhante a 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
 

Último

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Último (20)

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

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