Skip to main content

Office 365: Developer Blog

Office 365 Developer Patterns and Practices – December 2015 release

Office 365 Developer Patterns and Practices (PnP) December 2015 release is out with new contributions from community for the community. This post contains all the details related on what was included with the release and what else has been happening in the PnP world during the past month.


What is Office 365 Developer Patterns and Practices (PnP)? Office 365 Developer Patterns and Practices

PnP is community driven open source project where Microsoft and external community members are sharing their learning’s around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen our GitHub project under ‘dev’ branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications.

This is work done by the community for the community without any actual full time people. It’s been great to find both internal and external people who are willing to assist and share their learning’s for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the PnP Core team and we are looking to extend the Core team with more community members.

Notice that since this is open source community program, there’s no SLAs for the support what we provide from program. There is however highly active PnP Yammer group, where you can get fast support on any questions around the existing materials. If you are interested on getting more closely involved, please check the following guidance from our GitHub wiki.

Some key statistics around PnP program from December2015 release

  • GitHub repository forks at different repositories 
  • Yammer group members – 3.545
  • Unique visitors during past 2 weeks cross repositories – 7.093
  • Merged pull requests cross repositories – 1.313
  • Closed issues and enhancements ideas cross repositories – 277
  • PnP Core component NuGet package downloads – 17.218

Main resources around PnP program

December 2015 monthly community call

