SharePoint Dev Ecosystem / SharePoint Patterns and Practices (PnP) May 2018 update is out with a summary of the latest guidance, samples, and solutions from SharePoint engineering or from the community for the community. This article is a summary of all the different areas and topics around 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 to 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 SharePoint Dev topics from April 2018

  • GitHub repository forks at most popular repositories in SharePoint GitHub organization
  • Unique visitors during past 2 weeks in SharePoint organization repositories – 38,306
  • Merged pull requests across SharePoint repositories (cumulative) – 5,002
  • Closed issues and enhancements ideas cross SharePoint repositories (cumulative) – 4,046
  • SharePoint Online CSOM NuGet package downloads (cumulative) – 482,647
  • PnP Core component NuGet package downloads (cumulative) – 197,074
  • Page views in SharePoint Dev pages at docs.microsoft.com – 823,840
  • Unique tenants using PnP components – 11,581
  • Http requests towards SharePoint Online from PnP components (CSOM Core, PowerShell, PnP JS Core) – 9,986,170,484
  • SharePoint Dev YouTube channel had 25,191 views with 154,577 minutes watch time

Main resources around SharePoint PnP and SharePoint development

May 2018 monthly community call

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

  • Monthly summary of SharePoint Development topics – Engineering updates from Build and community news – Vesa Juvonen (Microsoft) ~20 min
  • New PnP provisioning schema improvements – Paolo Pialorsi (Piasys.com) ~10 min
  • Latest capabilities in the PnP Provisioning Engine – Erwin van Hunen (Rencore) ~10 min
  • Latest open-source SharePoint Framework controls for increasing productivity – Elio Struyf ~15 min
  • Q&A ~5 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.

SharePoint Dev Blog posts

Here are the latest blog posts and announcements around SharePoint development topics from dev.office.com/blogs.

PnP Webcasts

We started new PnP Webcasts are typically 15-30 min long conversational webcasts around a specific topic. This series was started in October 2015 and have continued releasing new videos since. All new webcasts are released on PnP YouTube Channel. 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.

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

  • 3rd of May – SP Dev news with engineering update. Modernizing SharePoint sites – open source tooling. Add-in submission process with AppSource.
  • 19th of April – SP Dev news with engineering update. Site Design and Site Scripts, including create Site Design studio.
  • 5th of April – SP Dev news with engineering update. The column formatting end-to-end story with UI and dev capabilities.

Interested in doing a community demo in these community calls? – Please let us know!

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.

  • 26th of April – SharePoint Framework engineering update, PnP JS Core update, Office 365 CLI update, SPFx controls update – Hub site extension selector sample. SPFx extensions and dynamic properties.
  • 12th of April – SharePoint Framework engineering update, PnP JS Core update, Office 365 CLI update, SPFx controls update – Using the same codebase for both modern and classic custom footer.

Interested in doing a community demo in these community calls? – Please let us know!

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 to our released guidance and samples.

  • 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 – 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 by 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.

  • Updates to SiteDesignStudio solution, which provides a web part to create Site Designs and Site Scripts for your tenant
  • Updates to ColumnFormatter solution, which provides a web part to design column formatting definitions
  • Updates for LinksAndHandlebarsTemplate solution, which shows how to use Handlebars as templating engine for client-side web part
  • New sample react-graph-evalurl which shows Url validation for SharePoint using Office Graph
  • New sample react-sitepages-metadata demonstrates how to extend SitePages library to enable updating existing items with metadata, and a roll-up includes a web part to display them.
  • Multiple web parts updated to use latest SharePoint 1.4.1 version and cleaning existing SharePoint Framework client-side web part samples
  • New react-application-sites-hubsite-switcher application customizer showing sites that are part of a Hub Site and renders a drop down to jump directly into a site. The customizer only renders if the site is a Hub site.
  • Multiple extensions updated to use latest SharePoint Framework 1.4 version and cleaning in existing SharePoint Framework extension samples

Reusable open source controls for SharePoint Framework

New reusable controls initiative was announced in Ignite 2017 during September. There are two 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-property-controls and sp-dev-fx-controls-react. Here are the changes on these repositories.

Added

  • PropertyFieldCollectionData was added 58
  • PropertyFieldOrder was added 19
  • PropertyFieldSwatchColorPicker was added 55
  • TaxonomyPicker control got added #22 #63 #64
  • ListPicker control got added #34

Enhancements

  • Allow the term set to be selectable in the PropertyFieldTermPicker #60

Fixes

  • Fix for PropertyFieldColorPicker Palette Icon alignment issue in IE11 56
  • Issue fixed when the optional selection property was not provided to the ListView #65

Community column formatting definitions

SharePoint Columns Formatting capability was released for First Release customers during October 2017. As part of the availability, we also announced the availability of open source repository for sharing different column formatting definitions. Following lists the changes in the column formatting area.

  • No new column formatting samples during April, but adjustments and improvements on existing ones.

Community Site Designs and Site Scripts

SharePoint Site Designs and Site Scripts has been released for production usage during March 2018. As part of the availability, we also announced the availability of open source repository for sharing different Site Designs and Site Scripts. Following lists the changes in the Site Design and Site Script area.

  • No new Site Designs or Site Scripts during April, but adjustments and improvements on existing ones.

Office 365 CLI

Office 365 CLI was released in November 2017. This is an open source tool which enables you to controls tenant level properties in SharePoint Online or in Office 365. This is an alternative options for setting management on top of existing PowerShell cmdlets.

v1.2.0 release available with following changes

Added

Changes

  • added support for authenticating using credentials solving #388

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 (3 years from this release). This list contains the main updates in this release:

