Who Needs a Developer for Automated SharePoint Provisioning?

Slides:



Advertisements
Similar presentations
Microsoft SharePoint 2010 technology for Developers
Advertisements

Branding Initiation Eric Overfield SharePoint Advocate and Enthusiast PixelMill Your SharePoint 2013
Development models for on-premises Transformation approaches Farm solution considerations.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Introduction to SharePoint Development with VS2010 Paul Yuknewicz Lead Program Manager
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Crystal Hoyer Program Manager IIS Team Preview of features that will be announced at MIX09 Please do not blog, take pictures or video of session.
TechEd /22/2017 5:40 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Office 365 Platform Flexible Tools Understand different provisioning options and their advantages and disadvantages…
Basic Developer Knowledge That Every SharePoint Admin Must Have Randy Williams, MVP MOSS Synergy Corporate Technologies
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Upgrading Projects to Visual Studio 2010 Upgrading Projects to SharePoint 2010 Integrating with SharePoint 2010.
Online Conference June 17 th and 18 th SharePoint Online Administration with PowerShell.
Adxstudio Portals Training
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
NET Development on Microsoft SharePoint Technology Part 4: Templates, Features, and Solution Deployment Mick Badran Breeze Training Consulting Trainer.
Both Dutch and Swedish nationality 20+ years of industry experience Living in Stockholm, Sweden MCSM, MCM, MVP, MCSE, MCSD, MCSA, MCPD, MCITP, MCTS PnP.
Office 365: Attack of the Clones! Building reusable site templates with the Office 365 PnP Framework.
Software services delivering SharePoint, Mobile, and Business Intelligence solutions Understanding and implementing the remote provision pattern in SharePoint.
Powering up your Office 365 cmdlets with CSOM Bjoern H Rapp, Senior Architect Public Cloud, SopraSteria.
Ramping Up On The SharePoint Framework (SPFx)
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
SP Business Suite Deployment Kick-off
From SharePoint to Office 365 Development
Fahd Shaaban, Director of Professional Services
5/9/2018 9:30 AM BRK2215 Deliver better experiences with SharePoint Patterns and Practices Community Solutions Mike Ammerlaan Product Marketing Manager,
Make Power BI Your Own with the Power BI APIs
Understanding SharePoint Framework Extensions
What's new in the world of SharePoint development and deployment
About Bill Bill Baer (ˈbɛər)
SharePoint Provisioning Success with PnP PowerShell
Automate Custom Solutions Deployment on Office 365 and Azure
Line of Business Solutions in SharePoint Online
Use Office UI Fabric React to Build Beauty with SharePoint
SPC Developer 6/25/2018 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Upgrading from Full Trust Code to Add-in Model and SharePoint Framework Paolo Pialorsi Senior Consultant - PiaSys.com Track: DEV | Level:
Use Office UI Fabric React to Build Beauty with SharePoint
SharePoint power hour Rob Howard Program Manager Build 2014
Modern UI Extensions with the SharePoint Framework
SharePoint Framework Extensions
Advancing the SharePoint Developer Community (PnP)
SharePoint Practice Lead
SharePoint Online Development Best Practices
Application Lifecycle Management – Best Practices for SharePoint and Office App development November 2015.
SPFx – A modern development tool for SharePoint
Developing Branding Solutions for 2013
Introduction to SharePoint Framework (SPFx)
Understanding SharePoint Framework and Modern Development
SharePoint-Hosted Apps and JavaScript
Transforming SharePoint Farm Solutions to the Add-in Model
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Office 365 PowerShell Jeremy Sublett.
Learn about PnP initiative and the new SharePoint Framework
Office 365 Development July 2014.
Introduction to SharePoint Framework (SPFx)
CRM 2016 Solutions and Package Deployer
Make Power BI Your Own with the Power BI APIs
Introduction to SharePoint Framework
02 | Controlling branding in SharePoint using app model
SharePoint Saturday Chennai 2018
Vesa Juvonen | Senior Program Manager
03 | Site collection and site provisioning with app model
Site scripts and Site Design
SharePoint 2019 Overview and Use SPFx Extensions
An introduction to the SharePoint Patterns and Patterns initiative
HCL’s Viewpoint – DevOps on MS Cloud
Explore PnP Partner Pack for IT pros, admins and architects
PnP Partner Pack - Introduction
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

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

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

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

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

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

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

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

A better way – Sharepoint pnp

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 – http://aka.ms/OfficeDevPnP 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 – https://github.com/SharePoint/PnP Patterns & Practices

SHAREPOINT PNP

Sharepoint pnp core components Project source – get the code, resources and contribute https://github.com/SharePoint/PnP Core Component - https://github.com/SharePoint/PnP-Sites-Core Useful to build SharePoint ready console apps PnP PowerShell - https://github.com/sharepoint/pnp-powershell/ JavaScript Core Library - https://github.com/SharePoint/PnP-JS-Core Partner Pack - https://github.com/SharePoint/PnP-Partner-Pack Monthly – Bi-weekly community calls - http://pxml.ly/2mjpckv PnP Core Component C# Examples (Code) Best Practices Documentation It is a give and take, mostly take, but do consider giving

aka.ms/OfficeDevPnP https://aka.ms/OfficeDevPnPVideos https://github.com/OfficeDev/PnP https://github.com/OfficeDev/PnP-Sites-Core https://github.com/OfficeDev/PnP-PowerShell https://github.com/OfficeDev/PnP-Tools https://github.com/OfficeDev/PnP-Guidance https://github.com/OfficeDev/PnP-Transformation https://github.com/OfficeDev/PnP-OfficeAddIns https://github.com/OfficeDev/PnP-Provisioning-Schema https://aka.ms/OfficeDevPnPVideos https://aka.ms/OfficeDevPnPMSDN https://aka.ms/OfficeDevPnPYammer https://docs.com/OfficeDevPnP @OfficeDevPnP https://aka.ms/OfficeDevPnPCall https://aka.ms/OfficeDevPnPPartnerPack

