SharePoint Patterns & Practices – November 2017 update

Vesa Juvonen

SharePoint Dev Ecosystem / SharePoint Patterns and Practices (PnP) November 2017 update is out with new contributions from the community to the community. This post contains all the details related to what was included with the release and what else has been happening in the SharePoint Dev ecosystem during the past month.

What is SharePoint Patterns & Practices (PnP)?

SharePoint / Office Dev Patterns and Practices

SharePoint PnP is a nick-name for SharePoint Dev Ecosystem activities coordinated by SharePoint engineering. SharePoint 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 in GitHub by providing contributions on the samples, reusable components, and documentation.

PnP is owned and coordinated by SharePoint engineering, but this is work done by the community for the community. The initiative is currently 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 initiative, there’s no SLAs for the support for the samples provided through GitHub. Obviously, all officially released components and libraries are under official support from Microsoft. You can use SharePoint Developer group in the Microsoft Tech Community for providing input and to ask any questions about the existing materials.

Some key statistics around PnP program from October 2017

  • GitHub repository forks at most popular repositories in SharePoint GitHub organization
  • Unique visitors during past 2 weeks in SharePoint organization repositories – 32293
  • Merged pull requests across SharePoint repositories (cumulative) – 4003
  • Closed issues and enhancements ideas cross SharePoint repositories (cumulative) – 2473
  • SharePoint Online CSOM NuGet package downloads (cumulative) – 292031
  • PnP Core component NuGet package downloads (cumulative) – 167168
  • Page views in SharePoint Dev pages at docs.microsoft.com during October 2017 – 420801
  • Page views in PnP MSDN pages during October 2017 – 38240
  • Unique tenants using PnP components during October 2017 – 7911
  • Http requests towards SharePoint Online from PnP components during October 2017 – 5053834884
  • SharePoint Dev YouTube channel had 23309 views with 146371 minutes watch time during October 2017

Main resources around SharePoint PnP and SharePoint development

November 2017 monthly community call

Agenda for the Tuesday 15th of November 2017 SharePoint Dev Ecosystem / Patterns and Practices community call at 8 AM PST / 5 PM CEST:

  • Summary on the November 2017 updates – Vesa Juvonen ~15 min
  • Custom web part with rich text box editing experience support – Franck Cornu (aeguos) ~15 min
  • Migrating JavaScript customizations in SharePoint Online to SharePoint Framework – Paolo Pialorsi (Piasys.com) ~15 min
  • Groupify and transformation of classic team sites to modern experiences – Bert Jansen (Microsoft) 15 min

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 Webcasts

We started new PnP Webcast series in October 2015 and have continued releasing new videos since that. All new webcasts are released on PnP YouTube Channel. Old webcasts and other demo videos are also found in the PnP Channel 9 section. Here are the new webcasts released after the last monthly release. We are looking into continuing the releases of the webcast in the future using weekly or bi-weekly schedule depending on the topics to be covered.

General Dev, CSOM, PnP Core, PnP PowerShell SIG Bi-Weekly Call Special Interest Group (SIG)

General SP Dev, CSOM PnP Sites Core, PowerShell and Provisioning Special Interest Group (SIG) have bi-weekly meetings to cover the general SharePoint topics, CSOM and latest in the PnP CSOM core component, PnP PowerShell and in the PnP remote provisioning engine. These calls have also free Q&A section if you have any questions about 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. Notice that invite has been updated August 2017 with updated connection information and meeting has been rescheduled for Thursday.

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

  • 2nd of November – Miscellaneous announcements, Modern site classification and new PnP reusable APIs for site classification manipulation. Updated status on column formatting capability.
  • 19th of October – Miscellaneous announcements. Column formatting introduction and live demo. Preview on upcoming ALM APIs for SPFx solutions and add-ins. Introduction to GDP Activity Hub.

Notice. Special Interest Group call for Thursday 16th of November has been canceled since team members are all traveling during the call time. We do apologize for the convenience.

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 SharePoint Framework 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.

  • 9th of November – Latest news on SharePoint Framework. Serve.json usage with SPFx extension debugging. Instance notifications to web parts and extensions using webhooks. Mega menu implementation with SPFx extensions.
  • 26th of October – Latest news on SharePoint Framework. Preview on Office UI Fabric support and updates on VS IDE SPFx extension. Introduction to SPFx solution samples. Run once SPFx application customizer.
  • 12th of October – Latest news on SharePoint Framework. Tenant properties capability. List view command set demo from Ignite 2017. Open source reusable SPFx controls.

SharePoint Dev Ecosystem in GitHub

There are quite a few different GitHub repositories under the SharePoint brand since we wanted to ensure that you can easily find and reuse what’s relevant to 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.

