SharePoint add-in model is common topic around customers and partners moving on the Office 365 and also in the on-premises. Since the approaches are still relatively new compared to classic farm solution based development, we have collected set of resources for this blog post for assisting with the add-in model transition.
Farm solutions are fully supported in the on-premises in the future as well with SharePoint 2016, but there are also many benefits on moving to SharePoint add-in model also in the on-premises. In Office 365 we do not support farm solutions and therefore SharePoint add-in model is needed if you’re planning to customize SharePoint experience.
Why would I move to SharePoint app/add-in model implementation?
Farm solutions are not available in SharePoint Online, so you can’t just move your deployments easily to the cloud if you’ve used them. To build customizations in a hybrid scenario or cloud only approach customers must use the SharePoint add-in model. Many customers may be looking to move to Office 365 and require your team to help them transform their customizations from farm solutions to add-in model approaches.
There are many other benefits to using the add-in model over farm solutions:
- They are the focus of Office engineering team moving forward
- Greatly reduce the risk of impacting the performance of SharePoint Server farms
- Improve the stability and reduce operational cost of the SharePoint Server farm
- Can scale out the application without scaling out the entire SharePoint Server farm
- Does not require dedicated farms for customizations due to application isolation
- Does not require downtime for SharePoint to deploy updates
- More flexible deployment patterns to improve agility and reduce time to market for the business and end users
- Allows customers/SI’s to leverage standard Web Development skills over much harder to obtain SharePoint Development skills that have been traditionally employed
- Will run in both SharePoint Server and SharePoint Online
Obviously many of the above statements should not be considered just as black and white recommendations for the benefit of the SharePoint add-in model. Possibilities for moving to SharePoint add-in model based implementation is highly dependent on the business and technical requirements of your deployment.
PnP Transformation training
This training does not specifically concentrate only on the ‘transformation’ topic, it rather concentrates on showing how you can achieve typical SharePoint customizations using app/add-in model techniques. Training shows multiple different techniques which vary from ‘how to create UX components using add model’ to recommendations around site or site collection provisioning.
Each module consists from video, presentation, demos and hands on labs. All of this material is available for you for reuse anyway you want from Office Dev Training Content GitHub repository. We have linked also all relevant material for each of the video in the video notes at the Channel 9. Here's the first module as for quick start. You can find links to each module recording below.
- Introduction to add-in model transition
- Managing site settings using add-in model
- Branding with add-in model techniques
- Building UX components with add-in model
- Using Remote Event Receivers and Remote Timer Jobs
- Site Collection and Site Provisioning Using add-in model
- User Personalization and One Drive for Business Operations Using add-in model
- Using Enterprise Content Management Capabilities with add-in model
- Using Search Capabilities with add-in model
- Transformation guidance from farm solutions to add-in model
SharePoint add-in model recipes
SharePoint add-in model recipes are collection of guidance which has been created by Todd Baginski together with the PnP Core team. Purpose of this guidance is to provide concreate steps or solutions for specific transformation topic. Each article concentrates on explaining how to achieve specific classic farm solution scenario with add-in model techniques.
These articles also contain valuable insights not only on specific add-in model implementation, but also on the specific details on covered topic. Majority of the guidance matches between on-premises and SharePoint online, but if there are differences, we have tried to mention them clearly in the articles to avoid confusion.
Each article also links relevant resources related on the specific topic. We will keep on updating these gradually and welcome also pull requests from the community for these articles. Here’s the full list of available articles.
- SharePoint Add-in Recipe - App-Only and Elevated privileges
- SharePoint Add-in Recipe - Custom Actions
- SharePoint Add-in Recipe - Custom field type
- SharePoint Add-in Recipe - Delegate controls
- SharePoint Add-in Recipe - Document ID Provider
- SharePoint Add-in Recipe - Event Receivers & List Event Receivers
- SharePoint Add-in Recipe - Feature Stapling
- SharePoint Add-in Recipe - Information Management Policy
- SharePoint Add-in Recipe - List definition / list template
- SharePoint Add-in Recipe - List instance
- SharePoint Add-in Recipe - Localization
- SharePoint Add-in Recipe - Master Pages
- SharePoint Add-in Recipe - Managed Metadata or taxonomy manipulation
- SharePoint Add-in Recipe - Modules
- SharePoint Add-in Recipe - OneDrive for Business customization
- SharePoint Add-in Recipe - Performance Considerations
- SharePoint Add-in Recipe - Remote Timer Jobs
- SharePoint Add-in Recipe - Search API Usage
- SharePoint Add-in Recipe - Search Configuration
- SharePoint Add-in Recipe - Site Columns and Content Types
- SharePoint Add-in Recipe - Site Provisioning
- SharePoint Add-in Recipe - Branding SharePoint Sites
- SharePoint Add-in Recipe - User Profile Manipulation
- SharePoint Add-in Recipe - Variations
- SharePoint Add-in Recipe - User controls and Web controls
- SharePoint Add-in Recipe - Web Part
- SharePoint Add-in Recipe - Workflows, Actions (Activities), Events, and Forms
- SharePoint Add-in Recipe - Yammer Integration
Easiest way to find relevant content around this guidance is to use the PnP resource filters at the dev.office.com. This is a great tool to find what’s relevant for you based on keywords and other filters.
- Here’s a direct link to filter resources only to Guidance articles - http://dev.office.com/patterns-and-practices-resources#?filters=Guidance
PnP Transformation Process
PnP transformation process is actually re-branded package of the material we have been using internally with customers who are moving from farm solutions to SharePoint add-in model. We have developed standardized process for this transition and since this material was getting great feedback from these enterprise customers, we wanted to ensure that also others have access on the used presentations and templates. You can use this material anyway you prefer for your own engagements or use it to create your own offering or process for the transformation work.
You can find the material from the PnP guidance repository from following address.
Here’s an introduction video for the PnP transformation process from PnP Channel 9 section.
Office 365 Developer Patterns and Practices (PnP)
Office 365 Developer Patterns and Practices (PnP) is community driven open source project where Microsoft and external community members are sharing their learning's around customization implementation practices for Office 365 and SharePoint on-premises (add-in model). 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.
If you are interested on contributing and sharing your knowledge for the others, please have a look on following guidance at the GitHub project wiki pages.
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. If you have any questions, comments or feedback around PnP or the topics covered in this blog post, we'd recommend you to use the PnP Yammer group for starting discussion with the community and core team.
Main resources around PnP program
- PnP under dev.office.com – http://aka.ms/OfficeDevPnP - One location for all the latest resources and annoucements
- 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 - http://aka.ms/OfficeDevPnPTraining
- PnP Guidance Repository – http://aka.ms/OfficeDevPnPGuidance
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, Office 365, Microsoft