introducing the - european sharepoint community · introducing the office 365 dev pnp partner pack....
TRANSCRIPT
INTRODUCING THEOFFICE 365 DEVPNP PARTNER PACKPAOLO PIALORSISENIOR CONSULTANT, PIASYS.COM, ITALY
About me
• Project Manager, Consultant, Trainer• About 50 Microsoft certification exams passed
• MCSM – Charter SharePoint• MVP Office Servers and Services• Office 365 Dev PnP Core Team Member
• Focused on SharePoint and Office 365 since the beginning
• Author of many books about XML, SOAP, .NET, LINQ, SharePoint, and Office 365
• Speaker at main IT conferences
Agenda
• Introduction to PnP Partner Pack v. 2.0• Architecture• Setup Guide• Extensibility Model
Introduction toPnP Partner Pack v. 2.0
What is it?
• Ready to use reference solution for Office 365 and SharePoint Online• Open Source on GitHub• Based on PnP samples, guidance, patterns, etc.• Based on community efforts (for the community, by the community)• Easy to setup and maintain
Main Capabilities
• Save Site as Provisioning Template feature in Site Settings• Sub-Site creation with custom UI and PnP Provisioning Template selection• Site Collection creation for non-admin users with custom UI and PnP
Provisioning Template selection• My Site Collections personal view• Responsive Design template for Site Collections• Governance tools for administrators: apply SharePoint farm-wide
branding, refresh site templates, bulk creation of site collections• Sample Timer Jobs (implemented as WebJobs) for Governance rules
enforcement
Requirements
• A valid Microsoft Office 365 tenant with at least an active subscription• A valid Microsoft Azure subscription for hosting components• The PnP PowerShell cmdlets (v. 2.7.1609.2 or later)
• http://aka.ms/OfficeDevPnPPowerShell• Visual Studio 2015 (kindly suggested) or Visual Studio Code
DEMO: A lap arountPnP Partner Pack v. 2.0
Architecture
Architectural Pillars
• Based on Office 365 Application, hosted on Azure App Service• Azure Web Site• Azure WebJobs
• Configured to work against Office 365/SharePoint Online • Mainly with App-Only token• Sometime with user’s delegation
• Uses Infrastructural Site Collection on SharePoint Online• Provisioning templates• Asynchronous jobs• Branding settings
• Uses Azure blob storage queue for near to real-time jobs
Architectural Schema
WebJob
Office 365 Application
Office 365/SharePoint
Storage Queue1
2
3
4
Infrastructure Library
• Provides main capabilities and extensibility points like• IConfigurable• IProvisioningRepository• ITemplatesProvider• PnPPartnerPackConstants• PnPPartnerPackContextProvider• PnPPartnerPackSettings• PnPPartnerPackUtilities• ProvisioningRepositoryFactory• SharePointProvisioningRepository• Out of the box templates providers
Provisioning Repository
• Templates can be retrieved from external repositories• Out of the box support for
• SharePoint Online at the tenant level• SharePoint Online at the current site collection level• PnP Templates Gallery
• The model is extensible (more on this later …)
DEMO: Architecture Overview
Setup Guide
Setup Steps
• Azure Active Directory Application• Registration• App Only configuration
• Infrastructural Site Collection• Azure Blob Storage creation• Azure App Service
• Web Site provisioning and configuration• App Only certificate configuration• Web Jobs provisioning
How to setup the solution
• Automatically using a UI baseddesktop application (for Windows OS only)
• Manually using PowerShell and some manual steps
• https://github.com/OfficeDev/PnP-Partner-Pack/blob/master/Documentation/Manual-Setup-Guide.md
DEMO: PnP Partner Pack Setup Wizard
Extensibility Model
Main Extensibility Points
• Custom Provisioning Repository• To customize queue-based async jobs persistence• To customize job items persistence• By default SharePoint Online and Azure Storage Queue
• You can replace with SQL Database, MSMQ, etc.• Custom Template Providers
• To consume templates from external repositories• Custom Jobs and Job Handlers
• To create custom jobs and to process them
Provisioning Repository
• Implement ITemplateRepository• GetGlobalProvisioningTemplates• GetLocalProvisioningTemplates• SaveGlobalProvisioningTemplate• SaveLocalProvisioningTemplate• EnqueueProvisioningJob• UpdateProvisioningJob• GetProvisioningJobs• GetProvisioningJob• GetTypedProvisioningJobs<TJob>
• Or inherit from SharePointTemplateRepository• Register the new repository in .config files with <ProvisioningRepository />
Templates Providers
• Implement ITemplatesProvider• GetProvisioningTemplate• SearchProvisioningTemplates• DisplayName
• Register the provider in .config files with <TemplatesProviders/>• Provide any optional XML configuration for the provider
Jobs and Job Handlers
• Create a Job type inheriting from ProvisioningJob• JobId• Title• Owner• Status• ErrorMessage
• Create a Job Handler type inheriting from ProvisioningJobHandler• Init• RunJobInternal
• Register them in the .config files with <ProvisioningJobs/>
DEMO: Extensibility Points
THANK YOU