SharePoint / Office 365 Dev Patterns and Practices (PnP) December 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)?
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 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.
- How to get started and contribute to Office 365 Dev PnP program? - Wiki
- Office Dev PnP Webcast – How to get started with Office Dev PnP? - Webcast
- Office Dev PnP Webcast – How to contribute to Office Dev PnP initiative? - Webcast
Some key statistics around PnP program from November 2016
- GitHub repository forks at different repositories
- Unique visitors during past 2 weeks cross PnP repositories - 13056
- Unique visitors during past 2 weeks in SharePoint organization repositories - 3701
- Merged pull requests cross PnP repositories (cumulative) - 2674
- Closed issues and enhancements ideas cross PnP repositories (cumulative) - 1100
- PnP Core component NuGet package downloads - 59254
- Unique visitors in PnP MSDN pages during November 2016 - 26873
- Unique tenants using PnP CSOM Core component during November 2016 - 3001
- Http requests towards SharePoint Online from PnP CSOM Core Component during November 2016 - 1045000000
Main resources around PnP program
- 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
- PnP training package (videos in Channel 9) - http://aka.ms/OfficeDevPnPTraining
- Presentations at docs.com - http://aka.ms/SPPnP-Docs
December 2016 monthly community call
Agenda for the Tuesday 13th of December community call at 8 AM PDT / 5 PM CET:
- Summary on the December 2016 release and other program updates - Vesa Juvonen ~20 min
- PnP JS Core 2.0 preview - latest changes - Patrick Rodgers - 10-15 min
- File upload sample SPFx client-side web part built with Angular 1.x and ngOfficeUIFabric - Atish Kumar Dipongkor - 10-15 min
- ASP.net MVC project templates for Office add-ins - Jonathan Huss - 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.
- 30th of November - November statistics, GitHub move, PnP sample gallery discussion, SharePoint documentation improvements
- 16th of November - Latest statistics, upcoming CSOM NuGet package update, GitHub repository move, demo on provisioning modern team sites with MS bot framework using voice recognizion
- 2nd of November - Microsoft Graph Cmdlets, Programatic provisioning of modern team sites, GitHub changes for PnP
Notice. Next SIG for PnP Component / PowerShell will be on Wednesday 14th of December - 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.
- 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 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.
- 8th of December - Latest on SPFx, PnP JS Core 2.0 release and other changes
- 11th of November - Latest on SPFx side, PnP JS Core library changes, demos on SPFx and PnP JS Core usage
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.
- 12th of December - Building multi-view React client-side web parts with SharePoint Framework
- 5th of December - Introducing Office 365 Connectors - Building custom connectors
- 28th of November - Building real time news feed web part with SharePoint Framework
- 21st of November - PnP Core team on the future of SharePoint development
- 14th of November - Building multi-view Angular 1.x client-side web parts with SharePoint Framework
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.
During November, majority of the PnP repositories were moved to SharePoint GitHub organization.
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 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 http://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.
- 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 APIs
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
SharePoint Framework samples
These are samples which are avaialble from the SharePoint client-side webpart sample repository at https://github.com/SharePoint/sp-dev-fx-webparts. We will be working on getting all of these samples to RC0 level, when the release candidate goes live, so that tutorials and samples are workign properly in any environment.
- New sample angular-mostpopularitems showing how to get most popular items from site or document library using search API
- New sample angular-msgraph showing how to connect to Microsoft Graph from angular based client-side web part
- New sample angular-multipage showing how to implement multi-view web part and how to track view status in the implementation
- New sample angular-ngofficeuifabric-file-upload showing how to implement file upload capability from angular client-side web part
- New sample knockout-taxonomy how to build web part using knockout, which shows taxonomy items from the taxonomy store
- New sample react-custompropertypanecontrols to show how to build custom property pane controls with React
- New sample react-mobx showing how to use Mobx to track web part state in React based implementation
- New sample react-multipage showing how to implement multi-view web part using react and how to track the view status
- New sample react-redux showing how to use Redux in the client-side web parts to keep track on the web part state
- Updated sample react-real-time to change Microsoft Flow usage to Azure Logic apps
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
- Localization improvements
- Improvements on taxonomy handling
- Support to define logo for modern team sites, when created using core component methods
- 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.
This is similar effort as what PnP initiative previously has done with the PnP CSOM Core Component together with community.
v2.0.0 is released as part of the December release with following capabilities.
- npm package /lib will be es6
- BUild pipeline fully updated
- jsdoc replaces typedoc
- Folder structure changes in library for easier implementation
- Better debugging support
- Provisioning capabilities removed, but will be introduced in new JS library released later
- pnp.js and pnp.min.js bundled with webpart, transpiled to es5 using babel
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 addative for SharePoint Online management shell, which concentrate more on the administrative tasks with SharePoint Online.
Here's the latest changes in the PnP PowerShell
- Added Set-PnPUnifiedGroup to manipulate settings of unified group (= modern team sites)
- Added versioning support to Set-PnPList
- Added Copy-PnPFile, Move-PnPFile and Rename-PnPFile for file manipulation
- Added Set-PnPDefaultPageLayout for adding default page layout for classic publishing site
- Added Set-PnPAvailablePageLayouts for adding available page layouts for classic publishing site
- Updated Set-TaxonomyFieldValue to support setting multiple terms into field
- Removed installer from the repository to avoid challenges with it related on testing etc.
- 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.
- New sample Office365.Connectors showing how to build custom Office 365 connectors using C#
- New template project Excel.MVCAddInTemplate to create Excel add-ins developed using ASP.NET MVC framework
- New template project Outlook.MVCAddInTemplate to create Outlook add-ins developed using ASP.NET MVC framework
- New template project PowerPoint.MVCAddInTemplate to create PowerPoint add-ins developed using ASP.NET MVC framework
- New template project Word.MVCAddInTemplate to create Word add-ins developed using ASP.NET MVC framework
- Updated SharePoint.SandboxTool scanner tool for sandbox solutions (also on-premises) with better detection support for specific types
- Updates to the PnP Partner Pack
- Fine tuning and polishing based on community input
- Updated to use latest version
- Documentation improvements, including a guidance video on how to setup setup the solution
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 November 2016, but updated some of the articles based on the community input.
PnP Guidance videos
You can find all PnP videos from our YouTube Channel at http://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 released one demo / guidance video.
Notice that ome of the old PnP videos are also in the PnP Channel 9 video blog, which was previously used.
Key contributors for the December 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!
- Alex Terentiev - AJIXuMuK
- Anthony Pounder (ID Live) - @wortony
- Atish Kumar Dipongkor (BrainStation-23) - dipongkor
- Bart Donninger - bartdonninger
- Bill Ayers (Flow Simulation ltd.) - @spdoctor
- Camilio Borges - @camiloborges
- David Hartman (Slalom) - davidhartman
- Edwin Lunandy (newsignature) - populationtwo
- Erwin van Hunen (Rencore) - @erwinvanhunen
- Elio Struyf - @eliostruyf
- Franck Cornu (CGI) - @FranckCornu
- Ivan Vagunin (Knowit AB) - @ivagunin
- Jens Otto Hatlevold (Bouvet AS) - jensotto
- Joseph Velliah (CA Technologies) - sprider
- Kevin Mees (Experts Inside) - @kevin_mees
- Luis Mañez (ClearPeople) - @luismanez
- Marcus Abrahamsson (Solution XPerts) - Abrissirba
- Mikael Svenson (Puzzlepart) - @mikaelsvenson
- Nikhil Sarvaiye (Nitor Infotech Pvt. Ltd.) - nikhilsarvaiye
- Ole Martin Pettersen - olemp
- Paolo Pialorsi (PiaSys.com) - @PaoloPia
- Pavel Nadosekov - nedosekov
- Pieter Veenstra (Triad) - @PieterVeenstra
- Radi Atanassov (OneBit Software) - @RadiAtanassov
- Rene Modery - @modery
- Sebastian Mattar - sebastianmattar
- Sergei Sergeev - s-KaiNet
- Siobhan Baynes (CPS Global) - SiobhanBaynes
- Stéphane Magne (Infeeny) - @SPParse
- Steve Beaugé - stevebeauge
- Todd Baginski (Canviz) - @toddbaginski
- Waldek Mastykarz (Rencore) - @waldekm
- Vardhaman Deshpande - @vrdmn
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.
Microsoft people: Here’s the list of Microsoft people who have been closely involved on the PnP work during last month.
- Antons Mislevics (Microsoft) - antonsmislevics
- Bert Jansen (Microsoft) - @O365Bert
- Brian Michely (Microsoft) - @brianmichely
- Chakkaradeep (Chaks) Chinnakonda Chandran (Microsoft) - @chakkaradeep
- Chirstian Pappert (Microsoft) - @ShareMePoint
- Dan Budimir (Microsoft) - MSDN blog
- David Chesnut (Microsoft)
- Enrico Natella (Microsoft) - enriconatella
- Frank Marasco (Microsoft) - @frank_marasco
- Jonathan Huss (Microsoft) - @jonathanhuss
- Kiki Shuxteau (Microsoft)
- Keyur Patel (Microsoft)
- Koen Zomers (Microsoft) - @koenzomers
- Laura Graham (Microsoft) - Lauragra
- Patrick Rodgers (Microsoft) - @mediocrebowler
- Vesa Juvonen (Microsoft) - @vesajuvonen
Latest traffic statistics
Traffic at PnP repository
Traffic from PnP CSOM Core repository
Traffic from PnP PowerShell repository
See About Repository Graphs for more details on above statistics.
- December 2016 monthly community call is on 13th of December at 8 AM PDT / 5 PM CET for latest release details with demos - Download invite with 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 2016