Office 365 Developer Patterns and Practices – May 2016 release
[Cross posting from dev.office.com]
Office 365 Developer Patterns and Practices (PnP) May 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 May 2016 release
- GitHub repository forks at different repositories
- PnP main repository - 1498
- PnP Sites Core - 196
- PnP PowerShell - 152
- Yammer group members - 4329
- Unique visitors during past 2 weeks cross PnP repositories - 9872
- Merged pull requests cross PnP repositories - 1867
- Closed issues and enhancements ideas cross PnP repositories - 570
- PnP Core component NuGet package downloads - 31184
- Unique visitors in PnP MSDN pages during April 2016 - 25217
Main resources around PnP program
- PnP under dev.office.com – https://aka.ms/OfficeDevPnP - One location for all the resources and news around PnP
- PnP GitHub - https://aka.ms/OfficeDevPnPGitHub - main repository
- PnP MSDN pages - https://aka.ms/OfficeDevPnPMSDN
- PnP Yammer group - https://aka.ms/OfficeDevPnPYammer
- PnP Videos at Channel 9 - https://aka.ms/OfficeDevPnPVideos
- PnP training package (videos in Channel 9) - https://aka.ms/OfficeDevPnPTraining
- Presentations at docs.com - https://docs.com/OfficeDevPnP
- PnP Guidance Repository – https://aka.ms/OfficeDevPnPGuidance
May 2016 monthly community call
Agenda for the Tuesday 10th of May community call at 8 AM PDT / 5 PM CET:
- Summary on the May release, community survey results and other updates in program - Vesa Juvonen ~20-25 min
- Demo on new PnP JavaScript Core component - Patrick Rodgers ~10-15 min
- Demo on MicrosoftGraph.Cordova.Mobile - Bill Ayers (Flosim) ~10-15 min
- Open discussion around the SharePoint Framework - Q&A ~10-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 https://aka.ms/OfficeDevPnPYammer. We already have more than 4300 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.
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 invite from following location. Recording of these Office Hours are shared in the PnP Yammer group within 24 hours after the recording was done.
Due constantly growing interest on the PnP program, we also are piloting Special Interest Groups (PnP SIGs), which are more targeted on specific topic, like SharePoint Client Side (JavaScript) development or other areas. We are currently piloting this model with SIG for Client Side development, which have had great interest. Client Side Development SIG is creating its own JavaScript Core component using normal web stack tooling, which aligns on the recently announced upcoming SharePoint Framework. Weekly calls are around 50%-50% on the JS Core component development and discussions around the SharePoint Framework.
- Yammer group – https://aka.ms/OfficeDevPnPYammerSPClient
- Invite to weekly call - https://aka.ms/OfficeDevPnPSPClientSIGCall
You can find more around PnP Office Hours and Special Interest Groups (SIGs) from following blog post or check the web cast around the JavaScript SIG for the specific details.
- Introducing Office Dev Patterns and Practices Office Hours and Interest Groups
- Office Dev PnP Web Cast – Introducing PnP JavaScript Special Interest Group
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.
- 11th of April - Introducing PnP JavaScript Special Interest Group
- 18th of April - SharePoint Client Side Object model versioning for your customizations
- 25th of April - JavaScript and Microsoft Graph (Quick Contact Sample)
- 2nd of May - Managing your app principals in Office 365 - tooling and scripts
- 9th of May - Getting started with the web stack in SharePoint development
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 May 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 May release:
- General overall quality and performance improvements
- Updated base templates for the SPO, 2013 and 2016 - used in delta handling
We are planning to release new schema version and some new capabilities as part of the June 2016 release. This new version will contain few missing pieces from the current design, which will be also addressed gradually in the PnP provisioning engine.
PnP Core Component Nuget - renaming
As part of the May 2016 release, we are also releasing native support for SharePoint 2016 with the PnP Core Component. As part of this release, we have also updated the Nuget package naming and would suggest you to take advantage of the updated packages in your solutions.
Here's the new names for the Nuget packages based on your target environment
- SharePoint 2013 - SharePointPnPCore2013
- SharePoint 2016 - SharePointPnPCore2016
- SharePoint Online / Office 365 - SharePointPnPCoreOnline
Notice. We have also updated old Nuget packages with the latest version and keep on doing this also during June 2016 release, but will deprecated them after that. We suggest that you'd use the new Nuget packages in your solution. Please make sure also that you use the right Nuget package based on your target environment. Regardless of multiple target environments, you can still use one code base for all of them, if needed. This model is explained in recent PnP Web Cast called SharePoint Client Side Object model versioning for your customizations.
PnP library
We have done general cleaning in the repository related on Nuget package updates and also removed some samples, which are no longer relevant. 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)
- Native SP2016 support included - notice new Nuget packages
- General bug fixing, performance and quality improvements
- Automated documentation updated to md file
- Removal of deprecated methods
- Build and test automation improvements with unit test changes
- Three new PnP Core Nuget packages (cloud and on-premises) have been released and old ones have been updated for easier transition.
- New solution Provisioning.VSTools , which demonstrates using the PnP provisioning engine within a Visual Studio extension package to assist with common deployment tasks for SharePoint assets. The VSTools extension package maintains the PnP provisioning engine XML file automatically as files are added or removed from the project instead of the developer having to fill out the file manually which usually results in missing items, misspelled items, etc.
- Updated Core.TaxonomyPicker component with better multi-lingual support.
- Updated Provisioning.UX.App provisioning solution with small updates
- Updated PnP-PowerShell Commands with new CommandLets and with few fixes - Updated latest on 10th of May to use the new Core Nugets
- Overall quality improvements and bug fixes
- New Invoke-SPOWebAction Cmdlet which lets to iterate sites, lists and list items and execute provided delegated methods on the target.
- Updated documentation for CmdLets
- Initial version of PnP-JS-Core JavaScript library which is released also as a NPM package. PnP JS Core library is targeted to increase your productivity around JavaScript driven development in SharePoint.
- Updates to the PnP Partner Pack
- Updated to use the latest Nuget package for SharePoint Online
PnP Guidance articles
The PnP Guidance repository contains guidance articles which are mostly being published at MSDN. Starting from end of May this process will be fully automated and there's automatic contributors list in the MSDN side showing who have been providing updates to these documents. We will be releasing significant amount of new material by end of May as part of introducing the new synchronization process around PnP MSDN pages.
See MSDN articles from the PnP MSDN section at https://aka.ms/OfficeDevPnPMSDN.
PnP Guidance videos
We did not release any new guidance videos 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 https://aka.ms/OfficeDevPnPVideos. This location contains already significant amount of detailed training material, demo videos and community call recordings.
Key contributors for the May 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!
- Arjan Cornelissen (Sogeti) - @arjancornelis
- Arto Kaitosaari (Affecto Oy) - @artokai
- Daniel Laskewitz (Sogeti) - @laskewitz
- Bill Ayers (Flow Simulation Ltd.) - @SPDoctor
- Bryon Chan - bryonchan
- Camille Mercado (Perficient, Inc.)
- Derek Smith - derek-smith
- Erwin van Hunen (Rencore) - @erwinvanhunen
- Ivan Vagunin (KnowIt) - @ivagunin
- Jerry Fetzer (Perficient) - jcfetzer
- Kristian Nagel - thenail
- Lane Goolsby (ThreeWill) - @lanegoolsby
- Lars Fernhomberg - lafe
- Luis Mañez (ClearPeople) - @luismanez
- Marc D Anderson (Sympraxis Consulting LLC) - @sympmarc
- Massimo Prota (Rapid Circle) - @massimoprota
- Matt Carter (BlueSky Sharepoint Consulting) - m-carter1
- Martin Segelfeldt (Knowit AB) - Segelfeldt
- Michael Toole (Perficient, Inc.) - miket9884
- Mårten af Sandeberg (Knowit AB) - afsandeberg
- Ole Martin Pettersen (Puzzlepart AS) - @olemartinit
- Paolo Pialorsi (PiaSys.com) - @PaoloPia
- Patrik Björklund (Cognit Consulting AB) - @pbjorklund
- Pieter Veenstra (Bluesource) - @PieterVeenstra
- Radi Atanassov (OneBit Software) - @RadiAtanassov
- Rajesh Sitaraman (SADA Systems) - @rjesh
- Russell Gove - russgove
- Stefan Bauer (n8d.at) - @StfBauer
- Tatjana Starovoitva (Perficient, Inc.)
- Thomas Berman (Advance) - thomasberman
- Tobias West (SCC) - tobiaswest83
- Waldek Mastykarz (Rencore) - @waldekm
- Warren Roscoe -warrenroscoe
- Will Don - nerdondon
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.
- Alex Randall (Microsoft) - @alex_randall_
- Antons Mislevics (Microsoft) - GitHub
- Bert Jansen (Microsoft) - @O365Bert
- Brian Michely (Microsoft) - @brianmichely
- Dan Budimir (Microsoft) - MSDN blog
- David Rei (Microsoft) - MSDN blog
- Frank Marasco (Microsoft) - @frank_marasco
- Kiki Shuxteau (Microsoft)
- Laura Graham (Microsoft) - Lauragra
- Neil Hodgkinson (Microsoft) - GitHub
- Patrick Rodgers (Microsoft) - GitHub
- Roy Harper (Microsoft) - roharp
- Vesa Juvonen (Microsoft) - @vesajuvonen
Latest statistics
Here's some statistics from the PnP, PnP PowerShell and PnP Sites Core (core component) repository. Traffic information is dependent on the time of the day it's collected, so final day is quite low right now, due morning schedule.
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.
Next steps
- May 2016 monthly community call is on 10th of May at 8 AM PDT / 5 PM CET for latest release details with demos - Download invite with detailed schedule for your time zone from https://aka.ms/OfficeDevPnPCall.
- Following master merge will happen on 3rd of June 2016 and June community call is on 14th of June 2016
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, Office 365, Microsoft - 9th of May 2016