SharePoint Dev Ecosystem / SharePoint Patterns and Practices (PnP) February 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 around all the different areas and topics around SharePoint Dev ecosystem during the past month.
What is SharePoint Patterns & Practices (PnP)?
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 SharePoint Dev topics from January 2018
- GitHub repository forks at most popular repositories in SharePoint GitHub organization
- SP Dev Docs – 298
- SP Dev FX Web Parts – 451
- SP Dev Fx Extensions – 67
- PnP – 2660
- PnP Sites Core – 449
- PnP PowerShell – 415
- PnP JS Core – 195
- Unique visitors during past 2 weeks in SharePoint organization repositories – 29,053
- Merged pull requests across SharePoint repositories (cumulative) – 4,573
- Closed issues and enhancements ideas cross SharePoint repositories (cumulative) – 3,006
- SharePoint Online CSOM NuGet package downloads (cumulative) – 368,687
- PnP Core component NuGet package downloads (cumulative) – 145,962
- Page views in SharePoint Dev pages at docs.microsoft.com – 743,359
- Unique tenants using PnP components – 9,117
- Http requests towards SharePoint Online from PnP components (CSOM Core, PowerShell, PnP JS Core) – 8,428,601,575
- SharePoint Dev YouTube channel had 25,178 views with 156,569 minutes watch time
Main resources around SharePoint PnP and SharePoint development
- SharePoint development portal – http://dev.office.com/sharepoint
- SharePoint Dev Documentation – http://docs.microsoft.com/sharepoint/dev
- PnP under dev.office.com – http://aka.ms/SPPnP – One location for all the resources and news around PnP
- PnP GitHub – http://aka.ms/SPPnP-GitHub – main repository
- PnP MSDN pages – http://aka.ms/SPPnP-MSDN
- PnP Community Discussions – http://aka.ms/SPPnP-Community
- PnP Videos on YouTube – http://aka.ms/SPPnP-Videos
- Presentations at docs.com – http://aka.ms/SPPnP-Docs – moving gradually to SlideShare
February 2018 monthly community call
Agenda for the Tuesday 13th of February 2018 SharePoint Dev Ecosystem / Patterns and Practices community call at 8 AM PST / 5 PM CEST:
- Monthly summary of SharePoint Development topics – Engineering update and community news – Vesa Juvonen (Microsoft) ~20 min
- Improved export/import capabilities in PnP provisioning engine around modern pages – Bert Jansen (Microsoft) ~20 min
- Introduction to Office 365 CLI – Andrew Connell (Voitanos) ~20 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 officedevblogs.wpengine.com.
- 26th of January – New SharePoint CSOM version released for SharePoint Online – January 2017
- 24th of January – Introducing PnPJS client-side libraries for Office 365
- 10th of January – New version of Office 365 CLI (v0.4.0)
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.
- 5th of February – SharePoint Framework Dialog Framework
- 22nd of January – Introduction to SharePoint Site Designs and Site Scripts
- 8th of January – Asynchronous Pattern for Creating Modern SharePoint Sites
- 2nd of January – Reusable controls for your SharePoint Framework solutions
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.
- Invite to bi-weekly call – https://aka.ms/sppnp-core-sig-call
All SIG meetings are being recorded and are available for view from PnP YouTube Channel. Here are the latest recordings of the SIG calls.
- 25th of January – General announcements and SP Dev roadmap update. Modern page API handling updates. Groupify / modernization scanner.
- 11th of January – Deep dive to Site Designs and Site Scripts with Q&A with SharePoint Engineering.
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.
- Invite to bi-weekly call – https://aka.ms/sppnp-js-sig-call
- Gitter (Around the PnP JS Core) – https://gitter.im/OfficeDev/PnP-JS-Core
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.
- 1st of February – SharePoint Framework engineering update, PnP JS Core update, Office 365 CLI update, SPFx controls update – Live demos around @pnp/sp and community samples.
- 18th of January – PnP JS Core library update, Office 365 CLI update, SPFx reusable controls update – Live community demos on SPFx extensions and bot framework integration.
- 4th of January – PnP JS Core library updates, SharePoint Framework update, Reusable controls for SPFx – Live demos on upcoming Graph capabilities with SPFx, reusable controls and async with JSOM.
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 of our released guidance and samples.
- sp-dev-docs – Source for new SharePoint dev center documentation exposed from http://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 API
- sp-dev-fx-extensions – Samples and tutorial code around SharePoint Framework Extensions
- sp-dev-fx-vs-extension – Open source Visual Studio IDE extension for creating SharePoint Framework solutions in the Visual Studio 2015 or 2017
- sp-dev-build-extensions – Different build extensions like gulp tasks and gulp plugins from the community and engineering around SharePoint development
- sp-dev-gdpr-activity-hub – Reference solution on the GDPR business case showing SPFx implementation with PowerBI and modern site customization
- sp-dev-solutions – Repository for more polished and fine-tuned reusable solutions build with SharePoint Framework
- sp-dev-fx-controls-react – Reusable content controls for SharePoint Framework solutions build with React
- sp-dev-fx-property-controls – Reusable property pane controls to be used in web parts
- sp-dev-column-formatting – New open-source community driven repository for column formatting JSON definitions
- sp-dev-site-scripts – New open-source community driven repository for community Site Designs and Site Scripts
- 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 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.
- Multiple web parts updated to use latest SharePoint 1.4 version and cleaning existing SharePoint Framework client-side web part samples
- 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 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-property-controls and sp-dev-fx-controls-react. Here are the changes on these repositories.
- New Field controls added to the project – Helping on rendering field values in standard ways with FieldCustomizers
- PropertyFieldTermPicker improved with a save and a cancel button
- PropertyFieldTermPicker improved with `onClick` event on input field
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.
- Numerous updates on existing samples in the open-source repository
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 without the need of using PowerShell. SharePoint Online Management Shell is only available for Windows operating system. Changes since last monthly summary are following.
v0.5.0 release available with following changes
- spo sitescript add – adds site script for use with site designs #65
- spo sitescript list – lists site script available for use with site designs #66
- spo sitescript get – gets information about the specified site script #67
- spo sitescript remove – removes the specified site script #68
- spo sitescript set – updates existing site script #216
- spo sitedesign add – adds site design for creating modern sites #69
- spo sitedesign get – gets information about the specified site design #86
- spo sitedesign list – lists available site designs for creating modern sites #85
- spo sitedesign remove – removes the specified site design #87
- spo sitedesign rights grant – grants access to a site design for one or more principals #88
- spo sitedesign rights revoke – revokes access from a site design for one or more principals #89
- spo sitedesign rights list – gets a list of principals that have access to a site design #90
- spo list get – gets information about the specific list #199
- spo customaction remove – removes the specified custom action #21
- spo site classic list – lists sites of the given type #122
- spo list list – lists all available list in the specified site #198
- spo hubsite list – lists hub sites in the current tenant #91
- spo hubsite get – gets information about the specified hub site #92
- spo hubsite register – registers the specified site collection as a hub site #94
- spo hubsite unregister – unregisters the specified site collection as a hub site #95
- spo hubsite set – updates properties of the specified hub site #96
- spo hubsite connect – connects the specified site collection to the given hub site #97
- spo hubsite disconnect – disconnects the specifies site collection from its hub site #98
- spo hubsite rights grant – grants permissions to join the hub site for one or more principals #99
- spo hubsite rights revoke – revokes rights to join sites to the specified hub site for one or more principals #100
- spo customaction set – updates a user custom action for site or site collection #212
- fixed issue with prompts in non-interactive mode #142
- added information about the current user to status commands #202
- fixed issue with completing input that doesn’t match commands #222
- fixed issue with escaping numeric input #226
- changed the aad oauth2grant list, spo app list, spo customaction list, spo site list commands to list all properties for output type JSON #232, #233, #234, #235
- fixed issue with generating clink completion file #252
- added user guide #236, #237, #238, #239
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:
- The provisioning engine default schema now is the 2018-01 version
- Improved tokenization of client-side pages via the following new tokens: FileUniqueIdToken, FileUniqueIdEncodedToken, PageUniqueIdToken, PageUniqueIdEncodedToken, HostUrlToken, SiteCollectionConnectedOffice365GroupId, SiteCollectionIdEncodedToken and SiteIdEncodedToken
- Improved handling of dependent files during export of client-side home page: if the engine can detect a file being used by one of the web parts on the page and that file lives in the current site then it will be included in the export (assuming the PersistBrandingFiles flag was set)
- Improved handling of 1st party web parts by reading and writing the serverProcessedContent properties as part of the control’s properties
- Enabled Navigation object handler to work with NoScript enabled sites like communication sited and modern team sites
- Refactored ObjectClientSidePageContents handler to make it easy for extensibility providers to export more than just the default site’s home page
- Some new 1st party client-side web parts are added (CustomMessageRegion, Divider, MicrosoftForms, Spacer) to the client side pages API
- Extensibility handlers can now also run at “apply time” by only specifying them as part of the PnP-PS command…previously they had to be defined in the provisioning template as well
- List object handler will now not try to create a webhook which is already defined as expired in the template
- Base templates are updated and now all are based on the 2018-01 schema
- Test case improvements and stability changes (edited)
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. Here are the changes since last monthly communications.
- Preparations for the new library version from the @pnp scope
- Improved docs for the new @pnp scope version
- Various smaller improvements and fixes
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
- New cmdlet Set-PnPSiteDesign
- New cmdlet Set-PnPSiteScript
- Numerous other updates cross existing commands
- Overall quality improvements and bug fixes
- 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.
- New SharePoint Modernization Scanner for preparing your classic team sites for modernization by analyzing readiness of your existing sites
- Updates to AspNetCore.Authentication solution sample to run with .net core 2.0 authentication changes
- Updates to Business.StarterIntranet solution sample, which is a generic, enterprise intranet publishing solution, compatible with SharePoint 2013, 2016 and SharePoint Online.
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.
- Use the Office 365 content delivery network (CDN)
- Updates on the column formatting functionality documentation
- Updates on the Site Design and Site Script documentation
- SharePoint Site Design and Site Script Overview
- Get started creating site designs and site scripts
- Scoping access to site designs
- Customize a default site design
- Site design JSON schema
- PowerShell cmdlets for SharePoint site designs and site scripts
- Site design and site script REST API
- Calling the PnP Provisioning Engine from a Site Script
- Updates on numerous other articles on ensuring that the guidance is up to date where possible
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.
Key contributors to the February 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!
- Alex Terentiev (SharePointalist) – @alexaterentiev
- Andrew Connell (Voitanos) – @andrewconnell
- Andrew Koltyakov (ARVO Systems) – @andrewkoltyakov
- Aquila Sands – AquilaSands
- Chris Kent (DMI) – @theChrisKent
- Daniel Laskewitz (Sogeti) – @laskewitz
- Elio Struyf – @eliostruyf
- Erwin van Hunen (Rencore) – @erwinvanhunen
- Eric Shupps – @eshupps
- Franck Cornu (aequos) – @FranckCornu
- Gautam Sheth (Rapid Circle) – gautamdsheth
- Giuliano De Luca – @giuleon
- Joel Rodrigues (CPS) – joelfmrodrigues
- Kyle Schaeffer – @kyleschaeffer
- Lee Dale (A Thousand Threads Ltd) – leedale1981
- Luis Mañez (ClearPeople) – @luismanez
- Mikael Svenson (Puzzlepart) – @mikaelsvenson
- Ole Marting Pettersen (Puzzlepart) – olemp
- Paolo Pialorsi (PiaSys.com) – @PaoloPia
- Paul Schaeflein – @paulschaeflein
- Radi Atanassov (OneBit Software) – @RadiAtanassov
- Rodrigo Silva (Storm Technology) – @RodResendeSilva
- Robert Schouten (Wortell) – @rfjschouten
- S Merchant – sohailmerchant
- Sergei Sergeev – @sergeev_srg
- Spencer Harbar – @harbars
- Stefan Bauer (n8d) – @StfBauer
- Steve Beaugé (Solutions pour SharePoint) – stevebeauge
- Velin Georgiev – @velingeorgiev
- Waldek Mastykarz (Rencore) – @waldekm
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.
Microsoft people: Here’s the list of Microsoft people who have been closely involved with the PnP work during last month.
- Aaron Miao – aaronmi
- Antons Mislevics – antonsmislevics
- Bert Jansen – @O365Bert
- Brian Michely – @brianmichely
- Chakkaradeep (Chaks) Chinnakonda Chandran – @chakkaradeep
- Chris Hackman
- David Chesnut
- Frank Marasco – @frank_marasco
- Josh Goldberg – JoshuaKGoldberg
- Koen Zomers – @koenzomers
- Laura Graham – Lauragra
- Linda Lu Cannon – lindalu-MSFT
- Lincoln DeMaris
- Luca Bandinelli – lucaband
- Mike Ammerlaan – @mikeamm
- Neil Hodgkinson – @Nellymo
- Nicholas Pape – nickpape-msft
- Pat Miller – @PatMill_MSFT
- Patrick Rodgers – @mediocrebowler
- Piotrek Krakowiak – PiotrekKrakowiak
- ean Squires – @iamseansquires
- Tom Resing – @resing
- Vesa Juvonen – @vesajuvonen
Next steps
- February 2018 monthly community call is on Tuesday 13th of February 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.
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft – 12th of February 2018