Office 365 Developer Patterns and Practices (PnP) November 2015 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 project where Microsoft and external community members are sharing their learning’s around implementation practices for Office 365 and 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 people. 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 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 November 2015 release
- GitHub repository forks at different repositories
- PnP main repository – 1.097
- PnP Sites Core – 76
- PnP PowerShell – 65
- Yammer group members – 3.431
- Unique visitors during past 2 weeks cross repositories – 5.427
- Merged pull requests cross repositories – 1.078
- Closed issues and enhancements ideas cross repositories – 225
- PnP Core component NuGet package downloads – 15.369
Main resources around PnP program
- PnP under dev.office.com – http://aka.ms/OfficeDevPnP – One location for all the resources and news around PnP
- PnP GitHub – http://aka.ms/OfficeDevPnPGitHub – main repository, more on this below
- PnP MSDN pages – http://aka.ms/OfficeDevPnPMSDN
- PnP Yammer group – http://aka.ms/OfficeDevPnPYammer
- PnP Videos at Channel 9 – http://aka.ms/OfficeDevPnPVideos
- PnP training package (videos in Channel 9) – http://aka.ms/OfficeDevPnPTraining
- PnP Guidance Repository – http://aka.ms/OfficeDevPnPGuidance
November 2015 monthly community call
Agenda for the Tuesday 10th of November community call (Download ics invite from http://aka.ms/OfficeDevPnPCall):
- Summary on the November release and other updates in program – Vesa Juvonen ~30 min
- PnP Partner Pack – Demo and Q&A on capabilities – Paolo Pialorsi ~30 min
If you have any questions, comments or feedback, please participate in our discussions in the Office 365 Patterns and Practices Yammer group at http://aka.ms/OfficeDevPnPYammer. We already have more than 3.400 members in this group with lively discussions on different add-in model related topics. This is the most active developer group in the Office 365 Technical network and we are definitely proud and thankful of this.
New PnP Weekly Web Cast
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.
- 12th of Oct – OneDrive for Business changes from customization perspective with latest changes
- 19th of Oct – Background job patterns – Remote timer jobs – Scenarios and approaches
- 26th of Oct – Using PnP PowerShell for automating tasks with Office 365
- 1st of Nov – Introduction to Office Dev PnP Provisioning Engine
- 9th of Nov – Introduction to Office Dev PnP Partner Pack
Introducing PnP Partner Pack
During past month we worked on new PnP Partner Pack, which is new packaged reference solution around main topics from the PnP guidance. PnP Partner Pack demonstrates main topics, which are commonly used within mid-sized and enterprise deployments around Office 365 and SharePoint online. Here’s list of key functionalities demonstrated in the PnP Partner Pack.
- Self service site collection provisioning with remote provisioning pattern
- Sub site provisioning using remote provisioning pattern
- “Save site as a provisioning template” capability to store any existing site as a available template in specific site collection or as tenant level template
- My site collections personal view
- Responsive user interface for SharePoint sites without introducing custom master page
- Custom NavBar and Footer for Site Collections with JavaScript object model
- Sample remote timer jobs (implemented as WebJobs) for Governance rules enforcement
- Uses Office UI fabric for provider hosted app user interface elements
- Deployed as Office 365 App with app-only permissions
We have also recorded specific weekly web cast for PnP Partner Pack introduction, so please check following blog post for additional details
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, Office 365, Unified API 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-Office-Addins – Office Add-in samples and models
- 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.
Latest changes
Provisioning Engine
The first version of the PnP remote provisioning engine was released with the April 2015 release. For the November release we have continued to add new supported capabilities and made improvements from stability perspective for both Office 365 and on-premises. This list contains the main updates that have been added in the November release:
- Improved and updated delta handling
- Overall quality and performance improvements
- Improved on-premises support with CSOM version detection
- Added support for lookup fields whcih isn’t site column
- Bug fixes on the publishing feature handling
- Bug fixes on content type handling
- Bug fixes on list instance handling
- Bug fixes on workflow extraction
- Updated system templates for delta detection
PnP library
- PnP Core: Lots of re-factoring done to improve code quality and completeness:
- provisioning engine updates (see above)
- Added support for X.509 Certificate authentication in TimerJob
- Permission handling optimization
- Improvements on UserCustomAction handling extensions
- Implement ToXML method for a template
- Removal of deprecated methods
- Build and test automation improvements
- Both PnP Core Nuget packages (cloud and on-premises) have been also updated accordingly.
- New sample Core.JavaScript.LoaderPattern which demonstrates how to use a loader file in conjunction with a UserCustomAction to embed JavaScript in a SharePoint site. This pattern minimizes the need to update the deployed custom action.
- New sample Core.ListViewThreshold.JSOMAndREST demonstrates how to retrieve more items than treshold limit with JSOM and REST.
- Updated component Core.TaxonomyPicker to with better suggestion capability and overall technical implementation.
- Significant updates to Solution Provisioning.UX.App with new capabilities.
- Updated PnP-PowerShell Commands with new CommandLets and with few fixes
- Overall quality improvements
- New-SPOProvisioningTemplateFromFolder CmdLet added
- Updated Get-ProvisioningTemplate CmdLet
- Added Samples folder with initial samples
- Updated documentation for CmdLets
- Updated unit tests for cmdlet’s
PnP Guidance articles
The PnP Guidance repository has been setup for working on articles. Part of these articles are already available on MSDN 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 we did some general updates on the articles, but there’s no actual new guidance published. You can easily find the relevant guidance for you using our search tool at dev.office.com.
There’s already a significant amount of articles that has been added to the PnP MSDN section at http://aka.ms/OfficeDevPnPMSDN
PnP Guidance videos
We did not release any new specific guidance videos, except he new web cast videos mentioned already above in this blog post. You can find all PnP videos from our Channel 9 section at http://aka.ms/OfficeDevPnPVideos. This location contains already significant amount of detailed training material, demo videos and community call recordings.
Key contributors for the November 2015 release
Here’s the list of active contributors (in alphabetical order) during past month in PnP repositories. It’s great to see familiar names and also new people joining on the the community effort and assisting others. We are looking forward to continue working with such a talent and hope to get more additional people involved on this joint effort to help the community in the transition towards Office 365 and SharePoint add-in model/app model techniques.
Thank you for your assistance and contributions from the behalf of the community. You are making a difference!
- Anil Lakhagoudar (Cognizant) – Anil-Lakhagoudar
- Anatoly Mironov (Bool Nordic AB ) – @mirontoli
- Arceau – GitHub alias
- Arto Kaitosaari (Affecto Oy) – @artokai
- Daniel Laskewitz (Sogeti) – @laskewitz
- Erwin van Hunen (Knowit AB) – @erwinvanhunen
- Henrik Gustafsson (Cognit Consulting AB) – @SharePointHenke
- Ivan Vagunin (KnowIt) – @ivagunin
- Ken Domen (Nike) – @kendomen
- Lars Fernhomberg – lafe
- Luis Mañez – @luismanez
- Massimo Prota (Rapid Circle) – @massimoprota
- Michael Schau (WorkPoint A/S) – @SchauDK
- Mårten af Sandeberg (KnowIT) – afsandeberg
- olemp – GitHub alias
- Ole Kristian Mørch-Storstein (Puzzlepart) – blog
- Paolo Pialorsi (PiaSys.com) – @PaoloPia
- Pieter Veenstra (Bluesource) – @PieterVeenstra
- Radi Atanassov (OneBit Software) – @RadiAtanassov
- Rajesh Sitaraman (BeyondSoft) – @rjesh
- Roydon Gyles-Bedford (Perficient) – blog
- Sergei Sergeev – s-KaiNet
- Tatjana Starovoitova (PDF Share Forms) – Voyta
- Wictor Wilen – @wictor
Here’s the list of Microsoft people who have been closely involved on the PnP work during last month.
- Antons Mislevics (Microsoft)
- Bert Jansen (Microsoft) – @O365Bert
- Brian Michely (Microsoft) – @brianmichely
- Dan Budimir (Microsoft) – MSDN blog
- Frank Marasco (Microsoft) – @frank_marasco
- Ivan Bondy (Microsoft) – @ivanbondy
- Jeremy Thake (Microsoft) – @jthake
- Kiki Shuxteau (Microsoft)
- Patrick Rodgers (Microsoft)
- Ron Tielke (Microsoft)
- Sami Nieminen (Microsoft)
- Steve Walker (Microsoft) – @sharepointing
- Vesa Juvonen (Microsoft) – @vesajuvonen
Latest statistics
Here’s some statistics from the PnP, PnP PowerShell and PnP Sites Core repositories. It’s great to see the growing contribution numbers and for example how our punch card looks like, since it proofs that this is truly a global effort with contributions 24/7.
Contributions at PnP repository
Traffic at PnP repository
Punch Card from PnP repository
Only 4 spots missing.
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
- November monthly community call is on 10th of November for latest release details – Download invite from http://aka.ms/OfficeDevPnPCall.
- Following master merge will happen on 4th of December and December community call is on 8th of December
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, Office 365, Microsoft