Every developer spends time updating existing code. Whether to add new features, fix old ones or simply remove unused functionality, it is very rare for a piece of code to go its entire life without any updates.
Unfortunately, the thought of a SharePoint solution upgrade is enough to make most admins cringe. The SharePoint solution upgrade path is painful. It requires an outage while the various pieces of the solution being updated are deployed and services are restarted, and this all likely has to happen at a time when the admin would rather be at home and in bed. While the App Model for SharePoint helps reduce the work required and the risk involved with upgrades, the process is still not entirely ironed out.
Since we know that there are significant hurdles to upgrading existing solutions, the only logical thing to do is to reduce the frequency at which SharePoint solutions need to be upgraded. The simplest way to achieve that goal is to minimize the portions of the solution that are included in the SharePoint-deployed portion of the solution.
When working with the SharePoint solution model, the only part of the solution that can be separated from the SharePoint-deployed portion is the client-side code. That would mean that any changes to the SharePoint artifacts, such as lists or libraries, and any changes to the server-side code would need to go through the solution upgrade process. However, any changes to the look and feel of the solution, or any functionality that can be completed using only the Client-Side Object Model (CSOM), could be completed by simply updating JavaScript files on a separate Web server.
In the SharePoint app model, the separation can be more significant. The only portion of the solution that needs to be part of the SharePoint deployed app is the SharePoint artifacts. Therefore, your server-side code and your client-side code are hosted in a separate Web server that can be updated at will. This means that you will only need to update your SharePoint app when you need to change something about your SharePoint artifacts. This is particularly useful when the SharePoint portion of your app is subject to an approval process such as the SharePoint Store.
By minimizing the amount of code that is subject to the SharePoint upgrade process, a developer can reduce or even eliminate the need to update the SharePoint portion of their code. When the SharePoint update frequency is minimized, you will have happier admins, fewer maintenance windows, and a more stable SharePoint deployment. Have other ways to minimize SharePoint updates? Tweet me, @brprigge, with #SPStability.
Brian Prigge is a SharePoint Architect with RAMP, where he leads the implementation of RAMP’s suite of video hosting, search and discovery solutions into custom SharePoint integrations. He has been working with SharePoint for more than five years, and has a deep knowledge of both the solutions model and the app model for custom SharePoint development.