What is PnP?
PnP (Pattern & Practices) is an initiative which include samples & guidance as how to transform your full trust code solutions to the add-in model. But PnP guidance started evolving to other areas as well, including SharePoint Framework, Office 365 APIs, Office Add-ins, and Microsoft Graph. PnP is community driven open source project where Microsoft and external community members are sharing their learning’s around implementation practices for Office 365, SharePoint & Office.
History
I remember the days in 2014, when Microsoft SharePoint Expert Vesa Juvonen initiated the idea of sampling App Model code for different scenarios. This was initially internal only, called as Office AMS (App Model Samples), which was later released on codeplex. In early days, it was only MSFT employees who contributed samples and ideas to repository. But purpose was not to restrict the samples as many partners and customers have ideas (or should I say they know real world challenges in adopting SharePoint Online development model over on-premises model).
Current
Currently this is an open source project under GitHub which is open to all for contribution and open to all for using it according to their need.
Why
I have seen many developers using the samples and pulling a solution together for their complex and big projects. There are many new scenarios getting added to the repo each month and new APIs demos with performance improvements on the existing code. The Core team manages it and make sure the solutions provided does not fail. If any issue is raised it is handled with required attention to fix it in time. Most of the core team members are closely involved with Microsoft on Beta testing of the tools, thus you are sure to receive the latest and greatest.
Usage in projects
In most of the Office 365 development, which includes SharePoint, Office and other Office 365 services like planner, groups, teams, bots, connectors etc., you have repeating scenarios and unique cases.
Based on my experience, you can build repeatable, CI + CD process on a lot of SharePoint related artefacts using the solutions available in git repos. You can always use the guidance available in git repos to build specific customer needs using SPFx or any other requirement matched cases.
Now, in Office Add-ins space, there are lot of improvements have been happening since it was released like support for office online till latest support on iOS mobile devices. The main support to build these add-ins using JavaScript has improved a lot and support new features. You can include dialogs, connection to multiple systems and bringing in context information for user.
In Office 365 extensibility, you can build applications which extend Exchange, Skype for business, Groups, Planner, and other services. This include directly building extensions in native app or connecting to service using BOTs, Connectors, Flow & PowerApps. Currently PnP provide the guidance on more custom dev driven extensibility area, but if you have question on the no-code solutions, you can raise it in appropriate channel and someone from community can answer that for you. Currently based on my experience, 75% cases of all are unique cases where you need to create custom solution to meet the requirements.
Git Repos
There are multiple git repos which are important for developers. I have looked up most of these git repos and found interesting and helpful samples to solve a problem.
- https://github.com/OfficeDev
- https://github.com/SharePoint/
- https://github.com/microsoftgraph
- https://github.com/Microsoft
- https://github.com/azure
I cannot detail each Git repo individually here, but few important ones are listed as below related to SharePoint artefacts.
I have personally used the above repositories for various samples and you can find all scenarios covered in the above git repos.
- PnP –
- PnP-Guidance –
- PnP-Provisioning-Schema –
- PnP-Sites-Core
- PnP-PowerShell
- PnP-Partner-Pack
- PnP-Transformation
- PnP-Tools
- PnP-JS-Core
- PnP-Provisioning-Templates
- PnP-js-provisioning
Recently, there were two videos on two interesting topics by the team. First one is when to use which model and other one is business value of PnP assets.
These videos are just time in considering a lot of office platform extensibility options mislead developers for selecting platform.
Under – https://github.com/OfficeDev
There are 31 repos on first page and there are total 8 pages. PnP repos used to live here and then later in 2016 moved to SharePoint repo. The remaining ones has focused repos on Office UI Fabric, Office Add-in related repos, skype/Exchange samples, and my fav training content.
Future
Currently, MSDN and other Microsoft articles and code based are driven from these git repos with the help of Microsoft engineers and community leaders. So, these git repos are going to be there for long run and certainly will help the development discussion easy.
I have an idea. How can I contribute?
I would recommend you to have a look on specific web cast as “How to get started with Office Dev PnP?” from Channel 9 video blog. If you are looking to contribute back for the PnP initiative, would recommend to have a look on another web cast called “How to contribute to Office Dev PnP initiative?” or check details on how to get started from our PnP GitHub Wiki, which also contains step-by-step instructions on setting up your environment for GitHub usage.
Summary
License Terms
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
About the Author:
Ashish is a Solution Architect focusing on the productivity stack in Australia. He has “lived” in the SharePoint world from the days of SharePoint 2003. He specializes in delivering enterprise solutions using technology. Ashish is a passionate developer with a zeal for creating innovative solutions using Office 365 & SharePoint. Ashish is an active community contributor through various channels. He made early contributions to open source projects such as PnP. He is an evangelist of Office 365/Office development. He has also presented at International conferences, for example, Collab365.
Follow Ashish on Twitter: @_AshishTrivedi