I'm developing a multi tenant app architecture that is quite complex.
.
Ther is no only one type of application used by many customers; ther are 3 different kind of applications.
APP A, APP B, APP C
.
Each app has its customers.
APP A - customer A1 - customer A2
APP B - customer B1 - customer B2
APP C - customer C1 - customer C2
.
Many informations are shared betwen the different apps
"customer A1" need to manipulate or only view data owned by "customer C1"
.
Consider that i'm using Asp net mvc, EF, Sql Server. Wich is the correct implementation?
One site and many Areas? Create multiple sites? Multiple db? Only one db? Filtering? Sql filtered view? ...
Some application example?
EDIT
and... Where to put the business logic?
I would recommend that you first build your own multi-tenant engineering stack (Framework) on top of .Net which will handle all the requirements of multi-tenancy in terms of tenant wise data isolation, support for horizontal scaling, filtering of views based on the tenant context and role of the user, tenant wise data model extension, tenant wise UI customization, enforcing access restrictions based on roles, privileges and data scope - which could be different for different tenants etc.
The business logic can be built on top of this framework. This approach will provide your product a robust and strong engineering foundation.
The other alternative is to buy a ready to use multi-tenant engineering stack off the shelf, install it on Visual Studio and use it as a development template.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With