SharePoint / Office Dev Patterns & Practices – November 2016 release

Cross posting from dev.office.com.

SharePoint / Office 365 Dev Patterns and Practices (PnP) November 2016 release is out with new contributions from community for the community. This post contains all the details related on what was included with the release and what else has been happening in the PnP world during the past month.

What is SharePoint / Office Dev Patterns & Practices (PnP)?

SharePoint / Office Dev Patterns and PracticesPnP is community driven open source initiative where Microsoft and external community members are sharing their learning's around implementation practices for SharePoint and Office 365. Active development and contributions happen our GitHub projects under 'dev' branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications.

PnP is owned and coordinated by SharePoint engineering, but this is work done by the community for the community. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the PnP Core team and we are looking to extend the Core team with more community members.

Notice that since this is open source community program, there’s no SLAs for the support what we provide from program. You can use SharePoint Developer group in the Microsoft Tech Community for providing input and to ask any questions around the existing materials. If you are interested on getting more closely involved, please check the following guidance from our GitHub wiki or a referenced PnP Webcast.

Some key statistics around PnP program from October 2016

  • GitHub repository forks at different repositories 
  • Unique visitors during past 2 weeks cross PnP repositories - 12515
  • Unique visitors during past 2 weeks in SharePoint organization repositories - 2889
  • Merged pull requests cross PnP repositories (cumulative) - 2571
  • Closed issues and enhancements ideas cross PnP repositories (cumulative) - 1059
  • PnP Core component NuGet package downloads - 54222
  • Unique visitors in PnP MSDN pages during October 2016 - 18603
  • Unique tenants using PnP CSOM Core component during October 2016 - 2592
  • Http requests towards SharePoint Online from PnP CSOM Core Component during October 2016 - 817000000

Main resources around PnP program

 

November 2016 monthly community call

Agenda for the Tuesday 8th of November community call at 8 AM PDT / 5 PM CET:

  • Summary on the November 2016 release and other program updates - Vesa Juvonen ~20 min
  • Using Microsoft Bot Framework with SharePoint Framework (SPFx) - Vesa Juvonen - 10-15 min
  • Modern team site provisionign and new PnP Microsoft Graph PowerShell Cmdlets - Bert Jansen - 10-15 min
  • Latest on the PnP JS Core library and why it's a great tool for add-ins and SP Fx customizations - Patrick Rodgers - 10-15 min

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 new Microsoft Tech Community under SharePoint developer group.

 

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

PnP Office Hours has be rebranded as Special Interest Group (SIG) for PnP Sites Core, PnP PowerShell and provisioning engine. This way attendees know what the calls are concentrating more efficiently and can decide which areas they want to be more closely involved. SIG calls are bi-weekly calls where we talk about PnP sites core and related topics. These calls have also free Q&A section, if you have any questions around SharePoint development in on-premises or in cloud. Need to get recommendation to your design or having 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 following location.

All SIG meetings are being recorded and are available for view from PnP YouTube Channel. Here's the latest recordings from the SIG or old office hour meetings kept after previous monthly communications.

  • 2nd of November - Microsoft Graph Cmdlets, Programatic provisioning of modern team sites, GitHub changes for PnP
  • 19th of October - Modern team sites, PnP gallery cmdlets, NuGet package updates for CSOM 
  • 5th of October - PnP Template Gallery demo, upcoming NuGet packages for on-premises, Ignite preview

Notice. Next SIG for PnP Component / PowerShell will be on Wednesday 16th of November - If you have questions around these topics, please join this call and use the opportunity to ask questions from SP engineering and PnP Core team.

 

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 engineering perspective and to cover also latest development related on 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 on showing your code, just let us know.

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

  • 27th of October - Latest on SharePoint Framework, bot framework with SP Fx, React Todo Webpart
  • 13th of October - Latest on SharePoint Framework, elevated priviledges with SP Fx, latest on PnP JS Core

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

 

PnP Weekly Webcasts

We started new PnP Weekly Webcast series on October 2015 and have continued releasing new videos since that. All new webcasts are released in PnP YouTube Channel. Old webcasts and other demo videos are also found from the PnP Channel 9 section. Here's the new web casts released after the last monthly release.

 

