About Patterns and Practices
The Patterns & Practicies initiative was originally formed in 2013 by a group of Microsoft consultants who were working on the transformation effort of the Office 365 Dedicated customers to Multi-Tenant. This involved taking the SharePoint full Trust Code Solutions and transforming the customizations to the add-in model. During this process there were many valuable assets created which are now shared publicly on GitHub.com. The PnP team has now extended to community contributions and is evolving rapidly to illustrate the common patterns and practices for the SharePoint add-in model with contributions from the external and internal field.
Here's the actual PnP Core team who control miscellaneous efforts around this initiative.
You are more than welcome to join the team on helping to provide samples which shows different patterns and practices towards add-in model development with SharePoint, Office 365 APIs and Office client. Currently this project is very focused on the SharePoint scenarios, but we are keeping a keen eye towards including the all-up Office Developer story as we move forward. Your submissions on this area are more than welcome.
The Patterns and Practices team collaborate in the yammer group within the office 365 technical network. "Sharing is caring!"
How to get started or contribute?
Check details on how to get started from our PnP GitHub Wiki, which contains step-by-step instructions on setting up your environment for GitHub usage. GitHub is slightly different tool than TFS, if you have used that in the past, but this guidance will provide you all you need to setup your environment with GitHub and how you can always pull down the latest code to your personal GitHub fork.
Monthly releases and community calls
Office 365 Dev PnP releases are done typically first Friday of each month when we perform master merge in GitHub and update Nuget packages among the other key actions. You can always access the latest development time version from the dev branch. We cover details on monthly releases in our monthly community calls. Download calendar invite (ics) to save the call details to your calendar.
- Transforming your SharePoint customizations to add-in model - Resources
- Office 365 Developer Patterns and Practices–October 2015 release
- Office 365 Developer Patterns and Practices–September 2015 release
- First year of Office 365 Dev Patterns and Practices (PnP) program
- Office 365 Developer Patterns and Practices–August 2015 release
- Office 365 Developer Patterns and Practices–June 2015 release
- PnP Case Study: Finnish intranet provider expands business by moving to a cloud add-in model
- Monthly Update 2015 May
- New SharePoint CSOM version released for Office 365
- Monthly Update 2015 April
- New API updates in Client Side Object Model (March 2015 CU for SP2013)
- Monthly Update 2015 March
- Hybrid site collection provisioning from Azure to on-premises SharePoint
- Asynchronous on-demand site collection provisioning to Office 365 with Azure WebJobs
- Using Azure storage queues and WebJobs for async actions in Office 365
PnP has two main branches. Master merge happens once a month with more comprehensive testing and release notes with detailed credits for the contirbutors. Dev branch has all the latest contributions and development.
We have a bunch of on-demand videos and hands on labs around transforming your farm solutions to the add-in model. You can check them out here:
- Introduction to SharePoint add-in model transition
- Managing site settings using add-in model
- Controlling branding in SharePoint using add-in model
- Remote timer jobs adn event receivers
- Site collection and site provisioning with add-in model
- Enterprise Content Management and SharePoint add-ins
- Using search capabilities with add-in model
- Transformation guidance from farm solutions to add-ins
We have guidance documentation for this initiative that is being built and collaborated on by both the community AND Microsoft in GitHub.com. This documentation is also then monthly published on MSDN too. You can check them out here:
- Transform farm solutions to the SharePoint app model MSDN
- CSOM releases and new capabilities - latest API changes GitHub
- Upload large files sample app for SharePoint (Updated) MSDN Github
- Branding and site provisioning solutions for SharePoint 2013 and SharePoint Online MSDN MSDN
- Using Microsoft Azure WebJobs with Office 365 MSDN GitHub
- Autotagging sample app for SharePoint MSDN GitHub
Our internal Microsoft services teams have shared the project plans, kick off presentation decks, solution assessment report templates, solution design templates and much more. This is a great kit to get you started as a Service Integrator in helping your customers.
Vesa Juvonen (Microsoft). Sample demonstrates how to use external sharing APIs with SharePoint or OneDrive for Business sites in Office 365. With external sharing APIs, you can automate document or site sharing for external users. With site level sharing, you can assign external user with view, edit or owner permissions.
Daniel Budimir (Microsoft). Demonstrates the flexibility and rich output of OfficeDevPnP.Core component trace logging functionality using provider hosted add-in and an Azure Web Job. This is good reference sample for diagnostics handling in your provider hosted add-ins.
Rodrigo Romano. Demonstrates how to upload files to SharePoint using REST APIs.
Bob German. This is a "microsurvey" web part, which will display a single question and gather up the answers. The app provisions SharePoint lists to hold the questions and answers, including custom New, Display, and Edit forms for one of the lists.
- Introduction to PnP Transformation Process - June 2015
- Introduction to PnP PowerShell CmdLets - May 2015
- Getting started with PnP Provisioning Engine - May 2015
- Deep dive to PnP Provisioning Engine Schema - May 2015
- Ignite - Deep Dive into Safe SharePoint Branding in Office 365 Using Repeatable Patterns and Practices - May 2015
- Ignite - Future-Proofing Your On-Premises SharePoint Development - May 2015
- Ignite - Transforming Your SharePoint Full Trust Code to the Office App Model - May 2015
- Ignite - Deep Dive into Custom App Provisioning and Deployment in Microsoft Office 365 - May 2015
- Build - Tried and True Practices for Transforming SharePoint Solutions to Cloud-Ready Solutions - April 2015
- Introduction to PnP remote site provisioning engine - April 2015
- Introduction to the PnP timer job framework - March 2015
- Self service site collection provisioning to Office 365 with Azure WebJob - March 2015
- Asynchronous on-demand operations in Office 365 with Azure storage queues and WebJobs - March 2015
- Hybrid site collection provisioning from Azure to on-premises - February 2015
- Episode 009 with Vesa Juvonen and Steve Walker
- Episode 031 on Application Lifecycle Management with Vesa Juvonen
- Episode 025 on Solutions, Scenarios & Samples in PnP github repo
- Episode 022 with Suman Chakrabarti on Dev PnP
- Episode 026 on ECM PnP Samples with Frank Marasco
- Episode 018 with Steve Walker on SharePoint UX developer guidance
PnP GitHub repositories
PnP has few different repositories in the GitHub with specific use cases. Here's links and description for each of them.
- PnP - Main repository for SP add-ins
- PnP-Guidance - Repository for guidance articles and materials
- PnP-Sites-Core - Repository for PnP Core component
- PnP-PowerShell - Repository for PnP PowerShell Cmdlet's
- PnP-OfficeAddins - Repository for Office Add-Ins samples
- PnP-Transformation - Repository for Transformation tooling