Agenda for the Tuesday 8th of December at 8 AM PST community call (Download ics invite from

  • Summary on the December release and other updates in program – Vesa Juvonen ~30 min
  • Demo – Core.JavaScript – Patrick Rodgers ~15 min
  • General Q&A and feedback discussion ~15 min

If you have any questions, comments or feedback, please participate in our discussions in the Office 365 Patterns and Practices Yammer group at We already have more than 3.500 members in this group with lively discussions on different add-in model related topics. This is the most active developer group in the Office 365 Technical network and we are definitely proud and thankful of this.

New PnP Weekly Web Cast

We started new PnP Weekly Web Cast with video series with new video on each Monday around key topics around the guidance or around hot topics from the community. Videos will be released to the PnP Channel 9 section. Here’s list of videos released since last monthly communications.

Introducing PnP Tools repository

We have now also released a new repository called PnP-Tools which is targeted more for IT Pro’s and architects looking for scrips, tools or other solutions supporting administration of SharePoint on-premises and Office 365 in general. This is brand new location and the work has just started, but we are looking for contributors on this side as well.

IT Pro and administration targeted work will be coordinated by Neil Hodgkinson. Right now repository contains scripts for hybrid search configuration and some tooling for the SharePoint 2016 user profile migration side. We are planning to grow this area significantly for helping to evolve the commonly used scripts and to provide easy location for the community to share their learnings also on this side.

New in PnP Tools

  • New solution UserProfile.MIMSync provides a set of powershell commandlets to set-up Microsoft Identity Manager sync engine with SharePoint and to kick off sync on-demand.
  • New script SharePoint.Hybrid.Search.Configuration for use in configuring an outbound search hybrid experience between SharePoint 2013 Server and SharePoint Online. In preliminary testing this also works with TAP builds of SharePoint 2016.

Office 365 Patterns and Practices

PnP repositories in GitHub

There are quite a few different GitHub repositories under the PnP brand since we wanted to ensure that you can easily find and reuse what’s relevant for you. We do also combine multiple solutions to one repository, so that you can more easily sync and get latest chanages of our released guidance and samples. In general we do recommend you to use the PnP sample search tool at for locating relevant material for you. This should be easier and faster than trying to locate relevant material from GitHub.

Here’s the current repository structure, including short description for each of them.

  • PnP – Main repository for SP add-in, Office 365, Unified API etc. samples
  • PnP-Guidance – Guidance, presentations and articles which are partly sync’d to MSDN
  • PnP-Sites-Core – Office Dev PnP Core component
  • PnP-PowerShell – Office Dev PnP PowerShell Cmdlets
  • PnP-Tools – New repository for tools and scripts around SharePoint and Office 365
  • PnP-Office-Addins – Office Add-in samples and models
  • PnP-Partner-Pack – Packaged guidance with detailed instructions on setting things up in Office 365 and in Azure
  • PnP-Transformation – Material specifically for the transformation process. Currently includes samples around InfoPath replacement. Some tools coming also soon.

Latest changes

Provisioning Engine

The first version of the PnP remote provisioning engine was released with the April 2015 release. For the December release we have continued to add new supported capabilities and made improvements from stability perspective for both Office 365 and on-premises. This list contains the main updates that have been added in the December release:

  • Overall quality and performance improvements
  • Improved on-premises support with CSOM version detection
  • Improved sub site handling logic
  • Fixes to item level security handling
  • Token handling improvements
  • General bug fixes cross the engine
  • Updated base templates for delta handling

We are looking into implementing more significant update for the engine with new capabilities for the January 2016 release. Target is to support fully new provisioning schema version, which is currently under review by the community.

PnP library

We have done general cleaning in the repository related on Nuget package updates and also removed some samples, which are no longer releavant. We are planning to continue these cleaning activities during the next months as well to streamline the repository and to combine some samples for reducing the overall number of similar samples.

There’s also significant amount of general updates on the existing samples done by the community on the code and documentation, which is great way to contribute as well.

  • PnP Core: Lots of re-factoring done to improve code quality and completeness:
    • provisioning engine updates (see above)
    • General bug fixing and quality improvements
    • Improved theme / composed looks handling
    • Improvements in user custom action handling
    • Removal of deprecated methods
    • Build and test automation improvements
    • Both PnP Core Nuget packages (cloud and on-premises) have been also updated accordingly.
  • New sample Core.JavaScript is a consolidated set of JavaScript examples for use in your SharePoint/Patterns and Practices projects.
  • Updated PnP-PowerShell Commands with new CommandLets and with few fixes
    • Overall quality improvements
    • Updated Add-SPOFfile CmdLet
    • Updated Set-SPOMasterPage CmdLet
    • Added Samples folder with initial samples – More is welcome
    • Updated documentation for CmdLets
  • Updates to the PnP Partner Pack
    • Code changes
    • Improved documentation based on community input

PnP Guidance articles

The PnP Guidance repository has been setup for working on articles. Part of these articles are already available on MSDN and more will follow. Everyone can contribute or update these articles via updating them in GitHub and the changes will flow back to MSDN once the synchronization setup has been completed. During this month we did some general updates on the articles, but there’s no actual new guidance published. You can easily find the relevant guidance for you using our search tool at

There’s already a significant amount of articles that has been added to the PnP MSDN section at

PnP Guidance videos

We did release one new guidance video during this month on top of the new web cast videos mentioned already above in this blog post. You can find all PnP videos from our Channel 9 section at This location contains already significant amount of detailed training material, demo videos and community call recordings.

Key contributors for the December 2015 release

Here’s the list of active contributors (in alphabetical order) during past month in PnP repositories. It’s great to see familiar names and also new people joining on the the community effort and assisting others. We are looking forward to continue working with such a talent and hope to get more additional people involved on this joint effort to help the community in the transition towards Office 365 and SharePoint add-in model/app model techniques.

Thank you for your assistance and contributions from the behalf of the community. You are making a difference!

Here’s the list of Microsoft people who have been closely involved on the PnP work during last month.

  • Antons Mislevics (Microsoft)
  • Bert Jansen (Microsoft) – @O365Bert
  • Brian Michely (Microsoft) – @brianmichely
  • Gaurav Doshi (Microsoft)
  • Dan Budimir (Microsoft) – MSDN blog
  • Frank Marasco (Microsoft) – @frank_marasco
  • Gaurav Doshi (Microsoft)
  • Jeremy Thake (Microsoft) – @jthake
  • Kiki Shuxteau (Microsoft)
  • Patrick Rodgers (Microsoft)
  • Ron Tielke (Microsoft)
  • Sami Nieminen (Microsoft)
  • Steve Walker (Microsoft) – @sharepointing
  • Vesa Juvonen (Microsoft) – @vesajuvonen

Latest statistics

Here’s some statistics from the PnP, PnP PowerShell and PnP Sites Core repositories. It’s great to see the growing contribution numbers and for example how our punch card looks like, since it proofs that this is truly a global effort with contributions 24/7.

Contributions at PnP repository

  Contributions at PnP repository

Traffic at PnP repository

Traffic at PnP repository  


Contributions at PnP Sites Core repository

Contributions at PnP Sites Core repository

Traffic from PnP Sites Core repository

Traffic from PnP Sites Core repository

Contributions at PnP PowerShell repository

Contributions at PnP PowerShell repository

Traffic from PnP PowerShell repository

Traffic from PnP PowerShell repository

See About Repository Graphs for more details on above statistics.

Next steps

  • December monthly community call is on 8th of December for latest release details – Download invite from
  • Following master merge will happen on 8th of January 2016 and January community call is on 12th of January 2016.

“Sharing is caring”

Vesa Juvonen, Senior Program Manager, Office 365, Microsoft