SharePoint Dev Ecosystem / SharePoint Patterns and Practices (PnP) December 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 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 November 2017
- GitHub repository forks at most popular repositories in SharePoint GitHub organization
- PnP – 2596
- PnP Sites Core – 432
- PnP PowerShell – 396
- PnP JS Core – 184
- SP Dev Docs – 277
- SP Dev FX Web Parts – 396
- Unique visitors during past 2 weeks in SharePoint organization repositories – 34207
- Merged pull requests across SharePoint repositories (cumulative) – 4159
- Closed issues and enhancements ideas cross SharePoint repositories (cumulative) – 2631
- SharePoint Online CSOM NuGet package downloads (cumulative) – 319162
- PnP Core component NuGet package downloads (cumulative) – 121692
- Page views in SharePoint Dev pages at docs.microsoft.com during November 2017 – 625394
- Unique tenants using PnP components during November 2017 – 8108
- Http requests towards SharePoint Online from PnP components during November 2017 – 5545920557
- SharePoint Dev YouTube channel had 24387 views with 148705 minutes watch time during November 2017
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 at YouTube – http://aka.ms/SPPnP-Videos
- Presentations at docs.com – http://aka.ms/SPPnP-Docs – moving gradually to SlideShare
December 2017 monthly community call
Agenda for the Tuesday 12th of December 2017 SharePoint Dev Ecosystem / Patterns and Practices community call at 8 AM PST / 5 PM CEST:
- Summary of the December 2017 updates – Vesa Juvonen ~15 min
- Building custom list form web part with React – Daniel Wyss (Skybow) ~15 min
- New PnP PowerShell cmdlets for modern page handling – Erwin van Hunen (Rencore) ~15 min
- New schema and provisioning engine support for new capabilities – Paolo Pialorsi (Piasys.com) ~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.
SharePoint Dev Blog posts
Here are the latest blog posts and announcements around SharePoint development topics from officedevblogs.wpengine.com.
- 30th of November – Announcing Office 365 CLI for managing your Office 365 tenant on any platform
- 16th of November – Announcing new development and management tools for SharePoint Framework
- 24th of November – New CSOM version released for SharePoint Online – November 2017
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.
- 11th of December – Including assets in SharePoint Framework solution packages
- 4th of December – Migrating to SharePoint Framework Extensions
- 27th of November – ALM APIs for SharePoint Framework solutions and add-ins
- 13th of November – Defining an icon for a client-side web part
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.
- 30th of November – Miscellaneous announcements. Preview of upcoming Site Designs and Site Scripts with PnP PowerShell. Manage modern pages with code. Building self-service site collection provisioning solution for modern sites.
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.
- 7th of December – Latest news on SharePoint Framework and PnP JS Core. Security Grid sample web part for showing permission details from site. SPFx property controls sample.
- 23rd of November – Latest news on SharePoint Framework. Updates on SharePoint Dev Roadmap. ALM APIs live demo. Site collection app catalog live demo. Asset packaging live demo.
- 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.
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.
- 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
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 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.
- New web part sample react-collapsible-textboxio allows contributors to create rich text content in modern SharePoint pages using collapsible sections and the third party Textbox.io editor
- New web part sample react-securitygrid that uses React and Office-UI-Fabric to render a grid showing which users have access to which lists/libraries/folders/files on a Web
- New web part sample js-propertycontrols-svg that displays a Scalable Vector Graphics (SVG) image using properties to customize how it is rendered. The web part utilizes the PnP SPFx Property Controls package (specifically the SpinButton and ColorPicker) to set these properties.
- New web part sample react-list-form showing adding a list form to any page. It provides a working example of implementing generic SharePoint list forms using React and Office UI Fabriclibraries
- New web part sample js-skype-status demonstrates how to use the UCWA JS SDK for Skype in the SharePoint Framework
- New web part sample react-skype-status demonstrates how to use the UCWA JS SDK for skype with React based implementation
- Updated web part react-content-query-webpart to support it also with SP2016 FP2 deployments
- Updated web part vuejs-todo-single-file-component to include sample CRUD operations with Vue framework
- New Application Customizer sample react-application-my favorites showing how to use page placeholders and right side panel for advanced end-user experience
- New tutorial sample tutorial-migrate-ecbmenu showing how to migrate from ecb menus to SharePoint Framework Extension
- New tutorial sample tutorial-migrate-jslink showing how to migrate from JSLink implementation to SharePoint Framework Field Customizer
- New tutorial sample tutorial-migrate-usercustomaction showing how to migrate from UserCustomAction based JavaScript implementation to SharePoint Framework Extension
- 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-property-controls and sp-dev-fx-controls-react. Here are the changes on these repositories.
- Controls updated to use latest SharePoint Framework version
- New
WebPartTitle
control added - Call out support added for the property controls for additional description around the control
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.
- New sample for starting a flow from column formatting definition
- New sample with yes-no checkmark
- New sample with project management indicators
- New sample showing traffic light status indicator
- New sample showing numeric based smiley
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. New commands during November are following.
- spo customaction get – gets information about the specific user custom action
- spo app add – add an app to the specified SharePoint Online app catalog
- spo app deploy – deploy the specified app in the tenant app catalog
- spo app get – get information about the specific app from the tenant app catalog
- spo app install – install an app from the tenant app catalog in the site
- spo app list – list apps from the tenant app catalog
- spo app retract – retract the specified app from the tenant app catalog
- spo app uninstall – uninstall an app from the site
- spo app upgrade – upgrade app in specific site
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
- Updated signing certificate to use Microsoft identify
- Various improvements around client-side web part handling, especially support for using all 1st party webparts and option for re-ordering client components inside the column or section
- Added support for beta 2018-10 pnp provisioning schema
- ALM at Provisioning Template level
- Tenant Settings: App Catalog, CDN
- New attributes for Client-Side Pages
- New attributes for Navigation
- Removed AddIns element
- Provisioning engine changes
- Schema v201801 preview included
- ALM capability in preview
- New token parsing for CustomAction IDs
- Added support for custom JSLink in List/Library views for classic experience
- Added support for attributes for FieldRefs in List/Library views
- Fixes to better support DataRows updates
- Fixes to better support Workflow updates
- 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. Here are the changes since last monthly communications.
- Support for SharePoint ALM APIs
- Add support to delete multiple attachments
- Add support for GetStorageEntity endpoint
- Add capability of getting external lists items by getImteByStringId
- Add support for SiteUserInfoList endpoint
- Fixed and issue with getAs and caching not rehydrating objects from cache
- Cleaned up utilities class to use shared clone method
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
- Updated signing certificate to use Microsoft organization certs
- Added additional authentication option with Connect-PnPOnline allowing you use an existing Access Token for authentication
- New cmdlet Add-PnPSiteDesign
- New cmdlet Add-PnPSiteScript
- New cmdlet Get-PnPSiteDesign
- New cmdlet Get-PnPSiteScript
- New cmdlet Get-PnPSiteDesignRights
- New cmdlet Grant-PnPSiteDesignRights
- New cmdlet Remove-PnPSiteDesign
- New cmdlet Remove-PnPSiteScript
- New cmdlet Revoke-PnPSiteDesignRights
- New cmdlet Get-PnPClientSideComponent
- New cmdlet Move-PnPClientSideComponent
- New cmdlet Remove-PnPClientSideComponent
- New cmdlet Set-PnPClientSideText
- New cmdlet Set-PnPClientSideWebPart
- Numerous other updates cross existing commands
- Overall quality improvements and bug fixes
- Updated automatically generated PnP PowerShell cmdlet documentation at docs.microsoft.com
Notice. Due signing certificate change, you cannot update PnP PowerShell cmdlet using the upgrade-module command. You’ll need to first uninstall and then re-install module.
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 Provisioning.Cloud.Modern.Async solution sample showing how to build self-service site collection provisioning solution for modern experiences
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.
- Accessibility in SharePoint web part design
- ALM APIs for SharePoint Framework Solutions and SharePoint add-ins
- Alternative model for web app policies in SharePoint Online
- Accessing SharePoint using an application context, also known as app-only
- Granting access via Azure AD App-Only
- Granting access using SharePoint App-Only
- Updated tutorials on getting started with web part development
- Set up your SharePoint client-side web part development environment
- Build your first SharePoint client-side web part (Hello world part 1)
- Connect your client-side web part SharePoint (Hello world part 2)
- Deploy your client-side web part to a SharePoint page (Hello world part 3)
- Hosting client-side web part from Office 365 CDN (Hello world part 4)
- Add jQueryUI Accordion to your SharePoint client-side web part
- Use Office UI Fabric React components in your SharePoint client-side web part
- Provisioning SharePoint assets from your SharePoint client-side web part
- Deploy your SharePoint client-side web part to Azure CDN
- Updates on numerous articles on ensuring that the guidance is up to date
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.
- Updated tutorials on getting started with SharePoint Framework client-side web part development
- Set up your SharePoint client-side web part development environment
- Build your first SharePoint client-side web part (Hello world part 1)
- Connect your client-side web part SharePoint (Hello world part 2)
- Deploy your client-side web part to a SharePoint page (Hello world part 3)
- Hosting client-side web part from Office 365 CDN (Hello world part 4)
- Add jQueryUI Accordion to your SharePoint client-side web part
- Use Office UI Fabric React components in your SharePoint client-side web part
- Provisioning SharePoint assets from your SharePoint client-side web part
- New SharePoint PnP Short series videos with quick videos on specific topics
Key contributors to the December 2017 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
- Alisher Abdurakhmanov – msgx
- Andrew Koltyakov – @andrewkoltyakov
- Andrew Connell – @andrewconnell
- Anoop Tatti (Content and Code) – @anooptells
- Arto Kaitosaari (Affecto Oy) – @artokai
- Benjamin Gemperle (2sic Internet Solutions GmbH) – @BeniGemperle
- bosonfoot alias – bosonfoot
- Chris Kent (DMI) – @theChrisKent
- Daniel Wyss – @DanyWyss
- Dimcho Tsanov – @DimchoTsanov
- Elio Struyf – @eliostruyf
- Erwin van Hunen (Rencore) – @erwinvanhunen
- Eric Overfield (PixelMill) – @EricOverfield
- Eric Shupps – @eshupps
- Franck Cornu (aequos) – @FranckCornu
- Gautam Sheth (Rapid Circle) – @gautamdsheth
- gbouveret alias – gbouveret
- Giuliano De Luca – @giuleon
- Ivan Vagunin (Digia) – @ivagunin
- Jan Vaněk – xvanekj
- jchtible alias – jchtible
- Jems Manjaly (Oakton) – jemsjose
- Joel Rodrigues (CPS) – joelfmrodrigues
- Joel Tipke – JoelTipke
- Jordan Burns – Blaksey
- Justin Liu (Neusoft) – foxdave
- Kenny Duenke – @kduenke
- lhoff alias – lhoff
- Luis Mañez (ClearPeople) – @luismanez
- Marc D Anderson (Sympraxis Consulting) – @sympmarc
- Matt Maher (Netwoven) – Maher256
- Mikael Svenson (Puzzlepart) – @mikaelsvenson
- mptolly alias – mptolly
- Ole Kristian Mørch-Storstein (Puzzlepart) – @ole_kristian
- Paolo Pialorsi (PiaSys.com) – @PaoloPia
- Paul Pascha (Wortell) – @paulpascha
- Paul Schaeflein – @paulschaeflein
- Radi Atanassov (OneBit Software) – @RadiAtanassov
- Rajendra Bhide – bhider
- Russell Gove – @russgove
- Samuel Levesque – @sharepointerie
- Sebastian Holager – @bassetassen
- Sébastien Levert (Blue Meteorite) – @sebastienlevert
- Simon-Pierre Plante (SPP Technologies) – spplante
- S Merchant (LinkSol Ltd) – sohailmerchant
- Spencer Harbar – @harbars
- Stefan Bauer (n8d) – @StfBauer
- Steve Beaugé (Solutions pour SharePoint) – stevebeauge
- Travis Lingenfelder (Constellation Solutions) – @tlingenf
- Vincent Biret (2toLead) – @baywet
- Velin Georgiev – @velingeorgiev
- Waldek Mastykarz (Rencore) – @waldekm
- Yannick Borghmans (Ventigrate) – @yborghmans
- Yannick Plenevaux – @yp_code
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
- Cristy Gonzalez – cristy
- David Chesnut
- Doug Mahugh – @Dougerino
- Frank Marasco – @frank_marasco
- Junle Li – lijunle
- Keyur Patel
- Koen Zomers – @koenzomers
- Laura Graham – Lauragra
- Linda Lu Cannon – lindalu-MSFT
- Luca Bandinelli – lucaband
- Mike Ammerlaan – @mikeamm
- Neil Hodgkinson – @Nellymo
- Nicholas Pape – nickpape-msft
- Pat Miller – @PatMill_MSFT
- Patrick Rodgers – @mediocrebowler
- Vesa Juvonen – @vesajuvonen
Next steps
- December 2017 monthly community call is on Tuesday 12th of December 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 December 2017