SharePoint Patterns & Practices – June 2017 release

SharePoint / Office 365 Dev Patterns and Practices (PnP) June 2017 release is out with new contributions from the community to 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 Patterns & Practices (PnP)?

SharePoint / Office Dev Patterns and Practices 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.

PnP is owned and coordinated by SharePoint engineering, but this is work done by the community for the community. 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, the 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 the 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 in getting more closely involved, please check the following guidance from our GitHub wiki or a referenced PnP Webcast.

Some key statistics around PnP program from May 2017

Main resources around SharePoint PnP and SharePoint development

June 2017 monthly community call

Agenda for the Tuesday 13th of June community call at 8 AM PST / 5 PM CET:

  • Summary on the June 2017 release and other program updates - Vesa Juvonen ~15 min
  • Demo on new SPFx web part react-side-panel and SPFx field customizer react-field-slider - Alex Terentiev (SharePointalist) ~15 min
  • Demo on "concrete example of a bot integration with intranet solution", which is part of the PnP Starter Intranet - Franck Cornu (aequos) ~15 min
  • Demo on new sample Portal.DataAccessLayer related on the well-performing publishing portal guidance - Ron Tielke (Microsoft) ~15 min
  • Q&A on SharePoint development topics

Monthly community call will get recorded and release to PnP YouTube channel typically within 24 hours after the recording is ended. If you have any questions, comments or feedback, please participate in our discussions in the Microsoft Tech Community under SharePoint developer group

PnP Weekly Webcasts

We started new PnP Weekly Webcast series in 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 on the PnP Channel 9 section. Here are the new webcasts released after the last monthly release.

PnP Sites Core, PnP PowerShell and provisioning engine Special Interest Group (SIG)

PnP Sites Core, PowerShell and Provisioning Special Interest Group (SIG) have bi-weekly meetings to cover the latest development in the PnP CSOM core component, PnP PowerShell and in the PnP remote provisioning engine. We do touch also generic SharePoint development practices around remote APIs in these calls. These calls have also free Q&A section if you have any questions around SharePoint development in on-premises or in the cloud. Need to get a recommendation for your design or having a hard time with some APIs? - Drop by, ask a question and we'll help you.

You can download invite for the bi-weekly meeting from the following location.

All SIG meetings are being recorded and are available for view from PnP YouTube Channel. Here are the latest recordings from the SIG calls.

  • 31st of May - Upcoming PnP Provisioning Engine schema improvements. Introduction and live demo around the Office 365 CDN
  • 17th of May - SharePoint Development Build 2017 announcements
  • 3rd of May - General status updates. Demo on the Modern UI Customizer analyzer. Q&A

Notice. Last SIG for PnP Component / PowerShell before small summer break will be on Wednesday 14th of June - If you have questions around these topics, please join this call and use the opportunity to ask questions from SP Engineering and PnP Core team. After this call, this particular SIG goes for a summer break and will be restarted early August. 

SharePoint Framework (SPFX) and JavaScript Special Interest Group (SIG)

SharePoint Framework and JavaScript Special Interest Group (SIG) has bi-weekly meetings to cover latest changes in the SharePoint Framework side, from the engineering perspective and to cover also latest development related to 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 in showing your code, just let us know.

All SPFx and JS SIG meetings are recorded, so that you can check the demos and discussions if you can't make the actual call. You can find the latest recordings from the PnP YouTube Channel. Here are the latest recordings.

  • 8th of June - Latest on SPFx and PnP JS Core. Demos on SPFx Extensions dev preview and using PnP JS Core in Node.js with help of sp-pnp-node
  • 25th of May - Latest on SPFx and PnP JS Core. Demos on SPFx Visual Studio Extension and how to get started with React TypeScript Starter.
  • 11th of May - Latest on SPFx and PnP JS Core. Preview on the demo that was shown in the Build 2016 later on the same day.

Notice. Next SIG for SharePoint Framework and JavaScript development will be on Thursday 22nd of June - If you have questions around these topics, please join this call and use the opportunity to ask questions from SP Engineering and PnP Core team.

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.

