Office 365 Developer Patterns and Practices–June 2016 release

[Cross posting from dev.office.com]

Office 365 and SharePoint Patterns and Practices (PnP) June 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 Office 365 and SharePoint Patterns and Practices (PnP)?Office 365 Developer Patterns and Practices

PnP is community driven open source initiative where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 in general and also SharePoint on-premises (add-in model). Active development and contributions happen our GitHub project under 'dev' branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications.

This is work done by the community for the community without any actual full time team members. 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. There is however highly active PnP Yammer group, where you can get fast support on 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 Web Cast.

Some key statistics around PnP program from June 2016 release

Main resources around PnP program

June 2016 monthly community call

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

If you have any questions, comments or feedback, please participate in our discussions in the Office 365 Patterns and Practices Yammer group at https://aka.ms/OfficeDevPnPYammer. We already have more than 4400 members in this group with lively discussions on different SharePoint and Office 365 development related topics. This is the most active developer group in the Office 365 Technical network and we are absolutely proud and thankful of that.

PnP Office Hours and Special Interest Group (SIGs) for JavaScript development

We started bi-weekly PnP Office Hours during February 2016 for addressing questions on how to contribute towards PnP. These are open discussions around what the Core team is doing and where the community members can assist. This time is also open for discussions around design decisions, challenges and possible issues in the PnP deliverables. You can download invite for the bi-weekly invite from following location. Recording of these Office Hours are shared in the PnP Yammer group within 24 hours after the recording was done.

Due constantly growing interest on the PnP program, we also are piloting Special Interest Groups (PnP SIGs), which are more targeted on specific topic, like SharePoint Client Side (JavaScript) development or other areas. We are currently piloting this model with SIG for Client Side development, which have had great interest. Client Side Development SIG is creating its own JavaScript Core component using normal web stack tooling, which aligns on the recently announced upcoming SharePoint Framework. Weekly calls are around 50%-50% on the JS Core component development and discussions around the upcoming SharePoint Framework.

You can find more around PnP Office Hours and Special Interest Groups (SIGs) from following blog post or check the web cast around the JavaScript SIG for the specific details.

PnP Weekly Web Casts

We started new PnP Weekly Web Cast on October 2015 and have continued releasing new video web casts for each week. All web casts will be to the PnP Channel 9 section. Here's the new web casts released after the last monthly release.

Notice that we'll have a summer break on the web cast publishing and the last web cast before the break will go out on Monday 20th of June 2016. We'll continue with web casts during August 2016.

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-Schema - PnP Provisioning engine schema repository

Note. We are looking again to do some level of refactoring of the PnP repositories due the upcoming model for the new SharePoint Framework. We'll come back on this slightly later when things are fully locked.

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

Provisioning Engine

The first version of the PnP remote provisioning engine was released with the May 2015 release. For the Juhe 2016 release we have continued to add new supported capabilities and made significant improvements from stability perspective for both Office 365 and on-premises. This list contains the main updates that have been added in the June 2016 release:

  • General overall quality and performance improvements for on-premises and online
  • New OpenXML based support for provisioning templates - When serializing template with assets, you can generate automatically .pnp file, which contains all the assets related on the template
  • Support for lookup fields pointing from sub site to root web
  • Support for folders in AzureStorageConnector
  • Support for extracting multi-lingual resources values
  • Other multi-lingual support improvements
  • Updated base templates for the SPO, 2013 and 2016 - used in delta handling

We are planning to release new schema version and some new capabilities as part of the June 2016 release. This new version will contain few missing pieces from the current design, which will be also addressed gradually in the PnP provisioning engine.

PnP JavaScript Core library v1.0

Version 1.0 of the PnP JavaScript Core Library was released during this month. 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 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 future usage with SP Framework. 

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

You can read more details around the v1.0 capabilities from following release blog post at MSDN or from GitHub wiki pages:

PnP library

We have done general cleaning in the repository related on Nuget package updates and also removed some samples, which are no longer relevant. We are planning to continue these cleaning activities during the next months as well to streamline the repository and to combine some samples for reducing the overall number of similar samples.

