hi..
I'm trying to architecture an MVC5 application which will use Areas to separate each tenant.
The purpose is to have a single solution which will host multiple websites, connecting to multiple databases and have individual - yet shared use cases.
eg: SiteA might be a Webshop, while SiteB might be a Blog - they will however share some fundamentalt like a login system and billing / payment integration.
Ideally i would like to create sets of models eg: MechantModels, ContentModels, AuthenticationModels, PaymentModels, etc...
And then, when creating a new Area (Website), i'd create a Context + Configuration or add a reference to a Generic Repository - but somehow include the models needed for the specific website...
all sites would most likely include Authentication, but MerchantModels should be optional - which also means that the resulting Database doesn't get polluted with tables not needed for the specific site.
The point is that each customer (website) can select modules that they want to add - which results in the developers adding the modules with code ...
I imagine the Area Context could add each module using Interfaces ??
the question is, how should i structure all this ?
I've tried creating base models using abstract classes - but i seem to fall short in how to get it all right ...
any advice, links or solutions to my architecture out there ??
Thanks :)