PnP repositories in GitHub

There are quite a few different GitHub repositories under the PnP brand since we wanted to ensure that you can easily find and reuse what's relevant for you. We do also combine multiple solutions to one repository, so that you can more easily sync and get latest changes of our released guidance and samples. In general we do recommend you to use the PnP sample search tool at dev.office.com for locating relevant material for you. This should be easier and faster than trying to locate relevant material from GitHub.

Here's the current repository structure, including 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 sync'd 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-Office-Addins - Office Add-in samples and models (starting)
  • 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-OfficeAddins - Samples for the Office Add-ins development
  • PnP-Provisioning-Templates - Source for templates available from PnP Template Gallery at https://templates-gallery.sharepointpnp.com
  • PnP-Provisioning-Schema - PnP Provisioning engine schema repository

On top of the specific PnP repositories, PnP initiative also controls the new repositories under the SharePoint organization. PnP is owned nowadays by SharePoint engineering and we will be using PnP as the channel and forum to faciliate community work.

 

What's supportability story around PnP material?

Following statements apply cross 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 initiate 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 to be 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.

  • New sample angular-migration showing how to migrate existing Angular applications to SharePoint Framework
  • New sample angular-multipage showing how to manage UI state with Angular client-side web part with multiple views
  • New sample angular-search showing how to implement client-side web part with Angular, whcih uses search APIs for getting information from sites
  • New sample angular2-prototype showing how to build client-side web parts with Angular2
  • New sample js-display-list showing simplistic client-side web part to render list items from existing lists in SharePoint
  • New sample knockout-dependent-properties showing how to build custom components with Knockout and how to create dependent properties with property pane
  • New sample react-aad-webapi which shows how to call custom web api secured with Azure AD from client-side web part
  • New sample react-bot-framework which is a conceptual demo on how to use Microsoft bot framework in the context of client-side web part
  • New sample react-custompropertypanecontrols which is showing how to build custom property pane control when you have complex property pane UX to show for end users
  • New sample react-real-time which is showing how to build real time news feed using Microsoft Flow, Azure and socket.io
  • New sample react-sp-elevatedprivileges which is showing how to perform elevated privileges operations to SharePoint from WebAPI which is called from client-side web part
  • New sample react-todo-basic illustrating multiple different client-side web part patterns in React. Includes place holder control usage, advance scenarios for property pane and many other concepts for client-side web parts

 

PnP CSOM Core and Provisioning Engine

PnP CSOM Core component is a wrapper on top of native CSOM and REST, which simplifies complex scenarios with remote APIs, one of the example is the PnP Provisioning Engine for remote templates. The first version of the PnP remote provisioning engine was released with the May 2015 release. For the November 2016 release we have continued to add new supported capabilities and made significant improvements from stability perspective for both SharePoint Online and SharePoint on-premises (2013 and 2016). This list contains the main updates that have been added in the November 2016 release:

  • General overall quality and performance improvements for on-premises and online
  • Support for creating modern team sites with Microsoft Graph
  • Minimal support for applying customizations to modern team sites using PnP Provisioning Engine
  • 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 v1.0.6

PnP JavaScript Core Library will move to version 1.0.6. This is JavaScript library which will increase productivity of developers when you are developing JavaScript based customizations on top of SharePoint. Library has been released as a npm package and you can find the source code from GitHub. PnP JS Core library is being developed and coordinated by the PnP Special Interest Group for SPFx and JavaScript, which has weekly meetings around this development effort and general topics on upcoming SharePoint Framework. PnP JS Core library is developed using typical open source web stack tooling, so that it's fully aligned on the development models with SP Framework. 

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

v1.0.6 is coming out early November with following capabilities.

  • Improved support for reading and writing files
  • Improved logging of failed HTTP requests
  • Support for the search suggest API
  • Improved batch scoping for web and site instances
  • Fixed an issue when using node authentication with client secrets with certain special characters.
  • Fixed an issue where results were undefined when using paging with items and odata=verbose.
  • Fixed an issue where the expiration date wasn't being passed along in the caching wrapper's getOrPut method.
  • Fixed an issue where Refiners were not working as expected with search.
  • Fixed a bug that prevented the promise returned from batch.execute to resolve when a batch had internal dependencies (adding or updating a list item). Also restructured how the results are aggregated into a promise chain and returned to ensure batch.execute's promise resolved AFTER all of the batch promises.’

 

