Office 365 Developer Patterns and Practices – September 2015 release

Vesa Juvonen

Office 365 Developer Patterns and Practices (PnP) September 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)? PnP logo

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

  • GitHub repository forks – 918
  • Yammer group members – 3226
  • Unique visitors during past 2 weeks – 4097
  • Merged pull requests – 830
  • Closed issues – 173
  • PnP Core component NuGet package downloads – 8785

Main resources around PnP program

September 2015 monthly community call

Agenda for the Tuesday 8th of September (8 AM PST) community call:

  • Summary on the September release and other updates in program – Vesa Juvonen ~30 min
  • Mail Add-In For Outlook Using Office 365 APIs (ADAL.JS, ANGULARJS, WEBAPI, AZURE AD) – Matej Vodopivc ~15 min
  • Demonstration of “microsurvey” web part as add-in implementation – Bob German ~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 3200 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.

Splitting of PnP repository in GitHub

As part of the September release, we have now completed structural changes in our repository structure. Since original PnP grew to be big for easy management, it was split to multiple sub repos. Main PnP repo will still remain as the main location for the SharePoint Add-in/App samples and solutions, but other material is redistributed to smaller sub repos. Here’s the detailed repository structure around PnP topics. Some of the needed sample relocation work will still happen during September.

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

  • PnP – Main repository in future as well, but will be smaller
  • 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-Office-Addins – Office Add-in samples and models
  • PnP-Office365-API – Office 365 and Azure AD related add-ins
  • PnP-Partner-Pack – Packaged guidance with detailed instructions on setting things up in Office 365 and in Azure. This initiative will be started during August and target date for final delivery is on mid-Oct.
  • PnP-Transformation – Material specifically for the transformation process. Currently draft version of the InfoPath transformation guidance.

Note. There will be some additional repositories as well, which will be communicated as we proceed.

Latest changes

Provisioning Engine

The first version of the PnP remote provisioning engine was released with the April 2015 release. For the September 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 August release:

  • Improved and updated delta handling
  • Overall quality and performance improvements
  • PnPMonitoredScope implementation for engine operations
  • Significant improvements on the on-premises support

Note. Some additional engine support capabilities were delayed for October release (2nd of Oct) to ensure sufficient testing for them. This includes support for workflows, regional settings, languages, auditing settings, publishing settings, etc.

PnP library

  • PnP Core: Lots of re-factoring done to improve code quality and completeness:
    • provisioning engine updates (see above)
    • PnPMonitoredScope model introduced for better logging with default implementation (more later)
    • Introduction of new token options for dynamic association
    • Nested token parsing support for tokens
    • Build and test automation improvements
    • Both PnP Core Nuget packages (cloud and on-premises) have been also updated accordingly.
  • New sample Core.KnockoutJSForm shows how to implement a simple dynamic form using Knockout.js. In the sample standard Event display form is extended to enable registrations.
  • New sample Core.ListViewThreshold shows a ContentIterator implementation that can be used to query large lists as it reads items in batches.
  • New sample Core.RestFileUpload demonstrate how to upload files to SharePoint using REST APIs.
  • New sample Outlook.RelatedData demonstrates mail add-in for Outlook which extracts data from a mail message and retrieves data from Office 365 APIs.
  • New sample Provisioning.MicroSurvey shows 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.
  • Updated sample Core.PeoplePicker to fix bugs on component handling
  • Significant updates to Solution Provisioning.UX.App with multi-lingual support for UI and other improvements.
  • Updated PnP-PowerShell Commands with new CommandLets and with few fixes
    • Overall quality improvements
    • Unit test model introduced for CmdLets
    • Updated documentation
    • Updated contribution guidance
    • Add configuration for Chocolately gallery
    • New Set-SPOUserProfileProperty cmdlet
    • New Set-SPOTraceLog cmdlet

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 not also release any additional videos to 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 September 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 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
  • Dan Budimir (Microsoft)
  • Frank Marasco (Microsoft) – @frank_marasco
  • 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 repository. 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.





Punch Card

We are missing only 4 spots from full house!!!


See About Repository Graphs for more details on above statistics.

Next steps

  • September monthly community call is on 8th of September for latest release details
  • Following master merge will happen on 2nd of October (first Friday of month) and October community call is on 13th of October (2nd tuesday of Month)

“Sharing is caring”

Vesa Juvonen, Senior Program Manager, Office 365, Microsoft

Feedback usabilla icon