Office 365 Developer Patterns and Practices (PnP) January 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 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 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 January release
- GitHub repository forks at different repositories
- Yammer group members - 3.628
- Unique visitors during past 2 weeks cross repositories - 4.958
- Merged pull requests cross repositories - 1.385
- Closed issues and enhancements ideas cross repositories - 311
- PnP Core component NuGet package downloads - 19.209
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
- 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
January 2016 monthly community call
Agenda for the Tuesday 12th of January community call:
- Summary on the January release and other updates in program - Vesa Juvonen ~15-20 min
- Demo on the PnP Provisioning engine updates - Erwin van Hunen ~10-15 min
- Demo on the Business.Helpdesk solution - Jonathan Huss ~10-15 min
- Demo on the Office.TypeScriptAddin sample - Simon Jäger ~10-15 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.600 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.
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.
- 14th of Dec - Office Dev PnP Web Cast – Provisioning engine and reference solution with AngularJS
- 21st of Dec - Office Dev PnP Web Cast – SharePoint Nuget Packages and PnP Core component
- 28th of Dec - Office Dev PnP Web Cast - Throttling mechanisms in SharePoint Online
- 4th of Jan - Office Dev PnP Web Cast – Azure AD for Office 365 developer
- 11 th of Jan - Office Dev PnP Web Cast - Property bag trick for CSOM to enable additional configurations
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-Provisioning-Schema - Community driven remote provisioning schema design and assets - PnP provisionign engine implements this schema
- PnP-Tools - New repository for tools and scripts targeted more on on-premises (SP2013 & 2016) and hybrid scenarios
- 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 and guidance around InfoPath replacement.
The first version of the PnP remote provisioning engine was released with the April 2015 release. For the January 2016 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 January release:
- Overall quality and performance improvements
- Selectable object handlers - you can chose which of the elements are processed using code or PowerShell
- Support for new 201512 provisioning schema
- WebSettings section for site level settings like ReqeustAccessEmail, NoCrawl, WelcomePage, SiteLogo, MasterPage, CustomMasterPage. Some were previously under the composed look, but relocated here.
- Folders in libraries and in lists
- Security for files, folders, items and pages
- Home page extraction
- Composed Look updates with new logic
- Localization design implemented in schema - engine implementation coming in february release
- Support for custom token definitions via providers
Notice that engine does have backward compatibility, so all template files created with the old schema are still fully supported and if you re-serialized old schema file, it will be automatically transformed to use the latest schema version.
We have done general cleaning in the repository related on Nuget package updates and also removed some samples, which are no longer releavant. 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 and ot make more room for Graph and Office 365 API related content. Currently repository is still heavily bias for the SharePoint related 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:
- Version increased to 2.0 and assemblies are signed for easier consumption
- provisioning engine updates (see above)
- Support for web browser based login to Office 365
- Improvements to ADFS based login for on-premises
- General bug fixing and quality improvements
- Removal of deprecated methods
- Build and test automation improvements
- Nuget package for SPO has also dependency on AppForSharePointOnlineWebToolkit to get SharePointContext and TokenHelper automatically
- Both PnP Core Nuget packages (cloud and on-premises) have been also updated accordingly.
- New solution BusinessApps.HelpDesk demonstrates combining various Office 365 and Azure resources into a single application that can be consumed simultaneously. The application includes functionality and data from Azure Active Directory, Microsoft Graph, SQL Azure, Yammer, and SharePoint Online.
- New sample UserProfile.BatchUpdate.API demonstrates usage of new User Profile Batch Update API. This capability is designed to handle mass updates cross multiple user profiles in the SharePoint Online. API makes it faster and more efficient to synchronize custom attributes from miscellanious systems to user profile properties.
- New sample Office.TypeScriptAddin demonstrates extending the Visual Studio 2015 template for an Office task pane add-in with TypeScript and TypeScript type definitions.
- Updated PnP-PowerShell Commands with new CommandLets and with few fixes
- Overall quality improvements
- PowerShell Cmdlets are signed for easier consumption
- Support for web browser based login to Office 365
- Updated documentation for CmdLets
- Updates to the PnP Partner Pack
- Code polishing
- Included simple start-up templates
- Improved documentation based on community input
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.
PnP Guidance videos
We did release one 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 http://aka.ms/OfficeDevPnPVideos. This location contains already significant amount of detailed training material, demo videos and community call recordings.
Key contributors for the January 2016 release
Here’s the list of active contributors (in alphabetical order) during past month in PnP repositories. This was holiday season and still we had significant amount of contributions from the community, whcih we are highly greatful. PnP is really about building tooling togther with teh 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!
- Arjan Cornelissen (Sogeti) - arjancornelissen
- Arto Kaitosaari (Affecto Oy) - @artokai
- Bill Ayers (Flow Simulation Ltd.) - @SPDoctor
- Brian McCullough - @bpmccullough
- Bob German (BlueMetal) - @Bob1German
- Daniel Laskewitz (Sogeti) - @laskewitz
- Erwin van Hunen (Rencore) - @erwinvanhunen
- Ivan Vagunin (KnowIt) - @ivagunin
- Justas Černiauskas (Affecto LT) - @jcerniauskas
- Lars Fernhomberg - lafe
- Michael Schau (WorkPoint A/S) - @SchauDK
- Mårten af Sandeberg (KnowIT) - afsandeberg
- Ozmab GitHub alias - ozmav
- Pascal Berger (IOZ AG) - pascalberger
- Paolo Pialorsi (PiaSys.com) - @PaoloPia
- Phillip Demro - pdemro
- Radi Atanassov (OneBit Software) - @RadiAtanassov
- Raja Shekar Reddy Bhumireddy (InfoSys) - rajashekarusa
- Roydon Gyles-Bedford - rgylesbedford
- Tim Hills (Arceau Solutions) - Arceau
- Tobias Zimmergren (Rencore) - zimmergren
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
- Jeremy Thake (Microsoft) - @jthake
- Koen Zomers (Microsoft) - koenzomers
- Kiki Shuxteau (Microsoft)
- Patrick Rodgers (Microsoft)
- Ron Tielke (Microsoft)
- Sami Nieminen (Microsoft)
- Simon Jaeger (Microsoft) - @simonjaegr
- Steve Walker (Microsoft) - @sharepointing
- Vesa Juvonen (Microsoft) - @vesajuvonen
Here's some statistics from the PnP, PnP PowerShell and PnP Sites Core (core component) repository. There's visible impact of the GitHub re-structuring, which means that traffic and contributions are divided between multiple repositories. Due holiday season small drop on the visitor numbers, but that's as expected.
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.
- January 2016 monthly community call is on 12th of January at 8 AM PST for latest release details with demos - Download invite from http://aka.ms/OfficeDevPnPCall.
- Following master merge will happen on 5th of February and February community call is on 9th of February 2016
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, Office 365, Microsoft