introducing the - european sharepoint community · introducing the office 365 dev pnp partner pack....

Post on 05-Jun-2018

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related