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.


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.

Monthly Updates

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.

Guidance documentation

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
  • Customize your SharePoint site UI by using JavaScript MSDN Github
  • Using Microsoft Azure WebJobs with Office 365 MSDN GitHub
  • Autotagging sample app for SharePoint MSDN GitHub

Transformation Process

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.

Community Calls

2nd Tuesday of each month at 5 PM CET / 8 AM PST. Lync link - ics download. Next call on 8th of September.

Recent Samples

  • Core.JQuery

    Patrick Rodgers (Microsoft). Contains a set of jQuery extensions to enable extending SharePoint functionality to provider hosted apps using the familiar jQuery syntax..

  • BusinessApps.RemoteCalendarAccess

    Jonathan Huss (Microsoft). Demonstrates how to enable Social features like Rating/Likes on the List/Library.

  • Core.EmbedJavaScript.HeaderFooter

    André Lage. Demonstrates how to include include a custom Header and Footer without custom master page. The Header and Footer sample includes custom Global Breadcrumbs (SharePoint or JSON Data) and custom Global Ribbons that are acessible in all sites and subsites associated to Site Collection.

  • AzureAD.RedisCacheUserProfile

    Luis Valencia (Capatech). Shows shows how to use windows Azure Active directory to get user profile information and how to use Azure REDIS Cache to make performant Add-Ins.

  • AzureAD.WebAPI.SPOnline

    Rodrigo Romano. Shows how to call a Web API secured by Azure AD and the API calls SharePoint Online on behalf the logged in user. This scenario is useful for situations where you need a protected API Proxy to interact with SharePoint Online using User's credentials.

PnP GitHub repositories

PnP has few different repositories in the GitHub with specific use cases. Here's links and description for each of them.

Office 365 Developer Patterns and Practices