What Are the SharePoint 2013 App Deployment Models

A SharePoint-hosted app may provision basic resources into its app web such as HTML/CSS/JavaScript files, site column/content type/list definitions and so on. Under no circumstances can server-side code; we need to go over the following three deployment models for SharePoint 2013 Apps:

  • SharePoint-hosted

  • Self-Hosted

  • Automatically Provisioned Azure Web Application
sharepoint 2013 app model

SharePoint-Hosted App

A SharePoint-Hosted App is an application made entirely of static files that reside directly in your instance of SharePoint. There are hybrid approaches possible that allow you to combine SharePoint-hosted and cloud-hosted capabilities in your app, but there are some security considerations to keep in mind. More information about those, as well as the various hosting options for apps for SharePoint, can be found here. Based on these differences, one would not readily convert an app from one type to another, but one could certainly augment an existing app by taking a hybrid approach. There is absolutely no server-side code allowed in this model.

Self-Hosted App

In a provider-hosted app, you are responsible for the infrastructure (again, external to SharePoint) where your app runs. You have lots of flexibility in the sense that you can run full-blown server-side code and even take advantage of frameworks like ASP.NET MVC (or even use Java, PHP, or other non-Microsoft technologies as well), but you are also responsible for things like tenant isolation.

Automatically Provisioned Azure App

In an auto hosted app, any web or database resource your app needs will automatically be deployed to Windows Azure and SQL Azure. You can run server-side code in your Windows Azure web site and multitenancy is provided automatically.

Building Useful Apps without Server-side Code on SharePoint

The Client-Side Object Model (CSOM) was one of the areas into which Microsoft poured a ton of work. SharePoint 2010 had a very limited set of functionality, but the CSOM in SharePoint 2013 really allows you to execute just about any operation you can think of. As you can imagine, you must have a fully-functional client-side API when you are trying to encourage people to move away from using server-side code.

There are three ways that you can access CSOM functionality, so the deployment model that you are using for your SharePoint 2013 app will determine the option you choose.
  • .NET / Silverlight API

  • JavaScript API

  • REST API
Web Part Vs. App Part

table