On top of the specific PnP repositories, PnP initiative also controls the new repositories under the SharePoint 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

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

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 web part sample react-documents-detailslist showing how to build web parts that display documents in accordance with the SharePoint Online modern experience. The code uses Office UI Fabric components on the top of SharePoint framework.
  • New web part sample react-textboxio showing how to build a custom web part which allows contributors to create rich text content in the modern pages. Implementation based on 3rd party Textbox.io editor.
  • New web part sample react-project-online showing how to consume data from Project Online REST APIs from client-side web part.
  • New web part sample react-webhooks-realtime showing how to use webhooks to track changes in SPO and notify then web parts in real time.
  • New Application Customizer sample react-application-regions-footer showing how to create a custom footer for modern pages, in order to show data about an area manager for a specific region.
  • New Application Customizer sample react-application-tenant-global-navbar showing how to create a tenant global NavBar and Footer NavBar for modern sites, reading menu items from the Term Store.
  • New Application Customizer sample react-application-webhooks-notification showing how to do leverage the SharePoint webhooks capabilities, in order to show toast notifications. The libraries used by this solution are Socket.io, sp pnp js, moment.
  • New Application Customizer sample react-mega-menu showing how to build a mega menu with application customizer
  • New List View Command set sample react-command-discuss-now showing how to create a new meeting to discuss a document selected in the current list view of a document library.
  • New List View Command set sample js-command-item-permissions showing the creation of a shortcut command to redirect a user to selected item’s permission page.
  • Updates to numerous other samples to polish the code and documentation

Reusable open source controls for SharePoint Framework

New reusable controls initiative was announced in Ignite 2017 during September. There are two new npm packages and source code repositories for the reusable controls which you can use in your SharePoint Framework solutions. We do welcome community contributions to these initiatives as well. There are two different repositories: sp-dev-fx-properly-controls and sp-dev-fx-controls-react. Here are the changes on these repositories.

  • Controls updated to use latest SharePoint Framework version
  • Grouping functionality added to the ListView control
  • Added the PropertyFieldColorPicker control
  • Added the PropertyFieldSpinButton control
  • Added the PropertyFieldDropdownWithCallout control
  • Added the PropertyFieldTextWithCallout control
  • Added the PropertyFieldToggleWithCallout control

Community column formatting definitions

SharePoint Columns Formatting capability was released for First Release customers. As part of the availability, we also announced the availability of open source repository for sharing different column formatting definitions. We do accept contributions in this area.

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. This list contains the main updates in this release:

  • Various small bug fixes and improvements
  • ALM methods
  • Updated Microsoft.IdentityModel.Clients.ActiveDirectory NuGet dependency to latest 2.x version (2.29)
  • Token parsing for client-side web parts and extensions provisioning engine definitions
  • Serializer improvements
  • REST call auth improvements
  • Improved cleanup for non-supported when provisioning modern (noscript) sites
  • API’s to work configure and set site classification
  • Timerjob improvements allow AzureAD app definitions for site enumeration + switched to using tenant admin API for OD4B enumeration instead of using search
  • API support for adding a group to a classic team site
  • 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.

PnP JavaScript Core Library

No actual updates on the Patterns and Practices JavaScript Core Library, but there have been active discussions on the package in Gitter channel. There will be more and more activities on this side by end of this year.

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.

Here are the latest changes in the PnP PowerShell

  • Various small bug fixes, improvements and documentation updates
  • Connect-PnPOnline and Connect-PnPMicrosoftGraph functionality have been merged
  • The majority of the cmdlets now support a -Connection parameter allowing you to specify a connection object which optionally can be returned from Connect-PnPOnline. This allows you to maintain multiple connections/contexts without you requiring to execute Connect-PnPOnline again.
  • In relation to the item above: added a Get-PnPConnection cmdlet
  • Updated cmdlets for ALM – Available in your tenant when capability goes to First Release
  • New cmdlets to activate site classifications
  • New cmdlet to groupify sites – Available in your tenant when capability goes to First Release
  • Numerous other updates cross existing commands
  • 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 Governance.EnsurePolicy solution sample showing how to replace “grant” web app policies with SPO compatible options

SharePoint Dev articles

SharePoint Dev articles are surfaced currently in docs.microsoft.com/en-us/sharepoint/dev. ´Since the last release, we have now merged also SharePoint PnP Solution guidance to docs.microsoft.com platform, so you’ll only have one location to follow all relevant SharePoint Dev documentation and guidance. You can provide contributions to these documents by submitting documentation improvements using GitHub tooling. All of the SharePoint Dev docs are stored and surfaced from the sp-dev-docs repository.

PnP initiative also controls the articles in the dev.office.com around SharePoint development. Here are new/updated articles on 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 on 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.

Key contributors for the November 2017

Here’s the list of active contributors (in alphabetical order) since last release details in SharePoint Dev 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 across 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 in 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
ClearPeople
CPS
Digia
DMI
piasys
 Puzzlepart
 onebit software
 RapidCircle
 rencore
 SharePointalist
Triad

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

Next steps

  • November 2017 monthly community call is on Tuesday 14th of November at 8 AM PT / 5 PM CEST / 4 PM GMT for latest release details with demos – Download recurrent invite to monthly community call 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 November 2017

Feedback usabilla icon