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

26

Upload: phunglien

Post on 05-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin
Page 2: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

INTRODUCING THEOFFICE 365 DEVPNP PARTNER PACKPAOLO PIALORSISENIOR CONSULTANT, PIASYS.COM, ITALY

Page 3: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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

Page 4: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

Agenda

• Introduction to PnP Partner Pack v. 2.0• Architecture• Setup Guide• Extensibility Model

Page 5: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

Introduction toPnP Partner Pack v. 2.0

Page 6: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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

Page 7: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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

Page 8: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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

Page 9: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

DEMO: A lap arountPnP Partner Pack v. 2.0

Page 10: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

Architecture

Page 11: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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

Page 12: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

Architectural Schema

WebJob

Office 365 Application

Office 365/SharePoint

Storage Queue1

2

3

4

Page 13: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

Infrastructure Library

• Provides main capabilities and extensibility points like• IConfigurable• IProvisioningRepository• ITemplatesProvider• PnPPartnerPackConstants• PnPPartnerPackContextProvider• PnPPartnerPackSettings• PnPPartnerPackUtilities• ProvisioningRepositoryFactory• SharePointProvisioningRepository• Out of the box templates providers

Page 14: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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 …)

Page 15: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

DEMO: Architecture Overview

Page 16: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

Setup Guide

Page 17: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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

Page 18: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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

Page 19: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

DEMO: PnP Partner Pack Setup Wizard

Page 20: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

Extensibility Model

Page 21: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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

Page 22: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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 />

Page 23: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

Templates Providers

• Implement ITemplatesProvider• GetProvisioningTemplate• SearchProvisioningTemplates• DisplayName

• Register the provider in .config files with <TemplatesProviders/>• Provide any optional XML configuration for the provider

Page 24: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

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/>

Page 25: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

DEMO: Extensibility Points

Page 26: INTRODUCING THE - European SharePoint Community · INTRODUCING THE OFFICE 365 DEV PNP PARTNER PACK. ... SOAP, .NET, LINQ, SharePoint, ... • Site Collection creation for non -admin

THANK YOU