Office 365 Developer Patterns and Practices – March 2016 release

[Cross posting from dev.office.com blogs]

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

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.

Some key statistics around PnP program from March 2016 release

  • GitHub repository forks at different repositories 
  • Yammer group members - 3.985
  • Unique visitors during past 2 weeks cross PnP repositories - 9.940
  • Merged pull requests cross PnP repositories - 1.623
  • Closed issues and enhancements ideas cross PnP repositories - 488
  • PnP Core component NuGet package downloads - 24.542

Main resources around PnP program

March 2016 monthly community call

Agenda for the Tuesday 8th of March (8 AM PST) community call (download invite):

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 4.000 members in this group with lively discussions on different SharePoint and Office 365 related topics from on-premises and cloud perspective. This is the most active developer group in the Office 365 Technical network and we are definitely proud and thankful of that.

Spring 2016 PnP community survey

We are conducting a community survey around the Office 365 Developer Patterns and Practices (PnP) program. Your input truly matter and we want to collect some feedback around the PnP initiative for the future direction. You can find this short survey from the following address. Survey will be open for feedback until Monday 14th of March 2016. Results and details will be shared with the community later.

Thank you for your input on this survey, your feedback and comments are highly appreciated.

PnP Office Hours and Special Interest Groups (SIGs)

We started bi-weekly PnP Office Hours during February 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 discussing aroung design decisions, challenges and possible issues in the PnP deliverables. You can download invite for the bi-weekly invite from following location.

Due constantly growing interest on the PnP program, we also are piloting Special Interest Groups (PnP SIGs), which are more targeted on specicic 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 has already started building generalized library to be used with JavaScript development using TypeScript and with modern development practices. If you're interested of joinign this effort, please use following resources.

Please read more around PnP Office Hours and Special Interest Groups (SIGs) from following blog post.

PnP Weekly Web Casts

We started new PnP Weekly Web Cast with video series with new video on each Monday around key topics around the guidance or around hot topics from the community. Videos will be released to the PnP Channel 9 section. Here's list of videos released since last monthly communications.

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 chanages 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-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. Some tools coming also soon.
  • PnP-OfficeAddins - Samples for the Office Add-ins development
  • PnP-Provisioning-Schema - PnP Provisioning engine schema repository

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 April 2015 release. For the March 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 March 2016 release::

  • Significant overall quality and performance improvements
  • Updates on home page extraction process with publishing and non-publishing sites
  • Updates on the workflow extraction handling
  • Updates on calculated column handling
  • Updates on the custom theme and welcome page extraction with tenant or web application root site
  • Updated base templates for the SPO and 2016 - used in delta handling
PnP library

We are looking to do significant consolidation on the SharePoint samples during upcomign months, which will help the community more easily find the general reference API samples for SharePoont. Target is to significantly grow also the non-SharePoint areas around Microsoft Graph, Office 365 API and also alternative technologies.

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)
    • General bug fixing, performance and quality improvements
    • Updates on the CAML class helper
    • v1.0 of automated documentation creation to md file
    • Removal of deprecated methods
    • Build and test automation improvements with unit test changes
    • Preparations for SP2016 specific version - coming in April
    • Both PnP Core Nuget packages (cloud and on-premises) have been also updated accordingly.
  • New sample MicrosoftGraph.Office365.GroupsExplorer which is ASP.NET MVC project which lists all groups in the user's tenant, along with all the properties..
  • New Core.TaxonomyNavigationComponents component as a set of common taxonomy navigation components (main menu, contextual menu and breadcrumb) for SharePoint Online using Office UI Fabric and JSOM.
  • New sample Python.Office365.AppAuthentication which shows how to set up authentication between a Python app (using the Flask microframework) and Office 365 SharePoint Online site. The goal of this sample is to show how a user can authenticate and interact with data from the Office 365 SharePoint site.
  • New Tenant Information Portal which can be used to display information regarding your Azure Active Directory Tenant specifically related to Service Principals that are only surfaced via PowerShell. By default, when you register an add-in with appregnew/appinv, these service principals are not displayed in the Azure Portal and the default expiration is 1 year. This solution will also assist you with identifying apps (add-ins) that are expired or that may be expiring soon.
  • Updated Provisioning.UX.App provisioning solution with better UI handling and sub site provisioning override.
  • Updated PnP-PowerShell Commands with new CommandLets and with few fixes
    • Overall quality improvements and bug fixes
    • Updated documentation for CmdLets
  • Updates to the PnP Partner Pack
    • Additional Updates on the setup guidance
    • Code quality improvements

PnP Guidance articles

The PnP Guidance repository contains guidance articles which are mostly being published atMSDN and more will follow. Everyone can contribute or update these articles via updating them in GitHub and the changes will flow back to MSDN once the synchronization setup has been completed.

During this month there was significant effort on synchronizing the MSDN and GitHub artciles to ensure that both sides are in sync and there's matching page in the GitHub. Targe is to update the MSDN based on community contributions.

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

PnP Guidance videos

We did release two new guidance video 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.

Key contributors for the March 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!

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

 

Latest statistics

Here's some statistics from the PnP, PnP PowerShell and PnP Sites Core (core component) repository.

Contributions at PnP repository

Traffic at PnP repository

Contributions at PnP Sites Core repository

Traffic from PnP Sites Core repository

Contributions at PnP PowerShell repository

Traffic from PnP PowerShell repository

See About Repository Graphs for more details on above statistics.

Next steps

  • March 2016 monthly community call was on 8th of March at 8 AM PST / 5 PM CET for latest release details with demos – Download recurrent monthly invite from https://aka.ms/OfficeDevPnPCall.
  • Following master merge will happen on 8th of April and April community call is on 12th of April 2016

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, Office 365, Microsoft - 7th of March 2016