Confused on where your SharePoint add-in data should reside – App web or host web?
I really gave this a deep thought when I was designing a SharePoint add-in called Project Documentation for SharePoint store.
If you already have your data residing somewhere external or inside your host web, then of course you have no choice but to make S2S\OAuth or cross domain calls to perform CRUD operations on your data. But if you are building your app from ground up with no existing data source than what would be the right choice?
Well it always depends on the business case, but ideally speaking the only one scenario that comes to my mind is – if you have decided to place app’s data in your host web where you can literally move that data between different host webs and your application will still run smoothly. Since your app web is a sub-site of your host web, you can do almost everything (programmatically) like creating document library, custom list, announcement lists, content type, workflows, manage permissions and much more.
So except for particular business cases, the most easy and logical approach is to place your data inside SharePoint app and if end user by chance un-installs the app all the data will be lost just like user loses all the documents when (s)he deletes the document library.
Please let me know your business case and your thoughts on this.