INTRODUCTION TO SHAREPOINT PNP https://github.com/SharePoint/PnP

PNP POWERSHELL AND REMOTE PROVISIONING

Sharepoint pnp core components PnP PowerShell based on a PnP Core Component Remote Provisioning Schema https://github.com/SharePoint/PnP-Provisioning-Schema Together provide a method to repeatedly provision

GETTING STARTED WITH PNP AND POWERSHELL Install PnP PowerShell https://github.com/SharePoint/PnP-PowerShell#installation 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('https://raw.githubusercontent.com/ OfficeDev/PnP-PowerShell/master/Samples/Modules.Install/Install-SharePointPnPPowerShell.ps1')

COMMON PNP POWERSHELL COMMANDS Update PnP PowerShell – remember, monthly updates! Update-Module SharePointPnPPowerShell* Connect to SharePoint Site Connect-PnPOnline -url http://pixelmill-tenant.sharepoint.com/ –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

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 https://pixelmill.sharepoint.com/sites/demo-installation –Credentials (Get-Credential) Get-PnPList Get-Help Connect-PnPOnline -Detailed

PNP POWERSHELL USAGE SCENARIOS Connect to a site Connect-PnPOnline -url http://pixelmill-tenant.sharepoint.com/ –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”

PROVISIONING SHAREPOINT WITH PNP POWERSHELL Create a provisioning template – Manually or based on “template” site XML based file based on a schema - https://github.com/SharePoint/PnP-Provisioning-Schema Can export from existing site: /> Get-PnPProvisioningTemplate -Out template.xml https://github.com/SharePoint/PnP-PowerShell/blob/master/Documentation/GetPnPProvisioningTemplate.md 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 https://github.com/SharePoint/PnP-PowerShell/blob/master/Documentation/ApplyPnPProvisioningTemplate.md Create a PowerShell script to standardize for your user cases

https://msdn. microsoft https://msdn.microsoft.com/en-us/pnp_articles/introducing-the-pnp-provisioning-engine https://msdn.microsoft.com/en-us/pnp_articles/introducing-the-pnp-provisioning-engine

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

DEMO: PNP PROVISIONING TEMPLATE https://github.com/SharePoint/PnP-Provisioning-Schema https://github.com/SharePoint/PnP-Provisioning-Schema/tree/master/Samples Look at custom example Connect-PnPOnline -url https://pixelmill.sharepoint.com/sites/demo-pnp-provisioning –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 -Parameters @{"InfrastructureSiteUrl"="https://”yourtenant”.sharepoint.com/sites/demo-pnp-provisioning"}

SIMPLE POWERSHELL SCRIPTS FOR REPEATABLE PATTERNS Create installation and uninstall processes Apply-PnPProvisioningTemplate allows for sending in parameters i.e.: -Parameters @{"InfrastructureSiteUrl"=$rootPath} 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

DEMO: PNP PROVISIONING WITH SCRIPTS Show Install script .\PnP-Provision.ps1 -TargetWebUrl "https://”yourtenant”.sharepoint.com/sites/demo-pnp-provisioning" .\PnP-Provision-Disable.ps1 -TargetWebUrl "https://”yourtenant”.sharepoint.com/sites/demo-pnp-provisioning"

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

PNP PARTNER PACK

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 https://github.com/SharePoint/PnP-Partner-Pack 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: https://www.youtube.com/watch?v=ezWYorZClTI

DEMO: PNP PARTNER PACK https://github.com/SharePoint/PnP-Partner-Pack https://github.com/SharePoint/PnP-Partner-Pack/blob/master/Documentation/Architecture-and-Implementation.md https://github.com/SharePoint/PnP-Partner-Pack/blob/master/Documentation/Manual-Setup-Guide.md

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 https://www.youtube.com/watch?v=ELeGFILRFfQ

aka.ms/OfficeDevPnP https://aka.ms/OfficeDevPnPVideos https://github.com/OfficeDev/PnP https://github.com/OfficeDev/PnP-Sites-Core https://github.com/OfficeDev/PnP-PowerShell https://github.com/OfficeDev/PnP-Tools https://github.com/OfficeDev/PnP-Guidance https://github.com/OfficeDev/PnP-Transformation https://github.com/OfficeDev/PnP-OfficeAddIns https://github.com/OfficeDev/PnP-Provisioning-Schema https://aka.ms/OfficeDevPnPVideos https://aka.ms/OfficeDevPnPMSDN https://aka.ms/OfficeDevPnPYammer https://docs.com/OfficeDevPnP @OfficeDevPnP https://aka.ms/OfficeDevPnPCall https://aka.ms/OfficeDevPnPPartnerPack

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

resources Demos

https://github.com/SharePoint/PnP SharePoint PnP: https://github.com/SharePoint/PnP PnP PowerShell https://github.com/SharePoint/PnP-PowerShell PnP Partner Pack https://github.com/SharePoint/PnP-Partner-Pack PnP Provisioning Schema https://github.com/SharePoint/PnP-Provisioning-Schema SharePoint PnP PowerShell Command Reference http://ericoverfield.com/sharepoint-pnp-powershell-command-reference/ Participating in SharePoint PnP Initiative http://ericoverfield.com/participating-in-the-sharepoint-office-365-dev-patterns-and-practices-pnp-community-initiative/ Session Source Code https://github.com/eoverfield/SPPnP-Demos

Who Needs a Developer for Automated SharePoint Provisioning? THANK YOU