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 App 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 App Model with contributions from the external and internal field.

Here's the actual PnP Core team who control miscellaneous efforts around this initiative.

Vesa Juvonen - Senior Program Manager, Microsoft Steve Walker - Senior Program Manager, Microsoft Jeremy Thake - Senior Product Marketing Manager, Microsoft Bert Jansen - Senior Consultant, Microsoft Frank Marasco - Principal Consultant, Microsoft Erwin van Hunen - Senior Solution Architect Paolo Pialorsi - Senior Consultant, PiaSys.com Richard diZerega - Principal System Development Engineer, Microsoft Reeza Ali - Senior Content Developer, Microsoft Laura Graham - Senior Content Developer, Microsoft Brian Michely - Principal Consultant, Microsoft Radi Atanossov - Chief SharePoint Architect, OneBit Software Suman Chakrabarti - Senior Service Engineer, Microsoft Frank Chen - SharePoint Consultant, Microsoft Antons Mislevics - Senior Consultant, Microsoft Ronald Tielke - Principal Consultant, Microsoft Daniel Budimir - Consultant Sami Nieminen - Senior Consultant


You are more than welcome to join the team on helping to provide samples which shows different patterns and practices towards app 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 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:

  • CSOM releases and new capabilities - latest API changes GitHub
  • Autotagging sample app for SharePoint MSDN Github
  • Bulk upload documents sample app for SharePoint MSDN Github
  • Upload large files sample app for SharePoint MSDN Github
  • Customization of OneDrive for Business sites GitHub
  • Getting Started with azure WebJobs ("timer jobs") for your Office 365 Sites GitHub

Community Calls

2nd Tuesday of each month at 5 PM CET / 8 or 9 AM PST - Conference ID: 2611083 Lync link - ics download

Next call on 14th of April.

Recent Samples

  • Core.MMSNavigationSample

    From Ashish Trivedi (Readify). Demonstrates how to build taxonomy driven navigation cross site collections.

  • ECM.DocumentSets

    From Frank Chen (Microsoft). Demonstrates how to use DocumentSetTemplate object with CSOM.

  • Core.ListItemChangeMonitor

    Daniel Budimir & Phil Cohen (Microsoft). Demonstrates how to use ChangeQuery object for monitoring list changes. By combinign this to remote event receivers, you will have reliable mechanims for event tracking. ChangeQuery object based approach is for ensuring that item changes are properly processed, even though remote event receiver based execution would have not gone as planned.

  • Provisioning.Framework.Console

    Vesa Juvonen, Bert Jansen (Microsoft). This scenario shows a basic usage of the PnP site collection and site provisioning engine.

  • Core.CDNManager

    From Scot Hillier, Hugh Wood, Marc Anderson & David Mann. The CDN Manager is used to manage Content Delivery Network (CDN) references for JavaScript Libraries and Cascading Style Sheets (CSS) in SharePoint 2013 sites. Using the CDN Manager prevents multiple references to the same library and conflicts between libraries that may arise when such references are not managed globally.

Office 365 Developer Patterns and Practices