There's also significant amount of general updates on the existing samples done by the community on the code and documentation, which is great way to contribute as well.

  • PnP Core : Lots of re-factoring done to improve code quality and completeness:
    • provisioning engine updates (see above)
    • Eanbled and DisableResponsiveUI extension methods to web object
    • Support for adding navigation nodes at beginning or end
    • Set SearchCenter URLs at site level
    • Extension methods to start a new workflow instance from web or site level
    • Convert a folder to document set
    • General bug fixing, performance and quality improvements
    • Updated to use latest CSOM version for SharePoint Online
    • Automated documentation updated to md file
    • Removal of deprecated methods
    • Build and test automation improvements with unit test changes
    • All PnP Core Nuget packages (cloud and on-premises) updated with new version
  • PnP JavaScript Core : Version 1.0 finalized:
    • Official v1.0 version released as npm package
  • New sample SharePoint.PnP-JS-Core with set of interactive demos for using the PnP JavaScript Core Library. Implemented as a SharePoint hosted add-in, so that you can easily try them out and see live results
  • New sample Core.DownloadMultipleFilesJS that shows how to add download multiple files functionality to SharePoint document libraries by adding "download all files" and "download files as zip" to library ribbon as custom actions.
  • New sample BusinessApps.O365ProjectsApp which contains code samples for upcoming book "Programming Office 365" for Microsoft Press. In particular it contains samples for: Office 365 Applications, Remote Timer Job and Graph SDK
  • New solution AspNetCore.Authentication An ASP.NET Core implementation of the TokenHelper and SharePointContext classes for use in SharePoint Apps. This library (and sample) demonstrates how to get ASP.NET Core provider-hosted apps authenticated through SharePoint.
  • Updated Provisioning.Extensibility sample to use latest extensibility interface
  • Updated Core.EmbedJavaScript.HeaderFooter sample with small bug fixes
  • Updated Core.ProfilePictureUploader to support multi-lingual my sites as well
  • Updated Core.TaxonomyPicker component with small styling fixes and improved handling of the dom structure updates
  • Updated Provisioning.UX.App provisioning solution with small updates
  • Updated solution Provisioning.VSTools with small adjustments and bug fixes
  • Updated PnP-PowerShell Commands with new CommandLets and with few fixes
    • Overall quality improvements and bug fixes
    • Added support for new pnp OpenXML templates
    • -CreateDrive option for Connect-SPOnline CmdLets for file system like access to SPO sites
    • New CmdLet Get-SPOFolderItem for file access in SPO
    • New CmdLets Enable-SPOResponsiveUI and Disable-SPOResponsiveUI for applying PnP Responsive UI package to sites with single Cmdlet call
    • New CmdLet Add-SPODocumentSet to add a new document set
    • New CmdLet Remove-SPOFolder
    • Updated help details for CmdLets
    • New Invoke-SPOWebAction Cmdlet which lets to iterate sites, lists and lsit items and execute provided delegated methods on the target.
    • Updated documentation for CmdLets
  • Updates to the PnP Partner Pack
    • Small adjustments around the implementation for upcoming v2.0 release (later)
    • Setup guidance improvements
    • Updated to use the latest Nuget package for SharePoint Online

Office 365 Pnp Partner Pack

PnP Guidance articles

he PnP Guidance repository contains guidance articles which are published at MSDN. Starting from end of May 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

Here's a sample article with Contribute option and list of contributors for it
MSDN PnP pages picture

As part of this change, we also released significant amount of new content in the MSDN. You can find for example farm solution to add-in model transformation recipes in the MSDN now at following location

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

PnP Guidance videos

We did not release any new guidance videos during this month on top of the new web cast videos mentioned already above in this blog post. You can find all PnP videos from our Channel 9 section at https://aka.ms/OfficeDevPnPVideos. This location contains already significant amount of detailed training material, demo videos and community call recordings. We are considering option to move to Youtube with the video channel for more control with play lists, so that you can find more easily what you are looking for.

Key contributors for the June 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.

c Stefan Bauer bluescore ClearPeople cognit consulting IOZ knowit Net at Work onebit software piasys perficient rencoresogeti sympraxis consulting Workpoint

 

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 repository.

Traffic at PnP repository
Traffic from PnP repository
Traffic from PnP Sites Core repository

Traffic from PnP Core Component repository

Traffic from PnP PowerShell repository

Traffic from PnP PowerShell repository

Traffic from PnP JavaScript Core Component repository

Traffic from JS Core repository

See About Repository Graphs for more details on above statistics.

Next steps

  • June 2016 monthly community call is on 14th of June at 8 AM PST / 5 PM CET for latest release details with demos - Download invite with detailed schedule for your time zone from https://aka.ms/OfficeDevPnPCall.
  • We'll have a summer break for the releases and following master merge will happen on 5th of August 2016 and August community call is on 9th of August 2016. Community call invite will be updated late June with updated connection information. During this summer break, we won't be doing master merge (monthly release), but team continues working in GitHub and in Yammer.

Office 365 Pnp resources

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, Office 365, Microsoft - 10th of June 2016