Office 365 Developer Patterns and Practices–June 2016 release
[Cross posting from dev.office.com]
Office 365 and SharePoint Patterns and Practices (PnP) June 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 and SharePoint 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 June 2016 release
- GitHub repository forks at different repositories
- Yammer group members - 4470
- Unique visitors during past 2 weeks cross PnP repositories - 11163
- Merged pull requests cross PnP repositories - 2313
- Closed issues and enhancements ideas cross PnP repositories - 636
- PnP Core component NuGet package downloads - 35026
- Unique visitors in PnP MSDN pages during May 2016 - 21963
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
June 2016 monthly community call
Agenda for the Tuesday 14th of June community call at 8 AM PDT / 5 PM CET:
- Summary on the June release, community survey results and other updates in program - Vesa Juvonen ~20-25 min
- Demo on ASP.net Core SP Token handling - Radi Atanassov (OneBit Software) ~10-15 min
- Demo on new file handling capabilities in SPO in PnP PowerShell - Mårten af Sandeberg (Knowit AB) ~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 http://aka.ms/OfficeDevPnPYammer. We already have more than 4400 members in this group with lively discussions on different SharePoint and Office 365 development related topics. This is the most active developer group in the Office 365 Technical network and we are absolutely proud and thankful of that.
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.
- 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 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.
- 9th of May - Getting started with the web stack in SharePoint development
- 15th of May - Getting started with SharePoint Framework
- 23rd of May - Introduction to Bulk UPA Custom Profile Properties Update API
- 30th of May - Preparing for SharePoint Framework - What should I learn?
- 6th of June - Introduction to Microsoft Graph .NET SDK
Notice that we'll have a summer break on the web cast publishing and the last web cast before the break will go out on Monday 20th of June 2016. We'll continue with web casts during August 2016.
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-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
The first version of the PnP remote provisioning engine was released with the May 2015 release. For the Juhe 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 June 2016 release:
- General overall quality and performance improvements for on-premises and online
- New OpenXML based support for provisioning templates - When serializing template with assets, you can generate automatically .pnp file, which contains all the assets related on the template
- Support for lookup fields pointing from sub site to root web
- Support for folders in AzureStorageConnector
- Support for extracting multi-lingual resources values
- Other multi-lingual support 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.
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:
- PnP JS Core Library - GitHub Wiki pages
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)
- Eanbled and DisableResponsiveUI extension methods to web object
- Support for adding navigation nodes at beginning or end
- Set SearchCenter URLs at site level
- Extension methods to start a new workflow instance from web or site level
- Convert a folder to document set
- 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
- Build and test automation improvements with unit test changes
- All PnP Core Nuget packages (cloud and on-premises) updated with new version
- Official v1.0 version released as npm package
- New sample Core.DownloadMultipleFilesJS that shows how to add download multiple files functionality to SharePoint document libraries by adding "download all files" and "download files as zip" to library ribbon as custom actions.
- New 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
- New solution AspNetCore.Authentication An ASP.NET Core implementation of the TokenHelper and SharePointContext classes for use in SharePoint Apps. This library (and sample) demonstrates how to get ASP.NET Core provider-hosted apps authenticated through SharePoint.
- Updated Provisioning.Extensibility sample to use latest extensibility interface
- Updated Core.ProfilePictureUploader to support multi-lingual my sites as well
- Updated Core.TaxonomyPicker component with small styling fixes and improved handling of the dom structure updates
- Updated Provisioning.UX.App provisioning solution with small updates
- Updated solution Provisioning.VSTools with small adjustments and bug fixes
- Updated PnP-PowerShell Commands with new CommandLets and with few fixes
- Overall quality improvements and bug fixes
- Added support for new pnp OpenXML templates
- -CreateDrive option for Connect-SPOnline CmdLets for file system like access to SPO sites
- New CmdLet Get-SPOFolderItem for file access in SPO
- New CmdLets Enable-SPOResponsiveUI and Disable-SPOResponsiveUI for applying PnP Responsive UI package to sites with single Cmdlet call
- New CmdLet Add-SPODocumentSet to add a new document set
- New CmdLet Remove-SPOFolder
- Updated help details for CmdLets
- New Invoke-SPOWebAction Cmdlet which lets to iterate sites, lists and lsit items and execute provided delegated methods on the target.
- Updated documentation for CmdLets
- Updates to the PnP Partner Pack
- Small adjustments around the implementation for upcoming v2.0 release (later)
- Setup guidance improvements
- Updated to use the latest Nuget package for SharePoint Online
PnP Guidance articles
he PnP Guidance repository contains guidance articles which are published at MSDN. Starting from end of May 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 a sample article with Contribute option and list of contributors for it
As part of this change, we also released significant amount of new content in the MSDN. You can find for example farm solution to add-in model transformation recipes in the MSDN now at following location
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 http://aka.ms/OfficeDevPnPVideos. This location contains already significant amount of detailed training material, demo videos and community call recordings. We are considering option to move to Youtube with the video channel for more control with play lists, so that you can find more easily what you are looking for.
Key contributors for the June 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!
- Alex Angas - @AlexAngas
- Alexander Shelopukho (VirtoSoftware) - biogenez
- Arto Kaitosaari (Affecto Oy) - @artokai
- Bruno Krieger (IOZ AG) - brunokrieger
- casselc GItHub alias - casselc
- Christian Glessner (Experts Inside GmbH) - cglessner
- Eric Scott Owens (Computer Enterprises Inc.) - eric-scott-owens
- Erwin van Hunen (Rencore) - @erwinvanhunen
- Daniel Laskewitz (Sogeti) - @laskewitz
- Danny Engelman (365CSI.com) - @Danny_Engelman
- Derek Smith - derek-smith
- Dragan Panjkov - @panjkov
- Gautam Sheth (Rapidcircle) - gautamdsheth
- Ivan Vagunin (Knowit Oy) - @ivagunin
- Ivaylo Kunev - pr0peller
- Jens Otto Hatlevold (Bouvet ASA) - jensotto
- Kim Pihlström (Onsight) - @kimpihlstrom
- Lars Fernhomberg - lafe
- Leo Forner - lforner
- Luis Mañez (ClearPeople) - @luismanez
- Marc D Anderson (Sympraxis Consulting LLC) - @sympmarc
- Massimo Prota (Rapid Circle) - @massimoprota
- Mårten af Sandeberg (Knowit AB) - afsandeberg
- Martin Lingstuyl (I4-You Business Solutions) - martinlingstuyl
- Martin Segelfeldt (Knowit AB) - Segelfeldt
- Michael Schau (WorkPoint A/S) - @SchauDK
- Michael Toole (Perficient, Inc.) - miket9884
- Mikael Svenson (Puzzlepart) - @mikaelsvenson
- Nigel Price - @Nigel_Price
- Oaden GitHub alias - Oaden
- Ole Kristian Mørch-Storstein (Puzzlepart) - Blog
- 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
- Ronald Booden (www.booden.net)
- Russell Gove - russgove
- Stefan Bauer (n8d.at) - @StfBauer
- Stephan Steiger (IOZ AG) - @robi26
- Tobias West (SCC) - tobiaswest83
- Velin Georgiev (OneBit Software) - @VelinGeorgiev
- Waldek Mastykarz (Rencore) - @waldekm
- Will Don - nerdondon
- 2P2-Anthony alias - 2P2-Anthony
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
- Mike Morrison (Microsoft) - mike-morrison
- Neil Hodgkinson (Microsoft) - GitHub
- Patrick Rodgers (Microsoft) - GitHub
- Roberto Sonnino (Microsoft) - @robertos_br
- Roy Harper (Microsoft) - roharp
- Vesa Juvonen (Microsoft) - @vesajuvonen
Latest traffic statistics
Traffic at PnP repository
Traffic from PnP Sites Core repository
Traffic from PnP PowerShell repository
See About Repository Graphs for more details on above statistics.
- June 2016 monthly community call is on 14th of June at 8 AM PST / 5 PM CET for latest release details with demos - Download invite with detailed schedule for your time zone from http://aka.ms/OfficeDevPnPCall.
- We'll have a summer break for the releases and following master merge will happen on 5th of August 2016 and August community call is on 9th of August 2016. Community call invite will be updated late June with updated connection information. During this summer break, we won't be doing master merge (monthly release), but team continues working in GitHub and in Yammer.
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, Office 365, Microsoft - 10th of June 2016