It is quite evident that SharePoint Apps are becoming rapidly popular as a choice to extend SharePoint functionality with custom development. The SharePoint solutions have their challenges. SharePoint Online (Office 365) only allows Apps. SharePoint on-premises supports both the solution and the App. This makes the App more universal to extend SharePoint functionality with custom development.
There are several App models available to develop your SharePoint 2013 App. It is not only confusing but also can be daunting to choose the right App model. This article gives you a framework and a decision tree to choose the right App model for your App. Here are the suggested steps to create the list of all the App Models.
SharePoint App – Where to Host?
SharePoint App can be hosted at 2 locations as follows
- SharePoint (SharePoint-hosted)
- Cloud (Provider-hosted)
SharePoint App Code – Which side?
SharePoint App Code can be written on 2 sides as follows
- Server Side (C#, PHP, Java)
- Client Side (JavaScript)
SharePoint App Code – Which technology?
SharePoint App code be written using the 2 technologies as follows
- REST
- CSOM
SharePoint App Security
SharePoint App can be configured with the 3 authorization systems which the app can use to authenticate and authorize SharePoint resources required for its use. These are not mutually exclusive.
- Low Trust
- High Trust
- Cross Domain Library
SharePoint App Models
Following are the SharePoint App Models based on the facts above.
No | Hosting | Side of Code (Server / Client) | Code Technology (CSOM / REST) | Comments |
1 | SharePoint Hosted | Server Code | CSOM | Not Allowed |
2 | SharePoint Hosted | Server Code | REST | Not Allowed |
3 | SharePoint Hosted | Client Code | CSOM | Possible (sp.js) |
4 | SharePoint Hosted | Client Code | REST | Natural for JavaScript |
5 | Cloud Hosted | Server Code | CSOM | Natural for C# (required references – Microsoft.SharePoint.Client.dll, Microsoft.SharePoint.Client.Runtime.dll) |
6 | Cloud Hosted | Server Code | REST | Natural for Non-Microsoft technologies (PHP etc.), Possible in C# (HttpWebRequest) |
7 | Cloud Hosted | Client Code | CSOM | Possible (Not desirable) |
8 | Cloud Hosted | Client Code | REST | Possible (Not desirable) |
Once you choose the appropriate App model from the list above, you have to apply the appropriate App security to have the most optimal model for your specific App.
The following is evident from the list above
- If you want to write server side code, you will have to host your App in the Cloud
- If you want to host your app in the Cloud, and want to write your code in Non-Microsoft technologies like PHP, Java, etc. you will have to choose REST to write your code as you cannot reference SharePoint assemblies
- If you want to host your app in the Cloud, and want to write your code in Microsoft technologies like ASP.NET, ASP.NET MVC etc., you can write your code using CSOM or REST based on your preference
To find out more about this or other ways that RSM can assist you with your SharePoint needs, contact McGladrey’s technology consulting professionals at 800.274.3978 or email us.