SharePoint Customizing Governance PLAN BEFORE CUSTOMIZING2013, Alexander Ahrens | MCPD exxlence exxlence.com
Why a customizing governance? Complex customizings require a lot of Know-How and experience Some customizings are not cloud compatible Some customizings block system updates Complex customizings are expensive in development, testing and operation Avoid unnecessary customizing Migrating a SharePoint with serverside customizings is a lot more expensive than migrating a SharePoint without serverside customizings
Microsoft:Use OOTB whenever possible While designing the next wave, our team met with hundreds of customers and partners around the world which influenced not only the evolution of the product but also the guidance that we will update in this blog and on MSDN and TechNet. I wanted to emphasize two points as we roll- out the new release: Use SharePoint as an out-of-box application whenever possible - We designed the new SharePoint UI to be clean, simple and fast and work great out-of-box. We encourage you not to modify it which could add complexity, performance and upgradeability and to focus your energy on working with users and groups to understand how to use SharePoint to improve productivity and collaboration and identifying and promoting best practices in your organization. Be thorough in custom web design, development and testing – We know many SharePoint sites are published portals or custom web apps and are excited about the new features we designed for these scenarios. We encourage you to review the new features and guidance to reduce the amount of custom work you need to do. But even there, code is code and we encourage you to validate your design early in your development cycle and with particular focus on peak usage performance testing for how your customizations impact HTTP and SQL Server roundtrips. We have guidance and page and object caching techniques that can help here. Source: http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=1012
Golden rules Learn SharePoint features and capabilities before going with customizing. Start client side customizing and app development before going with farm solutions.
The levels of customizing I defined 5 levels of customizing that… 100 500 describe what types of solution elements are allowed allows to classify every solution describe what the consequences are by allowing certain levels of customizings
Level 400 Governance 400 What? Why? Based on Level 300 Governance Keeps all benefits of level 300 governance Allows Hosted Apps and Silverlight Allows more complex applications Silverlight is hosted within without affecting system SharePoint operations Hosted apps are hosted outside of Requires more Know-How for SharePoint integration and security during Hosted apps integrate in look and operations feel and navigation Requires more Know-How for development and testing
Level 500 Governance 500 What? Why? Based on Level 400 Governance Complex solutions that cannot be realized with level 400 governance Allows Farm Solutions are now possible Allows maximum of customizing Requires a high level of Know-How in operations, development and testing Requires seperate infrtastructure for testing of customizings
Coding conventions andDeveloper Guidelines What? Why? Define allowed features Ensure that others can understand Exclude features and improve custom solutions Define rules for feature use Ensure that technologies are used Define naming conventions for their purpose Capture good/best practices for reuse Avoid unnecessary costs in support Documentation rules and operations Examples: InfoPath cannot be used because of licensing conditions Apps may only use JQuery UI Version 1.7.1
Customizing levels in a multi farmfarm architectureIt makes sense to assign different levels to different farms:Collaboration and Service Farm Publishing Site Farm Level 300 Customizing Level 500 Customizing Farm Solutions are used for Farm Solutions for heavy Master Page deployment customizing and only. deployment of artefacts.Stays on upgrade path. Needs a lot developer assistance during upgrade.