Presentation is loading. Please wait.

Presentation is loading. Please wait.

Who Needs a Developer for Automated SharePoint Provisioning?

Similar presentations


Presentation on theme: "Who Needs a Developer for Automated SharePoint Provisioning?"— Presentation transcript:

1 Who Needs a Developer for Automated SharePoint Provisioning?
Eric Overfield Microsoft Regional Director and MVP PixelMill

2 ERIC OVERFIELD President & Co-Founder of PixelMill
Microsoft MVP, Office Servers & Services Microsoft Regional Director Published SharePoint Author SharePoint Community Organizer & Contributor ericoverfield.com @ericoverfield Will make available on blog and twitter (slideshare.net), so if you remember one of those then you can always review everything we discuss

3 OVERVIEW SharePoint Provisioning Review Introduction to SharePoint PnP
Provisioning SharePoint With PnP and PowerShell Tips, Best Practices, and Demos Demos

4 Sharepoint provisioning
DemosFocus here on provisioning SharePoint sites / assets / settings, etc

5 COMMON SHAREPOINT DEPLOYMENT REQUIREMENTS
SharePoint Deployment Components Site columns Content Types List Templates List Instances Master Pages Page Layouts General branding assets (CSS, JS, etc) Content Pages Site Templates Office 365 Groups Auto-Feature Activation Site Configuration Settings Property Bag* Search Setup Demos

6 TRADITIONAL SHAREPOINT DEVELOPMENT METHODS
C# Feature Framework Full Trust – SharePoint 2007 Sandbox – SharePoint 2010 (somewhat deprecated in SPO) Add-ins – SharePoint 2013+ Traditionally required Visual Studio Compiled code often used – not cloud friendly Add-in model clunky for provisioning Demos

7 FEATURE FRAMEWORK CHALLENGE
New features / experiences not available / difficult to transfer without continual on-going maintenance Customized site based on snapshot of existing OOTB site template with Feature provided customization provisioning Custom v16.x Custom V16.x Custom v16.x Copy Customizations Time SharePoint/O365 v16.x.next OOTB SharePoint/O365 v16.x SharePoint/O365 v16.x.1 SP keeps changing, open community on best practices makes sense Feature Framework too rigid For many features, requires full-tust (O365 with cross out) Based on a snapshot of SP Difficult to upgrade and maintain SharePoint Framework Features / enhancement / bug fixes / new experiences released and available to new or existing sites. Deployed automatically

8 A better way – Sharepoint pnp

9 SHAREPOINT / OFFICE 365 DEVELOPMENT PATTERNS AND PRACTICES
SharePoint PnP – An open source Initiative Originally created by Microsoft and a few others in 2013 Thanks core team – Not related to Microsoft’s general Patterns and Practices initiative SharePoint PnP – For SharePoint 2013/2016/O365 – consists of: Code, samples, best practices Videos, tutorials, and a toolset for customization and working with SharePoint All available on github – Patterns & Practices

10 SHAREPOINT PNP

11 Sharepoint pnp core components
Project source – get the code, resources and contribute Core Component - Useful to build SharePoint ready console apps PnP PowerShell - JavaScript Core Library - Partner Pack - Monthly – Bi-weekly community calls - PnP Core Component C# Examples (Code) Best Practices Documentation It is a give and take, mostly take, but do consider giving

12 aka.ms/OfficeDevPnP https://aka.ms/OfficeDevPnPVideos
@OfficeDevPnP

13 INTRODUCTION TO SHAREPOINT PNP

14 PNP POWERSHELL AND REMOTE PROVISIONING

15 Sharepoint pnp core components
PnP PowerShell based on a PnP Core Component Remote Provisioning Schema Together provide a method to repeatedly provision

16 GETTING STARTED WITH PNP AND POWERSHELL
Install PnP PowerShell Windows 10 – Very easy – Open PowerShell SPO: />Install-Module SharePointPnPPowerShellOnline –AllowClobber SP2016: />Install-Module SharePointPnPPowerShell2016 –AllowClobber SP2013: />Install-Module SharePointPnPPowerShell2013 –AllowClobber Have at least PowerShell V3? /> $PSVersionTable.PSVersion /> Invoke-Expression (New-Object Net.WebClient).DownloadString(' OfficeDev/PnP-PowerShell/master/Samples/Modules.Install/Install-SharePointPnPPowerShell.ps1')

17 COMMON PNP POWERSHELL COMMANDS
Update PnP PowerShell – remember, monthly updates! Update-Module SharePointPnPPowerShell* Connect to SharePoint Site Connect-PnPOnline -url –Credentials (Get-Credential) Work with SharePoint data once connected, such as: Get-PnPList Get-PnPWeb Apply a provisioning template Apply-PnPProvisioningTemplate -Path template.xml Get detailed help regarding a specific commandlet Get-Help Connect-PnPOnline -Detailed

18 DEMO: PNP POWERSHELL INTRODUCTION
Get-Module SharePointPnPPowerShell* -ListAvailable | Select-Object Name,Version | Sort-Object Version –Descending Install-Module SharePointPnPPowerShellOnline -AllowClobber Update-Module SharePointPnPPowerShell* Get-Command -Module *PnP* Connect-PnPOnline -url –Credentials (Get-Credential) Get-PnPList Get-Help Connect-PnPOnline -Detailed

