What’s the big deal with SharePoint Apps?
Microsoft made a bold move trying to implement a new development paradigm in SharePoint 2013. Microsoft has introduced the “App Model” in SharePoint 2013. It’s been well over a year since it has been introduced and it was pushed out with much skepticism from high end technology leaders and SharePoint developers alike. I’d like to express my passion for SharePoint apps and why I think the future looks bright for them.
If SharePoint development isn’t new to you, then you are very familiar with farm solutions. For years, developers have been deploying SharePoint solutions “WSPs” into environments in 2007, and 2010. A WSP is essentially a CAB file that contains a set of features, site definitions and assemblies that get deployed into your SharePoint environment. In a “full trust” wsp, the assemblies and files in the WSP will actually run on SharePoint web front end. This has been the standard and best practice way to deploy custom code into your SharePoint environments…at least until SharePoint 2013.
But why replace Full trust solutions?
Even though deploying these WSPs and having the code run on your SharePoint environments was the Microsoft intended way of deploying code, it has its draw backs. Poorly developed code can cause severe performance issues within your SharePoint farm. It would not only affect the website the code was running, but because these assemblies were running on the WFEs, you would see a drastic performance decrease across all applications running on that server. Full trust solutions are dependent on the same .NET framework as your SharePoint version. Full trust solutions are harder to upgrade as well. The code deployed is tightly coupled to SharePoint, so before upgrading to a newer version of SharePoint, you would first need to make sure all the WSPs deployed in your environment will run in your new SharePoint version.
What about Sandbox solutions?
The existence of Sandbox solutions should answer my previous question as to why replace full trust solutions in SharePoint 2013. If Microsoft thought full trust solutions were the ideal way to deploy code into your SharePoint environment, I do not think you would see the introduction of Sandbox solutions in SharePoint 2010. Since there was a risk of poorly developed code in a full trust solution to bring down the performance of your entire SharePoint server, Microsoft introduced Sandbox solutions which forced code to run in its own separate sandboxed process and prevent anyway of running code with elevated privileges.
So why do I like SharePoint apps?
I like SharePoint apps for all the reasons I think full trust solutions should be phased out. However, I must say that the current state of the SharePoint App model doesn’t allow us to completely let go of the full trust model. There are many features in full trust solutions that we just can’t achieve in SharePoint apps. So why SharePoint Apps?
SharePoint Apps are not dependent on .net version. Heck, you don’t even need to use .net! Find your nearest web developer and let them build you something shiny and pretty! SharePoint apps support any web technology you can think of, .net, PHP, ruby… and the list continues.
SharePoint apps will not prevent an upgrade to a newer version of SharePoint.
SharePoint apps provide a lot more flexibility in branding and web design. You can develop full-fledged .NET MVC applications without having to mess with the SharePoint chrome styles and branding the SharePoint ribbon.
SharePoint apps work both on-premises and in Office 365.
I already have a ton of Full Trust solutions in my SharePoint 2010 environment, what happens if I upgrade, do I have to convert to the “App Model”?
Well luckily for you, Microsoft still allows you to continue writing these solutions and deploying code out in a SharePoint 2013 environment. Like I said before, we don’t have 100% the functionality in SharePoint App Model as we do in the Full Trust model. Microsoft understands this and says it’s okay to deploy Full Trust solutions in your environment but would prefer you to adopt the App Model when possible.