Office 365 and SharePoint Patterns and Practices (PnP) August 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 Dev and 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 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 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? – Web Cast
- Office Dev PnP Webcast – How to contribute to Office Dev PnP initiative? – Web Cast
Some key statistics around PnP program from August 2016 release
- GitHub repository forks at different repositories
- PnP main repository – 1693
- PnP Sites Core – 248
- PnP PowerShell – 186
- PnP JS Core – 60
- Yammer group members – 4668
- Unique visitors during past 2 weeks cross PnP repositories – 10795
- Merged pull requests cross PnP repositories (cumulative) – 2137
- Closed issues and enhancements ideas cross PnP repositories (cumulative) – 722
- PnP Core component NuGet package downloads – 41953
- Unique visitors in PnP MSDN pages during June-July 2016 – 38615
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
August 2016 monthly community call
Agenda for the Tuesday 9th of August community call at 8 AM PDT / 5 PM CET:
- Summary on the August release, latest contributions and other updates in program – Vesa Juvonen ~20-25 min
- Demo on updated PnP Provisioning Engine capabilities – Paolo Pialorsi (Piasys.com) ~10-15 min
- Demo on ASP.net Core SP Token handling – Radi Atanassov (OneBit Software) ~10-15 min
- Demo on updated PnP JavaScript Core component v1.0.3 – Patrick Rodgers ~10-15 min
If you have any questions, comments or feedback, please participate in our discussions in theOffice 365 Patterns and Practices Yammer group at http://aka.ms/OfficeDevPnPYammer or in the new Office Network under SharePoint developer group. Notice that since Yammer Office 365 network will be shut down on 1st of September, we would recommend moving the questions and discussions to Office 365 Network, so that we can continue the lively discussion around the PnP initiative as well.
PnP Office Hours and Special Interest Group (SIGs) for JavaScript development
We started bi-weekly PnP Office Hours during February 2016 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 discussions around design decisions, challenges and possible issues in the PnP deliverables. You can download invite for the bi-weekly meeting from following location. Recording of these Office Hours are shared in the PnP Yammer group and later in YouTube channel (created soon) within 24 hours after the recording was done.
Notice. Next Office Hours will be on Wednesday 10th of August – If you have questions for example around the code-behind sandbox solution support in the SharePoint Online, please join this call.
Special Interest Groups (PnP SIGs) concept was created to ensure that you can more easily get involved in the PnP initiative for the specific topic. We piloted this more with JavaScript SIG, which has been quite popular and has produced already new JavaScript Core component for the JavaScript development.
- Yammer group – http://aka.ms/OfficeDevPnPYammerSPClient
- Gitter – https://gitter.im/OfficeDev/PnP-JS-Core
- Invite to weekly call – http://aka.ms/OfficeDevPnPSPClientSIGCall
We are looking into possibility to start other SIGs during autumn 2016 for specific topics.
PnP Weekly Web Casts
We started new PnP Weekly Web Cast on October 2015 and have continued releasing new video web casts for each week. All web casts will be to the PnP Channel 9 section. Here’s the new web casts released after the last monthly release.
- 6th of June – Introduction to Microsoft Graph .NET SDK
- 13th of June – Introducing SharePoint WebHooks
- 20th of June – Converting existing JavaScript apps to SharePoint Framework
- 8th of August – Integrating Angular 1.x to SharePoint Framework Client Side web part
We are looking into moving the videos to YouTube during autumn 2016, so that they are more easily consumable.
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.
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-JS-Core – Office Dev PnP Core component for JavaScript
- 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
Note. We are looking again to do some level of refactoring of the PnP repositories due the upcoming model for the new SharePoint Framework. We’ll come back on this slightly later when things are fully locked.
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
Latest changes
Provisioning Engine
The first version of the PnP remote provisioning engine was released with the May 2015 release. For the August 2016 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 August 2016 release:
- General overall quality and performance improvements for on-premises and online
- Support for the 2016-05 provisioning schema added
- Navigation element support – structural and managed metadata driven navigation
- ForceCheckout setting support for list level
- Support to break role inheritance for sub sites (copy permission options)
- Support for Contributors and Managers for TermGroups
- BaseSiteTemplate support
- Support for user custom actions in list level
- Support for reused and deprecated terms
- Support for ITemplateProviderExtensions, which can be used to execute custom code before or after template extraction and saving
- Remove custom action support for web and site collection level
- Search setting handling for both web and site collection level
- Support removing default content type from lists and libraries
- Added support for Directories in template handling to connectors
- Updates on OpenXML handling around the pnp file type handling
- Updates on workflow provisioning handling
- Updates on web part handling in home page extraction logic
- Calculate field handling fixes when field is located in root web or when referenced as site columns
- Significant 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.
PnP JavaScript Core library v1.0
PnP JavaScript Core Library has moved to version 1.0.3. This is JavaScript library which will increase productivity of developers when you are developing JavaScript based customizations on top of SharePoint. Library has been released as a npm package and you can find the source code from GitHub. PnP JS Core library is being developed and coordinated by the PnP Special Interest Group for JavaScript, which has weekly meetings around this development effort and general topics on upcoming SharePoint Framework. PnP JS Core library is developed using typical open source web stack tooling, so that it’s fully aligned on the future usage with SP Framework.
This is similar effort as what PnP initiative previously has done with the PnP CSOM Core Component together with community.
You can read more details around the v1.0 capabilities from following release blog post at MSDN or from GitHub wiki pages:
- SharePoint Patterns and Practices SharePoint JavaScript Library 1.0.0
- PnP JS Core Library – GitHub Wiki pages
PnP library
Here’s updates cross the PnP code sample library 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)
- Improvements in workflow extension methods
- General bug fixing, performance and quality improvements
- Updated to use latest CSOM version for SharePoint Online
- Automated documentation updated to md file
- Removal of deprecated methods (methods are 2 releases in the code after deprecation)
- Build and test automation improvements with unit test changes
- All PnP Core Nuget packages (cloud and on-premises) updated with new version
- PnP JavaScript Core: Version 1.0.3 finalized:
- Official v1.0.3 version released as npm package
- New sample SharePoint.RESTAPI which illustrates how to play with the Microsoft SharePoint REST API from PowerShell or from SharePoint add-in.
- New sample MicrosoftGraph.Office365.DotNetSDK which illustrates how to use the Microsoft Graph API SDK for .NET from console application and asp.net MVC application.
- New sample Outlook.ConsumeGraphAPI his is a sample Outlook Add-in – built using Microsoft Visual Studio 2015 – that consumes the Microsoft Graph API via REST/AJAX, using ADAL.JS and the current user’s context in Office 365.
- Updated sample SharePoint.PnP-JS-Core with set of interactive demos for using the PnP JavaScript Core Library. Implemented as a SharePoint hosted add-in, so that you can easily try them out and see live results
- Updated MicrosoftGraph.Office365.Generic sample with additional demos on using Microsoft Graph around Office 365
- Updated sample BusinessApps.O365ProjectsApp which contains code samples for upcoming book “Programming Office 365” for Microsoft Press. In particular it contains samples for: Office 365 Applications, Remote Timer Job and Graph SDK
- Updated Core.TaxonomyPicker component with small styling fixes and improved handling of the dom structure updates
- Updated solution Provisioning.VSTools to support VS2015, including numerous improvements
- Updated solution Tenant Information Panel with additional fixes and capabilities
- Script to get inventory of all SharePoint sandbox solutions from Office 365 / SharePoint Online – SharePoint.Sandbox.ListSolutionsFromTenant
- Updated PnP-PowerShell Commands with new CommandLets and with few fixes
- Overall quality improvements and bug fixes
- Allow inclusion of .pnp files to template packages
- New CmdLets Get-SPORequestAccessEmails and Set-SPORequestAccessEmails for controlling request access emails on sites
- New CmdLet Convert-SPOFolderToProvisioningTemplate for creating pnp template files from folder
- Updated Apply-ProvisioningTemplete and Get-Provisioning template to support template provider extensions (custom code executed when extracting template)
- Updated Connect-SPOnline to support forms based authentication (on-premises)
- Updated Get-ProvisioningTemplate CmdLet to support setting display name and image preview
- Get-ProvisioningTemplated updated to support extraction of term group security (managers and contributors)
- Updated Set-SPOWeb to have description, master page URL and custom master page URL properties
- Updated New-SPOProvisioningTemplateFromFolder for better asset file handling
- Added support for latest CSOM
- Updates on the test cases
- Updated help details for CmdLets
- Updated documentation for CmdLets
- Updates to the PnP Partner Pack
- Small adjustments around the implementation for upcoming v2.0 release with open source template gallery
- Updated to use the latest Nuget package for SharePoint Online
PnP Guidance articles
The PnP Guidance repository contains guidance articles which are published at MSDN. Starting from 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 on your contributions around real life learnings in different areas. Read more details around this open publishing model from following blog post:
Here’s new guidance articles since the last release communications
See MSDN articles from the PnP MSDN section at http://aka.ms/OfficeDevPnPMSDN. Looking forward on seeing your contributions on this area as well. If you disagree or see something what you don’t like, let us know using issue list or suggest a change using a pull request.
PnP Guidance videos
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. Since last release communications, we have released one additional guidance video:
Key contributors for the August 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!
- Andreas Hebeisen – andreashebeisen
- Chuck Cassel – casselc
- Chau (Joe) Nguyen – chauey
- Eric Scott Owens (Computer Enterprises Inc.) – eric-scott-owens
- Erwin van Hunen (Rencore) – @erwinvanhunen
- Daniel Laskewitz (Sogeti) – @laskewitz
- Danny Engelman (365CSI.com) – @Danny_Engelman
- DevArvindsa alias – DevArvindsa
- Dragan Panjkov – @panjkov
- Elio Struyf – @eliostruyf
- Gautam Sheth (Rapid Circle) – gautamdsheth
- Ivan Vagunin (Knowit Oy) – @ivagunin
- johnnygoodey GitHub alias – johnnygoodey
- jornh GitHub alias – jornh
- kenglover GitHub alias – kenglover
- Massimo Prota (Rapid Circle) – @massimoprota
- Matt Carter (Business Cloud Integration Ltd) – m-carter1
- Mauricio nunes – mauricionr
- Michael Schau (WorkPoint A/S) – @SchauDK
- Michael Toole (Perficient, Inc.) – miket9884
- Mikael Svenson (Puzzlepart) – @mikaelsvenson
- Paolo Pialorsi (PiaSys.com) – @PaoloPia
- Pieter Veenstra (Bluesource) – @PieterVeenstra
- Radi Atanassov (OneBit Software) – @RadiAtanassov
- Sergei Sergeev – s-KaiNet
- Shantha Kumar T – sksnips
- Staffan Nelemans – StaffanNelemans
- Stephan Steiger (IOZ AG) – @robi26
- v-raredd GitHub alias
- Waldek Mastykarz (Rencore) – @waldekm
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 this 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 on the PnP work during last month.
- Antons Mislevics (Microsoft) – GitHub
- Bert Jansen (Microsoft) – @O365Bert
- Brian Michely (Microsoft) – @brianmichely
- Dan Budimir (Microsoft) – MSDN blog
- Frank Marasco (Microsoft) – @frank_marasco
- Karine Bosch (Microsoft) – @kboske
- Kiki Shuxteau (Microsoft)
- Koen Zomers (Microsoft) – @koenzomers
- Laura Graham (Microsoft) – Lauragra
- Mike Morrison (Microsoft) – mike-morrison
- Neil Hodgkinson (Microsoft) – GitHub
- Patrick Rodgers (Microsoft) – GitHub
- Rob Howard (Microsoft) – robmhoward
- Roy Harper (Microsoft) – roharp
- Vesa Juvonen (Microsoft) – @vesajuvonen
Latest traffic statistics
Here’s traffic statistics from the PnP, PnP PowerShell, PnP Sites Core (.NET) and JavaScript Core component repository.
Traffic at PnP repository
Traffic from PnP Sites Core repository
Traffic from PnP PowerShell repository
Traffic from PnP JavaScript Core Component repository
See About Repository Graphs for more details on above statistics.
Next steps
- August 2016 monthly community call is on 9th of August at 8 AM PDT / 5 PM CET for latest release details with demos – Download invite with detailed schedule for your time zone fromhttp://aka.ms/OfficeDevPnPCall.
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft – 9th of August 2016