19 PNP POWERSHELL USAGE SCENARIOS
Connect to a site Connect-PnPOnline -url –Credentials (Get-Credential) Get/set site/web/list/etc settings Get-PnPWeb, Set-PnPWeb, Get-PnPSite, Get-PnPPropertyBag Query data, such as list data, search, etc Get-PnPSearchQuery –Query “product” Create data, such as a list, or a group New-PnPList -Title "Demo Announcements" -Url "DemoAnnouncements" -Template Announcements Connect-PnPMicrosoftGraph –Scopes “Group.ReadWrite.All” “User.Read.All” New-PnPUnifiedGroup -DisplayName “PnP Demo” -Description “PnP Demo Group” -MailNickname “PnPDemo” Provision SharePoint Template Apply-PnPProvisioningTemplate -Path .\template.xml -Handlers Lists, Files, CustomActions Connect-PnPMicrosoftGraph –Scopes “Group.ReadWrite.All” “User.Read.All” New-PnPUnifiedGroup -DisplayName “PnP Demo” -Description “PnP Demo Group” -MailNickname “PnPDemo” Get-PnPUnifiedGroup Remove-PnPUnifiedGroup –Identity “PnP Demo”

20 PROVISIONING SHAREPOINT WITH PNP POWERSHELL
Create a provisioning template – Manually or based on “template” site XML based file based on a schema - Can export from existing site: /> Get-PnPProvisioningTemplate -Out template.xml Connect to SharePoint Site: Connect-PnPOnline Apply provisioning template Many options and handlers to customize experience without having to rewrite template Apply-PnPProvisioningTemplate -Path template.xml -Handlers Lists, Files Create a PowerShell script to standardize for your user cases

21 https://msdn. microsoft

22 PROVISIONING SHAREPOINT WITH PNP POWERSHELL
Provisioning templates may be broken up into general tasks Infrastructure (Site Columns, Content Types, Lists) Taxonomy (Terms) Files (Branding assets, master pages, page layouts, CSS, JS, Images, etc) Custom Actions

23 DEMO: PNP PROVISIONING TEMPLATE
Look at custom example Connect-PnPOnline -url –Credentials (Get-Credential) Apply-SPOProvisioningTemplate -Path .\templates\Provision.Infrastructure.xml Apply-SPOProvisioningTemplate -Path .\templates\Provision.Data.xml -Handlers Lists Apply-SPOProvisioningTemplate -Path .\templates\Provision.Data.xml -Handlers Files Apply-SPOProvisioningTemplate -Path .\templates\Provision.CustomActions.xml

24 SIMPLE POWERSHELL SCRIPTS FOR REPEATABLE PATTERNS
Create installation and uninstall processes Apply-PnPProvisioningTemplate allows for sending in parameters i.e.: Allow PS Script to accept parameters Script may include logic to provide multiple execution paths for provisioning PnP Provisioning does not include an explicit uninstall / un-apply command Rather use other PnP commands to remove each component as needed /> Set-PnPWeb -SiteLogoUrl "" -AlternateCssUrl “ “ /> Remove-PnPCustomAction -Identity $customAction.Id -Scope Site -Force

25 DEMO: PNP PROVISIONING WITH SCRIPTS
Show Install script .\PnP-Provision.ps1 -TargetWebUrl " .\PnP-Provision-Disable.ps1 -TargetWebUrl "

26 pnp provisioning limitations
PnP is open source Not 100% flushed out – not a “Product” Not supported by Premier Support and other direct support channels Updated often – Good and bad – keep up to date Lively discussions do occur on GitHub project – if you find a bug, report it Or fix issues / feature requests yourself and submit pull requests Custom actions currently not available with Modern UI / Modern Team Sites

27 PNP PARTNER PACK

28 PNP PARTNER PACK JUMPSTART YOUR PROJECTS
PnP Partner Pack, currently V2 – A PnP Starter Kit A reusable solution that combines aspects of PnP – For Office 365 Includes many features Self-service site provisioning, fully configurable Responsive UI package for classic team sites UI widget for JavaScript injection to bypass custom master pages Governance tools – Azure WebJob based remote timer jobs Configurable branding Installation is tricky, but getting better PnP Partner Pack installation video:

29 DEMO: PNP PARTNER PACK

30 Contributing to pnp PnP is community driven
Everyone – Anyone can contribute Code, documentation, samples, PowerShell updates, fixes All available for contribution A core team does control the flow and submission approval Contributions are reviewed for quality – good for all Get started – Watch the video

31 aka.ms/OfficeDevPnP https://aka.ms/OfficeDevPnPVideos
@OfficeDevPnP

32 review SharePoint Provisioning Review Introduction to SharePoint PnP
Provisioning SharePoint With PnP and PowerShell Tips, Best Practices, and Demos Demos

33 resources Demos

34 https://github.com/SharePoint/PnP
SharePoint PnP: PnP PowerShell PnP Partner Pack PnP Provisioning Schema SharePoint PnP PowerShell Command Reference Participating in SharePoint PnP Initiative Session Source Code

35 Who Needs a Developer for Automated SharePoint Provisioning?
THANK YOU


Download ppt "Who Needs a Developer for Automated SharePoint Provisioning?"

Similar presentations


Ads by Google