SharePoint / Office Dev Patterns & Practices – September 2016 release
[Cross posting from dev.office.com]
Office 365 and SharePoint Patterns and Practices (PnP) September 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 SharePoint / Office Dev 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.
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. 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 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? - Webcast
- Office Dev PnP Webcast – How to contribute to Office Dev PnP initiative? - Webcast
Some key statistics around PnP program from September 2016 release
- GitHub repository forks at different repositories
- PnP main repository - 1759
- PnP Sites Core - 262
- PnP PowerShell - 193
- PnP JS Core - 66
- Yammer group members - 4695
- Unique visitors during past 2 weeks cross PnP repositories - 11326
- Unique visitors during past 2 weeks in SharePoint organization repositories - 3857
- Merged pull requests cross PnP repositories (cumulative) - 2295
- Closed issues and enhancements ideas cross PnP repositories (cumulative) - 815
- PnP Core component NuGet package downloads - 45845
- Unique visitors in PnP MSDN pages during August 2016 - 29438
Main resources around PnP program
- PnP under dev.office.com – https://aka.ms/SPPnP- One location for all the resources and news around PnP
- PnP GitHub - https://aka.ms/SPPnP-GitHub - main repository
- PnP MSDN pages - https://aka.ms/SPPnP-MSDN
- PnP Community Discussions - https://aka.ms/SPPnP-Community
- PnP Videos at YouTube - https://aka.ms/SPPnP-Videos
- PnP training package (videos in Channel 9) - https://aka.ms/OfficeDevPnPTraining
- Presentations at docs.com - https://aka.ms/SPPnP-Docs
September 2016 monthly community call
Agenda for the Tuesday 13th of September community call at 8 AM PDT / 5 PM CET:
- Summary on the September 2016 release and other program updates - Vesa Juvonen ~20-25 min
- What's new in PnP Partner Pack v2.0 - Paolo Pialorsi (Piasys.com) ~10-15 min
- Demo on new PnP Starter Intranet for SharePoint Online solution - Franck Cornu (CGI) ~10-15 min
- Demo on new SharePoint.React.SupportTicket sample - Brian Michely (Microsoft) ~10-15 min
If you have any questions, comments or feedback, please participate in our discussions in the new Microsoft Tech Community under SharePoint developer group. Notice that since Yammer Office 365 network will be shut down on 15th of September, would recommend moving the questions and discussions to new Microsoft Tech Community, so that we can continue the lively discussion around the PnP initiative as well.
PnP Office Hours
PnP Office Hours are bi-weekly calls where we talk about different topics around SharePoint engineering side and what's under development with PnP core team. These calls have also free Q&A section, if you have any questions around SharePoint development in on-premises or in cloud. Need to get recommendation to your design or having hard time with some APIs? - Drop by and we'll help you.
You can download invite for the bi-weekly meeting from following location.
All PnP Office Hours are being recorded and are available for view from PnP YouTube Channel. Here's the latest office hour recordings.
Notice. Next Office Hours will be on Wednesday 21st of September.
SharePoint Framework (SPFX) and JavaScript Special Interest Group (SIG)
harePoint Framework and JavaScript Special Interest Group (SIG) has weekly meetings to cover latest changes in the SharePoint Framework side, from engineering perspective and to cover also latest development related on the PnP JS Core library. These calls are designed to have 50%/50% of content and demos and there has been already great community demos on the new SharePoint Framework Client-side web parts. If you're interested on showing your code, just let us know.
- Invite to 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 cant' make the actual call. You can find the latest recordings from the PnP YouTube Channel. Here's the latest office hour recordings.
- 11th of August - PnP SPFx and JS SIG
- 18th of August - PnP SPFx and JS SIG
- 26th of August - PnP SPFx and JS SIG
- 1st of September - PnP SPFx and JS SIG
- 8th of September - PnP SPFx and JS SIG
PnP Weekly Webcasts
We started new PnP Weekly Webcast series on 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 from the PnP Channel 9 section. Here's the new web casts released after the last monthly release.
- 8th of August - Integrating Angular 1.x to SharePoint Framework Client Side web part
- 15th of August - PnP PowerShell - Getting started with latest updates
- 22nd of August - Building simple SharePoint Framework Client Web Part
- 29th of August - Building Angular SharePoint Framework Client Web Part
- 5th of September - Getting started with SharePoint Webhooks
- 12th of September - Referencing external JavaScript libraries from your client-side web part
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
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 faciliate community work.
- SP-Dev-Docs - Source for new SharePoint dev center documentation exposed from https://dev.office.com/sharepoint
- SP-Dev-Fx-WebParts - Client-side web part samples from community and engineering
- SP-Dev-Samples - Samples for add-ins, webhooks and other APIs
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 September 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 September 2016 release:
- General overall quality and performance improvements for on-premises and online
- Added support for IsVisible attribute for NavigationNode elements
- 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 Partner Pack 2.0
We are happy to release PnP Partner Pack v2.0 with significant new capabilities for partners and customers to use in their SharePoint Online deployment. PnP Partner Pack is a starter kit for building typical SharePoint customizations using add-in model techniques. It's Azure AD based deployment, which provides centralized control on site templates and branding management, among the other things. Here's the key capabilities in the PnP Partner Pack v2.0:
- Architectural changes
- Support for self-consistent Open XML .PNP template files, instead of .XML template files. Backward compatibility with already created .XML templates.
- Support for external template providers, and out of the box provider for the new SharePoint PnP Templates Gallery.
- Authorization layer to filter functionalities based on current user’s context.
- New Governance tools like:
- Capability to apply company-wide branding (logo, color palette, fonts, background image, JS embedding, etc.) for sites and sites collections created, as well as for already created ones.
- Capability to refresh/update templates for sites created with the PnP Partner Pack v. 2.0 in order to support solutions lifecycle management.
- Asynchronous batch creation of site collections, based on an input XML file.
- Implementation and UI changes:
- Updated to the latest release of PnP Core component and support for latest functionalities.
- Fully re-branded using Office UI Fabric styles.
- New set of MVC rendering templates supporting Office UI Fabric common components.
- New People Picker control based on Office UI Fabric and Microsoft Graph.
PnP JavaScript Core library v1.0
PnP JavaScript Core Library has moved to version 1.0.4. 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 SPFx and 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 development models 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.4 capabilities from following release blog post at MSDN or from GitHub wiki pages:
- SharePoint Patterns and Practices SharePoint JavaScript Library 1.0.4
- 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)
- Added support to set icon for weblogin form
- Updates for timerjob framework related on app-only handling with SPO and on-premises versions
- 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 (Online, SP2013 and SP2016) updated with new version
- PnP JavaScript Core : Version 1.0.4 released:
- Official v1.0.4 version released as npm package - check more details from following blog post
- New sample react-officegraph which illustrates how to Office Graph with SharePoint Framework (SPFx) client-side web parts
- New sample angular-ngofficeuifabric-todo which illustrates how to build SharePoint Framework (SPFx) client-side web part using Angular and ngOfficeUIFabric
- New sample WebHooks.List which is a reference implemention on making use of SharePoint webhooks in your applications
- New sample SharePoint.React.SupportTicket which illustrates how you can quickly build and package React forms with validation and send form data to a SharePoint list via the REST API
- New sample Provisioning.PnPDeployer.Console is a console application that makes it easy to deploy artifacts to SharePoint OnPremise/Online. Based on the PnP Provisioning Engine, it wraps the engine's main functionnalities and provides a new layer responsible for handling tokens, authentication, sequences and logging.
- New Solution Business.O365StarterIntranet Intranet projects shouldn’t have to reinvent the wheel every time for basic features (like navigation or multilingualism). This solution aims to provide the fundamental building blocks of a common intranet solution with SharePoint Online/Office 365 through a lightweight client side solution using the latest web stack development tools and frameworks.
- New Solution SharePoint.SandBoxTool which is a command line utility you can scan, download, analyze and if possible fix the sandbox solutions in your SharePoint environment. This tool uses multi-threading to improve performance, uses app-only permissions to be able to access all sites and can deal with throttling in case that would happen.
- Updated 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 to align with ASP.NET Core RTM version.
- Updated solution Provisioning.VSTools to support VS2015, including numerous improvements
- Updated PnP-PowerShell Commands with new CommandLets and with few fixes
- Overall quality improvements and bug fixes
- Added ClientTag based usage tracking for metrics
- Updated Set-SPOTheme to support theme reset
- Updated Set-DefaultColumnValues to support column defaults also for choice fields
- Updated Apply-ProvisionignTemplate to support in-memory templates
- Updated Add-SPOField to support associating site column to a list in sub site
- Updated Add-SPOFile with better file handling logic with different file statuses
- Updated Add-NavigationNode to fix issue with relative URLs
- 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
- As mentioned in specific chapter
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
- Sandbox solution transformation guidance - Web Parts
- Sandbox solution transformation guidance - Event Receivers
- Sandbox solution transformation guidance - Feature Receivers
- Sandbox solution transformation guidance - InfoPath Forms with Code
See MSDN articles from the PnP MSDN section at https://aka.ms/OfficeDevPnPMSDN
PnP Guidance videos
You can find all PnP videos from our YouTube Channel at https://aka.ms/sppnp-vidoes. 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:
Since YouTube channel is relatively new, some of the PnP videos are also in the PnP Channel 9 video blog.
Key contributors for the September 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!
- Bill Ayers (Flow Simulation Ltd.) - @SPDoctor
- Dan Beaulieu - dbeaulieu
- Erwin van Hunen (Rencore) - @erwinvanhunen
- Elio Struyf - @eliostruyf
- Franck Cornu (CGI) - @FranckCornu
- John Liu (SharePoint Gurus) - @johnnliu
- Luis Mañez (ClearPeople) - @luismanez
- Mauricio nunes - mauricionr
- Michael Schau (WorkPoint A/S) - @SchauDK
- Michael Toole (Perficient, Inc.) - miket9884
- Paolo Pialorsi (PiaSys.com) - @PaoloPia
- Pieter Veenstra (Triad) - @PieterVeenstra
- Radi Atanassov (OneBit Software) - @RadiAtanassov
- Shantha Kumar T - sksnips
- Simon-Pierre Plante (SPP Technologies) - spplante
- Stephan Steiger (IOZ AG) - @robi26
- Thomas Berman (DQC Sverige) - thomasberman
- Todd Baginski (Canviz) - @toddbaginski
- Waldek Mastykarz (Rencore) - @waldekm
- Wictor Wilen (Avanade) - @wictor
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) - antonsmislevics
- Bert Jansen (Microsoft) - @O365Bert
- Brian Michely (Microsoft) - @brianmichely
- Chakkaradeep (Chaks) Chinnakonda Chandran (Microsoft) - @chakkaradeep
- Dan Budimir (Microsoft) - MSDN blog
- Frank Marasco (Microsoft) - @frank_marasco
- Kiki Shuxteau (Microsoft)
- Koen Zomers (Microsoft) - @koenzomers
- Laura Graham (Microsoft) - Lauragra
- Mike Morrison (Microsoft) - mike-morrison
- Olivier Carpentier (Microosft) - @OlivierC
- Patrick Rodgers (Microsoft) - @mediocrebowler
- Vesa Juvonen (Microsoft) - @vesajuvonen
Latest traffic statistics
Here's traffic statistics from the PnP, PnP PowerShell, PnP Sites Core (.NET) and JavaScript Core component repositories.
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
- September 2016 monthly community call is on 13th of September 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/sppnp-call.
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 12th of September 2016