PnP PowerShell

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

Here's the latest changes in the PnP PowerShell

  • Cmdlet prefix change from SPO to PnP
    • Notice that your existing scripts also still work due alias entries for both, but we do recommend updating gradually your scripts to use PnP prefix with PnP PowerShell
  • Marked Get-SPOSite as deprecated. Use Get-PnPSite instead.
  • New Cmdlets for Graph:
    • Connect-PnPMicrosoftGraph
    • New-PnPUnifiedGroup
    • Get-PnPUnifiedGroup
    • Remove-PnPUnifiedGroup
  • Fixed Set-SPOTheme to support Non-Classic sites/Modern sites
  • Overall quality improvements and bug fixes
  • Updated documentation for Cmdlets

 

PnP sample library

Here's updates cross the PnP code sample library by the community on the code and documentation, which is great way to contribute as well.

  • Updated script SharePoint.Hybrid.CloudSSA.Configuration designed for configuring a SharePoint Server farm with a hybrid Cloud Search Service Application
  • Updated sample Provisioning.PnPDeployer.Console which is a console application that makes it easy to deploy artifacts to SharePoint On-Premises or Online. Based on the PnP Provisioning Engine, it wraps the engine's main functionalities and provides a new layer responsible for handling tokens, authentication, sequences and logging.
  • pdated Solution Business.O365StarterIntranet Intranet projects shouldn’t have to reinvent the wheel every time for basic features (like navigation or multilingualism). This solution aims to provide the fundamental building blocks of a common intranet solution with SharePoint Online/Office 365 through a lightweight client side solution using the latest web stack development tools and frameworks.
  • Updated sample SharePoint.RESTAPI.SPApp to include additional accordion sample with knockout based UI
  • Updates to the PnP Partner Pack
    • Fine tuning and polishing based on community input

 

PnP Guidance articles

The PnP Guidance repository contains guidance articles which are published at MSDN. Starting from end of May 2016 this process was changed to be fully automated and there's automatic contributors list in the MSDN side showing who have been providing updates to these documents. We are looking forward on your contributions around real life learnings in different areas. Read more details around this open publishing model from following blog post

We did not release any new guidance articles during October, but updated some of the articles based on the community input.

See MSDN articles from the PnP MSDN section at https://aka.ms/OfficeDevPnPMSDN

 

PnP Guidance videos

You can find all PnP videos from our YouTube Channel at https://aka.ms/sppnp-vidoes. This location contains already significant amount of detailed training material, demo videos and community call recordings. Since last release communications, we did not release any individual videos on top of the Special Interest Group recordings and PnP Webcasts.

Since YouTube channel is relatively new, some of the PnP videos are also in the PnP Channel 9 video blog.

 

Key contributors for the November 2016 release

Here’s the list of active contributors (in alphabetical order) during past month in PnP repositories. PnP is really about building tooling together with the community for the community, so your contributions are highly valued cross the Office 365 customers, partners and obviously also at Microsoft.

Thank you for your assistance and contributions from the behalf of the community. You are making a difference!

 

Companies: Here's the companies, which provided support for PnP initiative for this month by allowing their employees working for the benefit of others in the PnP initiative. There were also people who contributed from other companies during last month, but we did not get their logos and approval to show them on time for this communications. If you still want your logo for this month's release, please let us know and share the logo with us. Thx.

ClearPeople  Canviz Content and Code Mando   piasys

onebit software  rencore Slalom   Triad

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

 

Latest traffic statistics

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

Traffic at PnP repository

Traffic from PnP Sites Core repository

Traffic from PnP PowerShell repository

Traffic from PnP JavaScript Core Component repository

See About Repository Graphs for more details on above statistics.

Next steps

  • November 2016 monthly community call is on 8th of November at 8 AM PDT / 5 PM CET for latest release details with demos - Download invite with detailed schedule for your time zone from https://aka.ms/sppnp-call.

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 7th of November 2016