A recent question in SharePoint.Stackexchange.com asked how to provision branding elements like master page or page layouts into SharePoint 2013? Is deployment by a feature or an App better?
I answered my suggestions and I thought about having a blog about it too.
The Paradigm now: App or Sandbox or Farm solution?
I would suggest that the solution should completely depend on what SharePoint farm you are using currently, online or on-premise. Also, if you are using on-premise, is there a possibility that you will be shifting to the cloud soon?
Apps might be just right for the cloud
Developing an App for deploying branding elements can get kind of complex, considering the scenarios for creating Remote site provisioning events that trigger branding whenever a child site is created.
It’s all possible if you are willing to take this route and explore the challenges. If so, do check out this solution pack that was recently published by Microsoft for SharePoint online branding. It’s a great eye opener and gives lot of insight.
Also note that the App world is not completely matured yet. Recently Microsoft decided to stop SharePoint Auto hosted Apps from Office 365. So, there will be still enhancements and adjustments in the App world leading to a complete mature App development model.
A sandbox solution might just satisfy the need for many. But you need to keep in mind that Sandbox solutions with custom code are soon getting deprecated, but you are safe with solutions that just use the declarative markups. Read this blog explaining the whole situation.
There are known drawbacks for Sandbox solution as well, since you need to deploy everything as a solution in a site collection and don’t have much flexibility. But this could be always the first step in pushing yourself to cloud.
This is the traditional way for developers, considering the ease in development and deployment. But again, if your organization wish to move to the cloud in the future, you will have the pain of re-engineering all these solutions.
The App solution might be good if you are already in the cloud or you are anticipating to move to the cloud soon. You might just need to do some tweaks in the future with the future changes in App infrastructure.
For those who do not foresee moving to the cloud can feel safe to use the Sandbox solution to a minimum or a mix of App parts and farm deployments, whichever suits the environment.
As you all know Microsoft is constantly pushing more and more towards the cloud which makes sense as they have their own valid reasons. Also may be after probably the 2016 version of SharePoint, there might not even be an on-premise version. So, plan accordingly folks.