In the last part of this series, we are continuing the discussion of what we ran into developing one of the first apps for the new Microsoft App model. We began with an overview of the app created, The Quiz App, and then followed up with some of the hosting issues we ran into. The conclusion to this series will go over the final decisions we made and where we stand in the process.
The SharePoint App model offers several hosting options which determine where the code runs. These can be in SharePoint, in the cloud, or a mix of SharePoint and cloud. Each option has its own set of constraints and strengths. In addition, migrating from the auto-hosted or SharePoint-hosted models shifts the costs and resources of running the app from the party installing the app, to the organization providing the app.
Moving from a model where each installation creates exclusive resources, a provider-hosted app introduces the need to manage multi-tenancy, both for the website and database. Available options included (1) multiple B2B Tech websites for each installation, (2) shared websites for multiple teachers at each host’s website, or (3) a single multi-tenant website.
Several options are available as well for database deployment, including separate databases, multiple schemas, and using a tenant field identifier to isolate the data; each with their own set of pros and cons. it was determined that a single website with a single partitioned Azure database with a tenant identifier for data isolation would be the solution. This would be the easiest to implement and maintain, requiring the least amount of changes. Additionally, due to the limited personal data, any risk would be low.
One of the final challenges of the provider-hosted solution is that all apps for SharePoint must establish a trust between SharePoint and the remote web application by being registered with the hosting SharePoint farm or tenancy. Fortunately, registering the app thru the Seller Dashboard will enable you to design your app with a multitenant architecture without requiring individual administrator registration.
Now that the research is done and architectural decisions have been made, this will all be validated by implementing these changes for the B2B Quiz App; hopefully before my trial Azure and SharePoint development subscriptions expire. Stay tuned.
You can find our previous post on Hosting Issues, here. Or you can start with Challenges of Being an Early Adopter: Part 1, here.