Office 365 Developer Patterns and Practices (PnP) April 2016 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 is community driven open source initiative where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 in general and also 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 team members. 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 or a referenced PnP Web Cast.
- How to get started and contribute to Office 365 Dev PnP program? - Wiki
- Office Dev PnP Web Cast – How to get started with Office Dev PnP? - Web Cast
- Office Dev PnP Web Cast – How to contribute to Office Dev PnP initiative? - Web Cast
Some key statistics around PnP program from April 2016 release
- GitHub repository forks at different repositories
- Yammer group members - 4188
- Unique visitors during past 2 weeks cross PnP repositories - 9.933
- Merged pull requests cross PnP repositories - 1746
- Closed issues and enhancements ideas cross PnP repositories - 522
- PnP Core component NuGet package downloads - 28367
Main resources around PnP program
- PnP under dev.office.com – http://aka.ms/OfficeDevPnP - One location for all the resources and news around PnP
- PnP GitHub - http://aka.ms/OfficeDevPnPGitHub - main repository
- PnP MSDN pages - http://aka.ms/OfficeDevPnPMSDN
- PnP Yammer group - http://aka.ms/OfficeDevPnPYammer
- PnP Videos at Channel 9 - http://aka.ms/OfficeDevPnPVideos
- PnP training package (videos in Channel 9) - http://aka.ms/OfficeDevPnPTraining
- Presentations at docs.com - http://docs.com/OfficeDevPnP
- PnP Guidance Repository – http://aka.ms/OfficeDevPnPGuidance
April 2016 monthly community call
Agenda for the Tuesday 12th of April community call at 8 AM PST / 5 PM CET:
- Summary on the April release, community survey results and other updates in program - Vesa Juvonen ~20 min
- Present planned PnP provisioning schema changes - Paolo Pialorsi ~15-20 min
- Demo on Governance.ExternalSharing sample - Chandrasekar Natarajan (Microsoft) ~15-20 min
- Demo on MicrosoftGraph.Office.QuickContacts sample - Waldek Mastykarz ~15-20 min
If you have any questions, comments or feedback, please participate in our discussions in the Office 365 Patterns and Practices Yammer group at http://aka.ms/OfficeDevPnPYammer. We already have more than 4.000 members in this group with lively discussions on different SharePoint and Office 365 related topics from on-premises and cloud perspective. This is the most active developer group in the Office 365 Technical network and we are definitely proud and thankful of that.
Spring 2016 PnP community survey results
We conducated short community survey during March 2016 for getting additional input around the future direction of the PnP and to collect your feedback around the different aspects of PnP. Here's some high level results from the survey. We'll also cover the results more detailed in our monthly community call on 12th of April more detailed.
We started bi-weekly PnP Office Hours during February for addressing questions on how to contribute towards PnP. These are open discussions around what the Core team is doing and where the community members can assist. This time is also open for discussing aroung design decisions, challenges and possible issues in the PnP deliverables. You can download invite for the bi-weekly invite from following location. Recording of these Office Hours are shared in the PnP Yammer group within 24 hours after the recording was done.
- Yammer group – http://aka.ms/OfficeDevPnPYammerSPClient
- Invite to weekly call - http://aka.ms/OfficeDevPnPSPClientSIGCall
- Introducing Office Dev Patterns and Practices Office Hours and Interest Groups
PnP Weekly Web Casts
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.
- 7th of March - Office Dev PnP Web Cast – SharePoint Client Side Development and Cross-Origin Resource Sharing (CORS)
- 15th of March - Office Dev PnP Web Cast – Introducing Widget Wrangler for SharePoint development
- 21st of March - Office Dev PnP Web Cast – Responsive UI Package for SharePoint 2013 and 2016
- 28th of March - Office Dev PnP Web Cast – How to contribute to Office Dev PnP initiative?
- 4th of April - Office Dev PnP Web Cast – How to get started with Office Dev PnP?
New PnP Core Component training videos
As part of the April 2016 release we have also released a small training package with videos and presentations around the PnP Core Component (.NET). PnP Core Component is released as a Nuget package and it simplifies development with managed code. Typically PnP Core COmponent is used in the provider hosted add-ins/apps. Other typical use cases are Azure WebJobs or scheduled tasks in the SharePoint on-premises. PnP Core Component has different versions for SharePoint Online and for on-premises. Please see following videos and materials for additional context.
- Introduction to PnP Core Component - Use cases and usage
- Basic operations with PnP Core Component - Basic operations provided as extension methods
- Remote timer job framework in PnP Core Component - How to build timer jobs with add-in/app model
- Authentication Manager - Simplifies authentication scenarios with MFA, ADFS, AAD support
- Site Provisioning Framework - How to enable remote provisioning patterns easily?
- PnP PowerShell - How to use PnP Core component from scripts?
- How to contribute to PnP initiative - How do get started and provide input back for the PnP initiative?
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 dev.office.com 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, Microsoft Graph 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 targeted more for IT Pro's and for on-premises for SP2013 and SP2016
- PnP-Office-Addins - Office Add-in samples and models (starting)
- 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-OfficeAddins - Samples for the Office Add-ins development
- PnP-Provisioning-Schema - PnP Provisioning engine schema repository
What's supportability story around PnP material?
Following statements apply cross 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 initiate 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 to be clear with your customer / deployment owner on the support model
The first version of the PnP remote provisioning engine was released with the April 2015 release. For the April 2016 release we have continued to add new supported capabilities and made significant improvements from stability perspective for both Office 365 and on-premises. This list contains the main updates that have been added in the April release:
- Significant overall quality and performance improvements
- Added support for Cross-Tenant provisioning of taxonomy fields (extract-import cross tenants)
- Included Extensibility Handler support also for template extraction time
- Parse subfolders when exporting master pages and page layouts
- Added support for the EnableModeration property on extracting list instances
- Parse subfolders when exporting masterpages and pagelayouts
- Excluded Orphaned Terms termset from extraction
- Improved support and bug fixes with publishing sites and pages
- Bug fixes on the welcome page extraction, theme handling, workflow handling and custom action handling
- Updated base templates for the SPO and 2016 - used in delta handling
We are planning to release new schema version and some new capabilities as part of the May 2016 release. Please join to monthly community call for discussing the planned changes.
We are looking to do significant consolidation on the SharePoint samples during upcomign months, which will help the community more easily find the general reference API samples for SharePoont. Target is to significantly grow also the non-SharePoint areas around Microsoft Graph, Office 365 API and also alternative technologies.
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, performance and quality improvements
- Added AddField extension methods on ContentType
- Added support for multi-value taxonomy fields in TaxonomyExtensions
- Add ClientTag entry for PnP Core Component usage - Http headers includes PnP Core version
- Automated documentation updated to md file
- Removal of deprecated methods
- Build and test automation improvements with unit test changes
- Preparations for SP2016 specific version - coming in May (sorry for the delay)
- Both PnP Core Nuget packages (cloud and on-premises) have been also updated accordingly.
- New solution Governance.ExternalSharing which can be used embower site owner and site collection administrators to change external sharing settings. Display's banner in the site, if it's externally shared.
- New solution Governance.ChangeOwnership which can be used for changing the Site Owner of a site collection in SharePoint Online by the current site owner or any site collection administrator. Out of the box in SharePoint Online, the Site Owner can only be changed in SharePoint Admin Center or PowerShell which requires the user to be part of SharePoint Online administrators group. This application gives the privilege for a Site Owner and Site Collection administrators to change the site collection ownership from a site collection itself.
- New solution Governance.AddInSecurity which can be used to encrypt client id and secrets for the add-ins in secure ways.
- New sample MicrosoftGraph.Cordova.Mobile which illustrates how to use the Microsoft Graph API to retrieve data from Office 365 using the REST API and OData.
- New sample MicrosoftGraph.Office.QuickContacts which illustrates how you could use the Microsoft Graph to quickly find contacts on mobile devices.
- New sample MicrosoftGraph.iOS.Objective-C.SendMail which showcases showcases the Microsoft Graph SDK for iOS in a simple iOS application using the Objective-C language.
- New sample MicrosoftGraph.iOS.Swift.SendMail which showcases the Microsoft Graph SDK for iOS in a simple iOS application using the new Swift language.
- Updated Provisioning.UX.App provisioning solution with small polishing changes.
- Updated UserProfile.BatchUpdate.API sample to match released blog post.
- Updated PnP-PowerShell Commands with new CommandLets and with few fixes
- Overall quality improvements and bug fixes
- Additional testing included
- Updated documentation for CmdLets
- Updates to the PnP Partner Pack
- General changes in the current implementation
PnP Guidance articles
The PnP Guidance repository contains guidance articles which are mostly being published atMSDN 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 there was updates on the both MSDN and GitHub artciles to ensure that both sides are in sync and there's matching page in the GitHub. Target is to update the MSDN based on community contributions.
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 http://aka.ms/OfficeDevPnPVideos. This location contains already significant amount of detailed training material, demo videos and community call recordings.
Key contributors for the April 2016 release
Here’s the list of active contributors (in alphabetical order) during past month in PnP repositories. PnP is really about building tooling 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 from the behalf of the community. You are making a difference!
- Arto Kaitosaari (Affecto Oy) - @artokai
- Bill Ayers (Flow Simulation Ltd.) - @SPDoctor
- Bob German (BlueMetal) - @Bob1German
- Daniel Laskewitz (Sogeti) - @laskewitz
- Erwin van Hunen (Rencore) - @erwinvanhunen
- Ivan Vagunin (KnowIt) - @ivagunin
- Ivan Peters (Information Leadership) - IvanTheBearable
- Julian Knight (Totally Information) - @knightnet
- Julie Turner (BlueMetal) - jfj1997
- Lane Goolsby (ThreeWill) - @lanegoolsby
- Luis Mañez (ClearPeople) - @luismanez
- Marc D Anderson (Sympraxis Consulting LLC) - @sympmarc
- martinlingstuyl (GitHub alies) - martinlingstuyl
- Matt Carter (BlueSky Sharepoint Consulting) - m-carter1
- Nick van den Heuvel (Sogeti) - nickvdheuvel
- Ole Martin Pettersen (Puzzlepart AS) - @olemartinit
- Paolo Pialorsi (PiaSys.com) - @PaoloPia
- Patrik Björklund (Cognit Consulting AB) - @pbjorklund
- Paul Schaeflein - @paulschaeflein
- Pieter Veenstra (Bluesource) - @PieterVeenstra
- Radi Atanassov (OneBit Software) - @RadiAtanassov
- Raja Shekar Reddy Bhumireddy - rajashekarusa
- Stefan Bauer (n8d.at) - @StfBauer
- Tri Nguyen (qssolutions) - mtringuyen
- Waldek Mastykarz (Rencore) - @waldekm
- Will (Socal) - nerdondon
Here’s the list of Microsoft people who have been closely involved on the PnP work during last month.
- Antons Mislevics (Microsoft) - GitHub
- Bert Jansen (Microsoft) - @O365Bert
- Brian Michely (Microsoft) - @brianmichely
- Chandrasekar Natarajan (Microsoft) - chandrasekarngit
- Dan Budimir (Microsoft) - MSDN blog
- David Rei (Microsoft) - MSDN blog
- Frank Marasco (Microsoft) - @frank_marasco
- Kiki Shuxteau (Microsoft)
- Min Gao (Microsoft) - gmfirefox
- Neil Hodgkinson (Microsoft) - GitHub
- Patrick Rodgers (Microsoft) - GitHub
- Ron Tielke (Microsoft)
- Roy Harper (Microsoft) - GitHub
- Sami Nieminen (Microsoft)
- Simon Jaeger (Microsoft) - @simonjaegr
- Vesa Juvonen (Microsoft) - @vesajuvonen
Here's some statistics from the PnP, PnP PowerShell and PnP Sites Core (core component) repository.
Contributions at PnP repository
Traffic at PnP repository
Contributions at PnP Sites Core repository
Traffic from PnP Sites Core repository
Contributions at PnP PowerShell repository
Traffic from PnP PowerShell repository
See About Repository Graphs for more details on above statistics.
- April 2016 monthly community call is on 12th of April at 8 AM PST / 5 PM CET for latest release details with demos - Download invite with detailed schedule for your time zone fromhttp://aka.ms/OfficeDevPnPCall.
- Following master merge will happen on 6th of May and May community call is on 10th of May 2016
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, Office 365, Microsoft - 12th of April 2016