Added

  • Added WebApiPermissions support to provisioning engine.
  • Added support to auto populate the BannerImageUrl and Description fields during save of a client-side page based on the found web parts and text parts on the page
  • Added support for client-side page header configuration (no header, header with image, default header)
  • Added ClientSidePage Title support in the provisioning engine.
  • Added CommentsOnSitePagesDisabled property on web settings element in the provisioning engine.
  • Added support for StorageEntities to the Tenant element in the Provisioning Engine. The user applying the template needs appropriate access rights to the tenant scoped App Catalog.
  • Added SiteScripts and SiteDesigns elements to the Tenant element in the Provisioning Engine. The user applying the template needs to be tenant administrator.
  • Added HubSiteUrl to the WebSettings element for the Provisioning Engine. The user applying the template needs to be tenant administrator.
  • Added {SiteScriptId:[script title]} and {SiteDesignId:[design title]} tokens to the provisioning engine. This will only work if the user applying the template is tenant administrator.
  • Added {StorageEntityValue:[key]} token to retrieve values from tenant level or (when applicable) site collection level. If a key is present at site collection level this value will take preference over the one from tenant level, following the behavior of the CSOM APIs.
  • Added support for loading the classification of a unified group.
  • Added GetPrincipalUniqueRoleAssignments web extension method. Get all unique role assignments for a user or a group in a web object and all its descendants down to document or list item level.
  • Added support for SystemUpdate of taxonomy fields on list extension and item extension methods.
  • Added support for using the ClientWebPart client-side web part to host “classic” SharePoint Add-ins on client side pages
  • Added support for new schema v.2018-05
  • Added support for Web API Permission in schema v.2018-05
  • Added support for new schema v.2018-05 ==> 2018-05 is the new default schema
  • Added async extension methods for feature handling and property retrieval
  • Added extension methods to better support property handling on lists
  • Added support for the implementation of the provisioning of dependent lookups fields

Changed

  • Fixed typo in TimeZone enum, and obsoleted incorrect value
  • Webhook server notification url in the provisioning engine now supports tokens
  • Fixed the setting of the page layout
  • Improved detection and configuration of the specific client-side web part data version
  • Allow webhooks expiration to be updated without specifying the original webhook notification url
  • Fixed detecting of “The object specified does not belong to a list” error in the SetFileProperties extension method
  • Using ResourcePath.FromDecodedUrl to handle reading files and folders with special characters
  • Fix async handling calling ClientSidePage.AvailableClientSideComponents

See also https://testautomation.sharepointpnp.com for day-to-day results and executed tests.

PnP JavaScript Core Library – PnPJs

Latest update is version 1.0.5 on the PnPJs library, which will be out soon after this blog post was released. Here’s are the latest changes since the previous monthly release.

Added

  • @pnp/sp: Added web’s getParentWeb helper method [PR]
  • @pnp/sp: Added support for likes and comments on list items and modern pages [PR]

Fixed / Changed

  • @pnp/nodejs: Fixed incorrect import for Request shims due to version change [PR]
  • @pnp/sp: Fixed docs for web example code [PR]
  • @pnp/config-store: Fixed docs and a bug in loading configuration [PR]
  • @pnp/sp: Fixed clientPeoplePickerSearchUser and clientPeoplePickerResolveUser methods running error with verbose OData mode [PR]
  • tooling: Fixed bug in gulp task test when using the –p flag .inactive.js test files were run [PR]
  • docs: Fixed import references (@tarjeieo) [PR]
  • @pnp/odata: Updated all parsers to use same error handling code path [PR]
  • @pnp/odata: Removed core.ts and moved code into parsers.ts to simplify [PR]

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 three 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

Added

  • Added Enable-PnPPowerShellTelemetry, Disable-PnPPowerShellTelemetry, Get-PnPPowershellTelemetryEnabled
  • Added Enable-PnPTenantServicePrincipal
  • Added Disable-PnPTenantServicePrincipal
  • Added Get-PnPTenantServicePrincipal
  • Added Get-PnPTenantServicePermissionRequests
  • Added Get-PnPTenantServicePermissionGrants
  • Added Approve-PnPTenantServicePrincipalPermissionRequest
  • Added Deny-PnPTenantServicePrincipalPermissionRequest
  • Added Revoke-PnPTenantServicePrincipalPermission
  • Added -Scope parameter to Get-PnPStorageEntity, Set-PnPStorageEntity and Remove-PnPStorageEntity to allow for handling storage entity on site collection scope. This only works on site collections which have a site collection app catalog available.
  • Added -CertificatePassword option to New-PnPAzureCertificate
  • Added output of thumbprint for New-PnPAzureCertificate and Get-PnPAzureCertificat

Changed

  • Added -NoTelemetry switch to Connect-PnPOnline
  • Updated Connect-PnPOnline to allow for -LoginProviderName when using -UseAdfs to authenticate
  • Fixed issue where Add-PnPApp would fail where -Publish parameter was specified and -Scope was set to Site
  • Fixed issue where New-PnPUnifiedGroup prompted for creation even though mail alias did not exist

Other

  • Updated automatically generated PnP PowerShell cmdlet documentation at docs.microsoft.com

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.

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.

Here are new/updated articles on the SharePoint Development.

PnP Guidance videos

You can find all SharePoint Dev 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.

  • No specific guidance videos on top fo the community call demos during this month

Key contributors to the May 2018 update

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.

2toLead
aequos
Arvo Systems
ClearPeople
CPS
DMI
piasys
 Puzzlepart
 onebit software
 Rapid Circle
 rencore
 SharePointalist
Sogeti
SoSP
 Stefan Bauer
 Voitanos


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

Next steps

  • May 2018 monthly community call is on Tuesday 8th of May at 8 AM PST / 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.

Learn, Reuse, Share - aka.ms/sppnp

“Sharing is caring”