SharePoint / Office 365 Dev Patterns and Practices (PnP) June 2017 release is out with new contributions from the community to 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.
is SharePoint Patterns & Practices (PnP)?
PnP is community driven open source initiative where Microsoft and external community members are sharing their learning’s around implementation practices for SharePoint and Office 365. Active development and contributions happen our GitHub projects under ‘dev’ branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications.
PnP is owned and coordinated by SharePoint engineering, but this is work done by the community for the community. 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, the 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 the program. You can use SharePoint Developer group in the Microsoft Tech Community for providing input and to ask any questions around the existing materials. If you are interested in getting more closely involved, please check the following guidance from our GitHub wiki or a referenced PnP Webcast.
- How to get started and contribute to Office 365 Dev PnP program? – Wiki
- Office Dev PnP Webcast – How to get started with Office Dev PnP? – Webcast
- Office Dev PnP Webcast – How to contribute to Office Dev PnP initiative? – Webcast
Some key statistics around PnP program from May 2017
- GitHub repository forks at different repositories
- Unique visitors during past 2 weeks in SharePoint organization repositories – 23934
- Merged pull requests across SharePoint repositories (cumulative) – 3253
- Closed issues and enhancements ideas cross SharePoint repositories (cumulative) – 1909
- PnP Core component NuGet package downloads (cumulative) – 105940
- Unique visitors in PnP MSDN pages during May 2017 – 61635
- Unique tenants using PnP components during May 2017 – 5752
- Http requests towards SharePoint Online from PnP components during May 2017 – 2903289890
- PnP YouTube channel had 19965 views with 126260 minutes watch time during May 2017
Main resources around SharePoint PnP and SharePoint development
- SharePoint development documentation – http://dev.office.com/sharepoint
- PnP under dev.office.com – http://aka.ms/SPPnP – One location for all the resources and news around PnP
- PnP GitHub – http://aka.ms/SPPnP-GitHub – main repository
- PnP MSDN pages – http://aka.ms/SPPnP-MSDN
- PnP Community Discussions – http://aka.ms/SPPnP-Community
- PnP Videos at YouTube – http://aka.ms/SPPnP-Videos
- Presentations at docs.com – http://aka.ms/SPPnP-Docs – moving gradually to SlideShare
June 2017 monthly community call
Agenda for the Tuesday 13th of June community call at 8 AM PST / 5 PM CET:
- Summary on the June 2017 release and other program updates – Vesa Juvonen ~15 min
- Demo on new SPFx web part react-side-panel and SPFx field customizer react-field-slider – Alex Terentiev (SharePointalist) ~15 min
- Demo on “concrete example of a bot integration with intranet solution”, which is part of the PnP Starter Intranet – Franck Cornu (
aequos) ~15 min
- Demo on new sample Portal.DataAccessLayer related on the well-performing publishing portal guidance – Ron Tielke (Microsoft) ~15 min
- Q&A on SharePoint development topics
Monthly community call will get recorded and release to PnP YouTube channel typically within 24 hours after the recording is ended. If you have any questions, comments or feedback, please participate in our discussions in the Microsoft Tech Community under SharePoint developer group.
PnP Weekly Webcasts
We started new PnP Weekly Webcast series in October 2015 and have continued releasing new videos since that. All new webcasts are released in PnP YouTube Channel. Old webcasts and other demo videos are also found on the PnP Channel 9 section. Here are the new webcasts released after the last monthly release.
- 12th of June – Introduction to SharePoint Framework Extensions
- 5th of June – Transforming customizations to SharePoint Online
- 29th of May – Common (
mis)conceptions about SharePoint Framework
- 22nd of May – Introduction to Visual Studio Extensions for SharePoint Framework
- 15th of May – SharePoint “modern” user interface experience scanner
- 8th of May – Calling external APIs securely from SharePoint Framework
PnP Sites Core, PnP PowerShell and provisioning engine Special Interest Group (SIG)
PnP Sites Core, PowerShell and Provisioning Special Interest Group (SIG) have bi-weekly meetings to cover the latest development in the PnP CSOM core component, PnP PowerShell and in the PnP remote provisioning engine. We do touch also generic SharePoint development practices around remote APIs in these calls. These calls have also free Q&A section if you have any questions around SharePoint development in on-premises or in the cloud. Need to get a recommendation for your design or having a hard time with some APIs? – Drop by, ask a question and we’ll help you.
You can download invite for the bi-weekly meeting from the following location.
All SIG meetings are being recorded and are available for view from PnP YouTube Channel. Here are the latest recordings from the SIG calls.
- 31st of May – Upcoming PnP Provisioning Engine schema improvements. Introduction and live demo around the Office 365 CDN
- 17th of May – SharePoint Development Build 2017 announcements
- 3rd of May – General status updates. Demo on the Modern UI Customizer analyzer. Q&A
Notice. Last SIG for PnP Component / PowerShell before small summer break will be on Wednesday 14th of June – If you have questions around these topics, please join this call and use the opportunity to ask questions from SP Engineering and PnP Core team. After this call, this particular SIG goes for a summer break and will be restarted early August.
- Invite to bi-weekly call – https://aka.ms/sppnp-js-sig-call
- Gitter (Around the PnP JS Core) – https://gitter.im/OfficeDev/PnP-JS-Core
All SPFx and JS SIG meetings are recorded, so that you can check the demos and discussions if you can’t make the actual call. You can find the latest recordings from the PnP YouTube Channel. Here are the latest recordings.
- 8th of June – Latest on SPFx and PnP JS Core. Demos on SPFx Extensions dev preview and using PnP JS Core in Node.js with help of sp-
- 25th of May – Latest on SPFx and PnP JS Core. Demos on SPFx Visual Studio Extension and how to get started with React TypeScript Starter.
- 11th of May – Latest on SPFx and PnP JS Core. Preview on the demo that was shown in the Build 2016 later on the same day.
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 changes of our released guidance and samples. In general, we do recommend you to use the PnP sample search tool at dev.office.com for locating relevant material for you. This should be easier and faster than trying to locate relevant material from GitHub.
During November 2016, the majority of the PnP repositories were moved to SharePoint GitHub organization.
Here’s the current repository structure, including a short description for each of them.
- PnP – Main repository for SP add-in, Microsoft Graph etc. samples
- PnP-Guidance – Guidance, presentations, and articles which are partly synced 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 targeted more for IT Pro’s and for on-premises for SP2013 and SP2016
- 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 and transformation tooling from farm solutions to add-in model.
- PnP-Provisioning-Templates – Source for templates available from PnP Template Gallery at http://templates-gallery.sharepointpnp.com
- PnP-Provisioning-Schema – PnP Provisioning engine schema repository
- PnP-IdentityModel – Open source replacement of Microsoft.IdentityModel.Extensions.dll
On top of the specific PnP repositories, PnP initiative also controls the new repositories under the SharePoint organization. PnP is owned nowadays by SharePoint engineering and we will be using PnP as the channel and forum to facilitate community work.
- sp-dev-docs – Source for new SharePoint dev center documentation exposed from http://dev.office.com/sharepoint
webparts– Client-side web part samples from community and engineering
- sp-dev-samples – Samples for add-ins, webhooks, and other API
- sp-dev-fx-extensions – Samples and tutorial code around SharePoint Framework Extensions
- sp-dev-fx-vs-extension – Visual Studio IDE extension for creating SharePoint Framework solutions in the Visual Studio 2015 or 2017
- sp-dev-build-extensions – Different build extensions like gulp tasks and gulp plugins from the community and engineering around SharePoint development
What’s supportability story around PnP material?
Following statements apply across all of the PnP samples and solutions, including samples, core component(s) and solutions, like PnP Partner Pack.
- PnP guidance and samples are created by Microsoft & by the Community
- PnP guidance and samples are maintained by Microsoft & community
- PnP uses supported and recommended techniques
- PnP implementations are reviewed and approved by Microsoft engineering
- PnP is open source initiative by the community – people who work on the initiative for the benefit of others, have their normal day job as well
- PnP is NOT a product and therefore it’s not supported through Premier Support or other official support channels
- PnP is supported in similar ways as other open source projects done by Microsoft with support from the community by the community
- There are numerous partners that utilize PnP within their solutions for customers. Support for this is provided by the Partner. When PnP material is used in deployments, we recommend being clear with your customer/deployment owner on the support model
Scaling PnP initiative gradually
We are looking to scale the SharePoint PnP initiative gradually to numerous direction together with our community contributors. Already today we have numerous MVPs in our PnP Core Team (Erwin van Hunen, Paolo Pialorsi, Radi Atanassov, Waldek Mastykarz and Elio Struyf) and during May we have extended our team with numerous MVPs with specific responsibilities in the different assets shared through the PnP initiative. Here’s a short list of the recent changes.
- Eric Shupps and Paul Schaeflein are coordinating the efforts around the SharePoint Framework Visual Studio Extension, which provides easy integration of SharePoint Framework development with Visual Studio 2015 or 2017.
- Spencer Harbar is coordinating work around the MiM Sync toolset, which provides a set of PowerShell
cmdsetsto setup Microsoft Identity Manager sync engine with SharePoint
- Mikael Svenson (Puzzlepart) is coordinating updates around the SearchPoint Search Query Tool, which is a well known and widely used tool, which was relocated from the CodePlex to PnP-Tools repository as part of the June 2017 release.
After a short summer break (during July), we are looking to further extend and scale the initiative across multiple different areas starting from August 2017.
- We are looking to extend the communications and community around the OneDrive GitHub organization
- We will start work around collecting reusable build tooling for the SharePoint development using the sp-dev-build-extensions repository
- We will start work on reusable controls with SharePoint Framework development for increasing productivity of the developers in similar ways as done in the past with the work around PnP CSOM Core component
- There will be specific repositories around more reusable community solutions/applications, which are more polished and production ready implementations
SharePoint Framework samples
These are samples which are available from the SharePoint client-side web part sample repository at https://github.com/SharePoint/sp-dev-fx-webparts or from the SharePoint Framework Extensions repository at https://github.com/SharePoint/sp-dev-fx-extensions.
- New sample react-side-panel web part illustrates creation and usage of Side Panel (Sidebar) control
- New sample aad–
api– spo-cookie web part showing how to access a custom API secured with Azure Active Directory (AAD) without using ADAL JS
- New sample react-
peoplepickerweb part showing how to use Office UI Fabric People Picker and SharePoint Search API to retrieve people
- New tutorial samples around the SharePoint Framework Extensions built using the “Getting started” tutorials
- New react-field-slider field customizer showing how to build custom UI for field customizer using React
- New js-application-graph-client application customizer showing how to use GraphHttpClient in the context of extension
- New js-application-
appinsightsapplication customizer showing how to use application customizer to embed needed scripts for using Azure Application Insights for usage tracking
- New js-application-analytics application customizer showing how to use application customizer to embed needed script for using Google Analytics for usage tracking
- Updates to numerous other samples to use SPFx GA version
SharePoint Dev Build Definitions
These are scripts and assets available from the SharePoint Build Extensions repository at https://github.com/SharePoint/sp-dev-build-extensions.
- New sample serve-info Gulp tasks showing query string parameters required for debugging of the different SharePoint Framework Extensions in the current project.
PnP CSOM Core and Provisioning Engine
PnP CSOM Core component is a wrapper on top of native SharePoint CSOM and REST API, which simplifies complex scenarios with remote APIs, one of the example is the PnP Provisioning Engine for remote templates. The first version of the PnP remote provisioning engine was released with the May 2015 release. For the June 2017 release, we have continued to add new supported capabilities and made significant improvements from stability perspective for both SharePoint Online and SharePoint on-premises (2013 and 2016). This list contains the main updates that have been added in the June 2017 release:
- Add List WebHooks easily using new extension methods
- Support for client side pages with multiple zones/sections
- News page promotion
- Custom welcome page settings
- Added support to set ClientComponentId and ClientComponentProperties properties for CustomAction
- Updated to use latest SPO CSOM NuGet package
- Unit/integration test improvements
- Updated base templates for the SPO, 2013 and 2016 – used in delta handling
See also https://testautomation.sharepointpnp.com for day-to-day results and executed tests.
Notice. We are planning to do another engine update during June or early July with updated provisioning capabilities.
This is a similar effort as what PnP initiative previously has done with the PnP CSOM Core Component together with the community.
PnP PowerShell providers more than two hundred additional PowerShell cmdlets, which can be used to manipulate content in SharePoint Online and in on-premises (SP2013, SP2016). These cmdlets are additive for SharePoint Online management shell, which concentrate more on the administrative tasks with SharePoint Online.
Notice. In the past PnP PowerShell cmdlets where using SPO- prefix, which however overlapped with the native SPO management PowerShell cmdlets, so prefixing was changed as part of the November 2016 release. Starting from June 2017 release, we no longer release alias entries as part of the package, which means that we only support PnP- prefix usage with the PnP PowerShell.
Here are the latest changes in the PnP PowerShell
- Add-PnPCustomAction updated to support ClientComponentId and ClientComponentProperties properties to support SharePoint Framework Extensions
- Set-PnPTenantSite updated to set the
noscriptproperty for site
- Get-PnPProvisioning template updated to persist assets by default if *.pnp extension is used
- New Get-PnPUser cmdlet for getting user details from current web
- New Tenant.Migration sample PowerShell script for moving multiple sites and site collections from one tenant to another
- Overall quality improvements and bug fixes
- Updated automatically generated PnP PowerShell cmdlet documentation at MSDN
PnP sample library
Here are updates across the PnP code sample library by the community on the code and documentation, which is a great way to contribute as well.
- New Portal.DataAccessLayer sample showing how to build a Client-Side Data Access layer for custom client side implementations
- Updated PnP Portal Intranet starter kit to version 1.3 with new capabilities (check readme)
- Updates to the PnP Partner Pack
- Fine tuning and polishing based on community input
- Fixed issue when searching for Site Collection Admins
PnP Guidance articles
The PnP Guidance repository contains guidance articles which are published on MSDN. Starting from the end of May 2016 this process was changed to be fully automated and there’s automatic contributors list in the MSDN side showing who have been providing updates to these documents. We are looking forward to your contributions around real life learnings in different areas. Read more details around this open publishing model from following blog post
Here’s the new guidance released since past monthly communications.
- PnP CSOM Core component documentation released in MSDN
- Updates on existing SharePoint “modern” experiences customization guidance
PnP initiative also controls the articles in the dev.office.com around SharePoint development. Here are new/updated articles around the SharePoint Framework. All documentation from MSDN will be gradually moving to dev.office.com/sharepoint.
- New tutorial and documentation around the SharePoint Framework Extensions
- Build your first SharePoint Framework Extension (Hello World part 1)
- Using page placeholders from Application Customizer (Hello World part 2)
- Deploy your extension to SharePoint (Hello world part 3)
- Hosting extension from Office 365 CDN (Hello world part 4)
- Build your first Field Customizer extension
- Build your first ListView Command Set extension
- New article – Connect to API secured with Azure Active Directory
- Updates to SharePoint Framework roadmap article
- Updates on the older articles related to the GA change and other general fixes
PnP Guidance videos
You can find all PnP videos from our YouTube Channel at http://aka.ms/sppnp-videos. This location contains already a significant amount of detailed training material, demo videos, and community call recordings.
- 25 videos around Getting Started with SharePoint Framework training package – Actual material available from
Notice that some of the old PnP videos are also in the PnP Channel 9 video blog, which was previously used.
Key contributors for the June 2017 release
Here’s the list of active contributors (in alphabetical order) during past month in PnP repositories or community channels. PnP is really about building tooling and knowledge together with the community for the community, so your contributions are highly valued cross the Office 365 customers, partners and obviously also at Microsoft.
Thank you for your assistance and contributions on the behalf of the community. You are making a difference!
- Alex Terentiev (SharePointalist) – @alexaterentiev
- Andi Krüger – @andikrueger_de
- Arjen Bloemsma – arjenbloemsma
- Chris Kent (Allegient, LLC) – @theChrisKent
- Danny Engelman – @Danny_Engelman
- David Lozzi – DavidLozzi
- Erwin van Hunen (Rencore) – @erwinvanhunen
- Elio Struyf – @eliostruyf
- Eric Shupps – @eshupps
- Eric Overfield – @EricOverfield
- Felix Schoeler – fela98
- foxdave alias – foxdave
- Franck Cornu (aequos) – @FranckCornu
- Gautam Sheth (Rapid Circle) – gautamdsheth
- Giuliano De Luca – @giuleon
- Ivan Vagunin (Digia) – ivagunin
- Jasper Siegmund – @jsiegmund
- Joel Rodrigues – joelfmrodrigues
- José Quinto (Content and Code) – @jquintozamora
- Jussi Palo – @jussipalo
- Laurent Sittler (Exakis) – @laul0_68
- Luis Mañez (ClearPeople) – @luismanez
- Luis Valencia (Software Estrategico) – @levalencia
- Matt Jimison (Allegient) – @mjimison
- Michael Schau (WorkPoint A/S) – @SchauDK
- Mikael Svenson (Puzzlepart) – @mikaelsvenson
- Mårten af Sandeberg (Knowit) – afsandeberg
- Nicolaj Hedeager Larsen (WorkPoint A/S) – NicolajHedeager
- Ole Martin Pettersen (Puzzlepart) – olemp
- Paolo Pialorsi (PiaSys.com) – @PaoloPia
- Paul Schaeflein – @paulschaeflein
- Pieter Veenstra (Triad) – @PieterVeenstra
- Radi Atanassov (OneBit Software) – @RadiAtanassov
- ramonitor alias – ramonitor
- Ransher Singh – ranshers
- reshmee011 alias – reshmee011
- Spencer Harbar – @harbars
- Waldek Mastykarz (Rencore) – @waldekm
- Vardhaman Deshpande (Content and Code) – @vrdmn
- Velin Georgiev – @velingeorgiev
- Yannick Plenevaux – @yp_code
Companies: Here’s the companies, which provided support for PnP initiative for this month by allowing their employees working for the benefit of others in the PnP initiative. There were also people who contributed from other companies during last month, but we did not get their logos and approval to show them on time for these communications. If you still want your logo for this month’s release, please let us know and share the logo with us. Thx.
Microsoft people: Here’s the list of Microsoft people who have been closely involved
AntonsMislevics – antonsmislevics
- Bert Jansen – @O365Bert
- Chakkaradeep (
Chaks) Chinnakonda Chandran – @chakkaradeep
- Chrystal Comley –
- Dan Budimir – MSDN blog
- David Chesnut
- Frank Marasco – @frank_marasco
- Jonathan Huss – @jonathanhuss
- Keyur Patel
- Koen Zomers – @koenzomers
- Laura Graham –
- Neil Hodgkinson – @Nellymo
- Nicholas Pape –
- Pat Miller – @PatMill_MSFT
- Patrick Rodgers – @mediocrebowler
- Ron Tielke –
- Vesa Juvonen – @vesajuvonen
Latest traffic statistics
Traffic at PnP repository
Traffic from PnP CSOM Core repository
Traffic from PnP PowerShell repository
Traffic from SharePoint Framework Web Parts repository
See About Repository Graphs for more details on above statistics.
- June 2017 monthly community call is on 13th of June at 8 AM PT / 5 PM CET for latest release details with demos – Download invites with a detailed schedule for your time zone from http://aka.ms/sppnp-call.
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft – 13th of June 2017