During my sessions related to the share point I asked the students to define the difference between SharePoint Hosted App and Provider Hosted app. They provide some fundamental differences but no one is able to give proper answer.
So here I am providing a list of differences from the user/client perspective so that you can decide which app approach needs to be chosen for your project work.
|SharePoint Hosted||Provider Hosted|
|No server side code, 100% client side code||Managed code and high trust|
|Data Storage Locations: SharePoint Online, Content Database||Data Storage Locations: ISV Storage, Azure Storage, Content Database.
(ISV – Independent Software Vendors)
|Start Page Location: On-Premises, SharePoint Online||Start Page Locations: ISV Hosted web site, SharePoint Online, On-Premises SharePoint Online, On-Premises|
|Can be hosted on either SharePoint on-premises or office 365||Deployed outside the SharePoint.|
SharePoint add-in model does not allow managed code to be installed directly on SharePoint, however it can be hosted in application server and a separate website (eg. on IIS) on in azure.
|App usage scenario: An add-in that includes a people picker control and that stores information about SharePoint users in a SharePoint list||App usage Scenario: Can be used in situations where SharePoint being consumed as service and/or hosted by a provider. App model is the option if you do not have a on premises installation. Go with this option when you require server-side managed code.|
|App Components are SharePoint components like SP Features, Custom Actions, Lists, Site Columns, Content Types, BCS models(web scoped), Web and list templates||Can connect to any internal or public web service|
|SharePoint-hosted SharePoint Add-ins do not support event handling,||To handle list and list item events, you need to create remote event receivers (RERs), which are web services that run externally to the SharePoint farm or SharePoint Online.|
|This add-in components are hosted in the isolated add-in domain of your SharePoint farm||Can be hosted in any web server or hosting service|
|CRUD Operations: You can use either the REST/OData web service or one of the client object models in SharePoint 2013.
SP.js is available to perform create, read, update, and delete (CRUD) operations on SharePoint data.
|CRUD Operations: You can use the REST/OData endpoints in SharePoint 2013 to perform create/read/update/delete (CRUD) operations on data in the add-in web. You can write server side code any technology you like to perform this CRUD operations.|
|These apps don’t work with SAML Claims authentication provider with ADFS 2.0||Any SharePoint component that can be in a SharePoint-hosted add-in can also be in a provider-hosted add-in.|