During November 2016, the majority of the PnP repositories were moved to SharePoint GitHub organization

Here's the current repository structure, including a 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 synced 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-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-Provisioning-Templates - Source for templates available from PnP Template Gallery at http://templates-gallery.sharepointpnp.com
  • PnP-Provisioning-Schema - PnP Provisioning engine schema repository
  • PnP-IdentityModel - Open source replacement of Microsoft.IdentityModel.Extensions.dll

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 facilitate community work.

What's supportability story around PnP material?

Following statements apply across 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 initiative 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 being clear with your customer/deployment owner on the support model

Scaling PnP initiative gradually

We are looking to scale the SharePoint PnP initiative gradually to numerous direction together with our community contributors. Already today we have numerous MVPs in our PnP Core Team (Erwin van Hunen, Paolo Pialorsi, Radi Atanassov, Waldek Mastykarz and Elio Struyf) and during May we have extended our team with numerous MVPs with specific responsibilities in the different assets shared through the PnP initiative. Here's a short list of the recent changes.

After a short summer break (during July), we are looking to further extend and scale the initiative across multiple different areas starting from August 2017.

  • We are looking to extend the communications and community around the OneDrive GitHub organization
  • We will start work around collecting reusable build tooling for the SharePoint development using the sp-dev-build-extensions repository
  • We will start work on reusable controls with SharePoint Framework development for increasing productivity of the developers in similar ways as done in the past with the work around PnP CSOM Core component
  • There will be specific repositories around more reusable community solutions/applications, which are more polished and production ready implementations

Latest changes

SharePoint Framework samples

These are samples which are available from the SharePoint client-side web part sample repository at https://github.com/SharePoint/sp-dev-fx-webparts or from the SharePoint Framework Extensions repository at https://github.com/SharePoint/sp-dev-fx-extensions.  

  • New sample react-side-panel web part illustrates creation and usage of Side Panel (Sidebar) control
  • New sample aad-api-spo-cookie web part showing how to access a custom API secured with Azure Active Directory (AAD) without using ADAL JS
  • New sample react-peoplepicker web part showing how to use Office UI Fabric People Picker and SharePoint Search API to retrieve people
  • New tutorial samples around the SharePoint Framework Extensions built using the "Getting started" tutorials
  • New react-field-slider field customizer showing how to build custom UI for field customizer using React
  • New js-application-graph-client application customizer showing how to use GraphHttpClient in the context of extension
  • New js-application-appinsights application customizer showing how to use application customizer to embed needed scripts for using Azure Application Insights for usage tracking
  • New js-application-analytics application customizer showing how to use application customizer to embed needed script for using Google Analytics for usage tracking
  • Updates to numerous other samples to use SPFx GA version

SharePoint Dev Build Definitions

These are scripts and assets available from the SharePoint Build Extensions repository at https://github.com/SharePoint/sp-dev-build-extensions.  

  • New sample serve-info Gulp tasks showing query string parameters required for debugging of the different SharePoint Framework Extensions in the current project.

PnP CSOM Core and Provisioning Engine

PnP CSOM Core component is a wrapper on top of native SharePoint CSOM and REST API, which simplifies complex scenarios with remote APIs, one of the example is the PnP Provisioning Engine for remote templates. The first version of the PnP remote provisioning engine was released with the May 2015 release. For the June 2017 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 June 2017 release:

  • Add List WebHooks easily using new extension methods
  • Support for client side pages with multiple zones/sections
  • News page promotion
  • Custom welcome page settings
  • Added support to set ClientComponentId and ClientComponentProperties properties for CustomAction
  • Updated to use latest SPO CSOM NuGet package
  • 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.

Notice. We are planning to do another engine update during June or early July with updated provisioning capabilities. 

PnP JavaScript Core library v2.0.6

New v2.0.6 release will be soon available for the Patterns and Practices JavaScript Core Library. This will be an incremental update for the library with additional capabilities and bug fixes on existing functionalities.

