Ever since Microsoft announced SharePoint 2013 and the new App Model, there has been a lot of discussion around what the best option is for making customizations within SharePoint.

While there are many valid reasons to choose alternative options, in this month’s TOTM we list the advantages of using Apps for SharePoint.

What are the other options?

Before getting into the advantages of the SharePoint App model, let’s quickly review the other options that are available for customizing SharePoint.

  1. Farm Solutions – Developers can write Farm Solutions that can be deployed to the SharePoint servers and typically use the full SharePoint Object Model to do nearly anything in SharePoint. The code in a Farm Solution runs in the same processes as SharePoint and has full access to everything in SharePoint as well as your SharePoint servers. Farm Solutions are only available for on premise environments because they are deployed to the SharePoint servers and require support from IT.
  2. Sandbox Solutions – Developers can write Sandbox Solutions that can be uploaded to a SharePoint Site Collection. The Sandbox Solution runs in an isolated process and is confined to working within the site collection to which it is deployed. Sandbox Solutions are limited in what they can do and are throttled so they cannot exceed a configured resource usage. They work well for simple web parts or provisioning solutions, but not so much for complicated applications.
  3. SharePoint Designer and Client Side Scripting – Developers and Power Users can inject JavaScript, HTML, CSS, etc… directly into SharePoint in order to customize it as needed. This approach is great for making customizations that do not need to be deployed to the servers. The other advantage is that these customizations run on the client and will not impact server performance unless they execute large queries that the server must execute. However, these solutions are typically not packaged for easy deployment and can often conflict with one another if not executed properly.

What is the new App Model?

While Farm Solutions, Sandbox Solutions, and even direct Client-Side scripting are good options for on premise environments, they have their flaws. Deploying and running code to your SharePoint servers has proven to be often unhealthy for the SharePoint farm and many organizations have introduced strict governance to control what can be deployed. With SharePoint Online (Office 365), Farm Solutions are not even an option making the cloud a much more limited option for organizations who need to implement custom applications on top of SharePoint.

Microsoft’s solution to these problems is through the use of the new SharePoint App Model (Apps for SharePoint).

10 Advantages to using Apps for SharePoint

  1. Keep custom code off of the SharePoint servers! Administrators spend a lot of their time setting up and maintaining the SharePoint servers in your organization. Apps for SharePoint either run 100% client-side within SharePoint, or separate web application server (hosted or on premise). Either way, apps are isolated from SharePoint so a poorly performing app will not affect your entire SharePoint environment. This also allows Apps to be installed without downtime in SharePoint.
  2. Give control to site owners to allow them to install the apps they want on their site either from the Microsoft store or your organizations internal App Catalog.
  3. Keep control by disabling the public Microsoft store or require approval for the apps that site owners want to add to their site.
  4. Apps are first-class citizens in SharePoint! Apps are given their own permissions to specific SharePoint resources such as lists, documents, sites, search, etc… User security still applies as well. An advantage is that when content is created or modified it shows Modified By <<App Name>> on behalf of <<User>> allowing administrators and users to see what app is making changes to the content. Separate permissions also allows for the App to be revoked access, without changing the permissions of the users.
  5. Since Apps are isolated, the SharePoint environment is much easier, and therefore cheaper, to migrate or upgrade when the next version of SharePoint is released.
  6. Apps are supported in the cloud. SharePoint Online fully supports the new app model, making it a much more viable option for organizations who are considering moving to the cloud.
  7. Apps can be written in several different ways. This allows developers to use their core strengths to develop their apps. This may be HTML5, JQuery, CSOM, C#, PHP, Java, etc…
  8. Already have a custom web application and now you need to integrate it into SharePoint? No problem. Create an App Package that points to your existing web application and you’re good to go. Of course, if you want your application to read from or make updates to SharePoint, you’ll need to make some additions to your application. But this doesn’t necessarily mean a complete rewrite.
  9. Sell your apps! If you or your organization has developed a great reusable app, you can publish it to the Microsoft Office Store and sell it to others. Microsoft handles the billing and delivery of the app, so all you need to do is build it, publish it, and support it.
  10. The Office Store makes it easy to find and purchase apps that you know have been vetted by Microsoft.

This TOTM was contributed by Sr. SharePoint Consultant, Eric Gregorich.