SharePoint 2013, as we all know by now, has the ability to install and use “Apps”. We should also know by now one of the types of apps is called a “SharePoint Hosted App”. This is pretty self explanatory as to where it will be deployed and live as the app is installed and used across the organization.
I have seen many diagrams / screenshots explaining how a SharePoint Hosted App is deployed, where it lives and how it interacts with it’s surroundings. These are great if the targeted environment will be a single web in a single site collection using a single app. What about real world environments, where there are multiple site collections, multiple webs and multiple apps being used?
I have started working on trying to explain this in diagrams to highlight where these pieces are and what the 2 options are for deploying SharePoint Hosted Apps. What? have not heard of the 2 options. Well everyone knows about the main option, where the user installs the app on their web and it runs in isolation to that web. The other is when it is deployed globally into the App Catalog site and then deployed out to the environment. The second option is not discussed much. Some talk about it in terms of “App Stapling” as you can see in Richard diZerega’s Blog Post: SharePoint 2013 App Deployment through “App Stapling” (http://blogs.msdn.com/b/richard_dizeregas_blog/archive/2013/03/04/sharepoint-2013-app-deployment-through-quot-app-stapling-quot.aspx).
I am not here to discuss the details on how to do it, you can read and learn that from Richard’s link above. What I am here to do is show a view into when an app is deployed in each manner, from a more realistic enterprise view.
#1: App is installed by users in many site collections / webs
As you can see the same app (SPApp1) is installed in many locations by many users which creates an AppWeb under the location of the host web in which it was installed. The host web can be a root web in a site collection or it could be a sub-web anywhere down the hierarchy. I have only showed a sub-web 1 level deep here, but you can imagine based on your organization structure and site collections how installing a single SharePoint Hosted App can add to your environment. Now, I am not saying this is going to disrupt your performance or overflow your capacity management governance plans (this is another discussion all together), but it is something to think about when you are an organization which has 1,00’s of apps and 1,00’s of site collections and 1,00 of webs.
#2: App installed (not uploaded) in the App Catalog Site Collection and Deployed out to site collections
Now you can see with this deployment, All the sites/webs refer back to the App Catalog App Web. Even though this is convenient, it may cause issues depending on the app as everyone utilizes the same app web, which is typically where your pages, content and logic is stored… meaning everyone is using and saving to the same “storage location”. Whereas in the isolated mode, everyone who has installed the app is using the pages, content and logic all to themselves “Isolated” from others who have also installed and using the app.
“App Stapling” may be a term coined by some people to replicate / replace / offer an option to old school “Feature Stapling”, I am not debating this… I simply want to show there are 2 options and what they look like across a greater sub-section of an environment. You as the developer, App Catalog Admin, SharePoint Architects (in those larger organizations) and/or end users should realize the benefits and value of having these options and utilize them accordingly depending on what the app is developed to accomplish.
More to come…