This is a similar effort as what PnP initiative previously has done with the PnP CSOM Core Component together with the community. 

PnP PowerShell 

PnP PowerShell providers more than two hundred additional PowerShell cmdlets, which can be used to manipulate content in SharePoint Online and in on-premises (SP2013, SP2016). These cmdlets are additive for SharePoint Online management shell, which concentrate more on the administrative tasks with SharePoint Online. 

Notice. In the past PnP PowerShell cmdlets where using SPO- prefix, which however overlapped with the native SPO management PowerShell cmdlets, so prefixing was changed as part of the November 2016 release. Starting from June 2017 release, we no longer release alias entries as part of the package, which means that we only support PnP- prefix usage with the PnP PowerShell. 

Here are the latest changes in the PnP PowerShell

  • Add-PnPCustomAction updated to support ClientComponentId and ClientComponentProperties properties to support SharePoint Framework Extensions
  • Set-PnPTenantSite updated to set the noscript property for site
  • Get-PnPProvisioning template updated to persist assets by default if *.pnp extension is used
  • New Get-PnPUser cmdlet for getting user details from current web
  • New Tenant.Migration sample PowerShell script for moving multiple sites and site collections from one tenant to another
  • Overall quality improvements and bug fixes
  • Updated automatically generated PnP PowerShell cmdlet documentation at MSDN

PnP sample library

Here are updates across the PnP code sample library by the community on the code and documentation, which is a great way to contribute as well.

  • New Portal.DataAccessLayer sample showing how to build a Client-Side Data Access layer for custom client side implementations
  • Updated PnP Portal Intranet starter kit to version 1.3 with new capabilities (check readme)
  • Updates to the PnP Partner Pack
    • Fine tuning and polishing based on community input
    • Fixed issue when searching for Site Collection Admins

PnP Guidance articles

The PnP Guidance repository contains guidance articles which are published on MSDN. Starting from the 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 to your contributions around real life learnings in different areas. Read more details around this open publishing model from following blog post

Here's the new guidance released since past monthly communications.

See MSDN articles from the PnP MSDN section at http://aka.ms/sppnp-msdn.

PnP initiative also controls the articles in the dev.office.com around SharePoint development. Here are new/updated articles around the SharePoint Framework. All documentation from MSDN will be gradually moving to dev.office.com/sharepoint.

PnP Guidance videos

You can find all PnP videos from our YouTube Channel at http://aka.ms/sppnp-videos. This location contains already a significant amount of detailed training material, demo videos, and community call recordings. 

Notice that some of the old PnP videos are also in the PnP Channel 9 video blog, which was previously used.

Key contributors for the June 2017 release

Here’s the list of active contributors (in alphabetical order) during past month in PnP repositories or community channels. PnP is really about building tooling and knowledge 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 on the behalf of the community. You are making a difference!

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 these communications. If you still want your logo for this month's release, please let us know and share the logo with us. Thx.

aequos
Allegient
ClearPeople
ContentAndCode
Digia
Knowit
piasys
 Puzzlepart
 onebit software
Rapid Circle
 rencore
 SharePointalist
Triad
WorkPoint


Microsoft people:
Here’s the list of Microsoft people who have been closely involved on the PnP work during last month.

Latest traffic statistics

Here's traffic statistics from the PnP, PnP PowerShell, PnP Sites Core (.NET)JavaScript Core component and SP Dev FX Web Parts repositories.

Traffic at PnP repository

 

Traffic from PnP CSOM Core repository

 

Traffic from PnP PowerShell repository

 

Traffic from PnP JavaScript Core Component repository

 

Traffic from SharePoint Framework Web Parts repository



See About Repository Graphs for more details on above statistics.

Next steps

  • June 2017 monthly community call is on 13th of June at 8 AM PT / 5 PM CET for latest release details with demos - Download invites with a detailed schedule for your time zone from http://aka.ms/sppnp-call.

PnP Resources in one picture - numerous links mentioned in this blog post

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 13th of June 2017