Consider an MVC4/EF5 project:
- Creating a web application which will have 3 modules.
- Based on the customer license, we will enable or disable 1-3 of the modules.
- Each of the modules will deal with a handful of common tables (Users, Company, etc).
- Each of the modules will deal with tables specific to their functionality (PO's, Timesheets, etc)
- An admin portal, admin users in a seperate table from regular users.
- data passed to views using view models
- eventually there will be a JSON service for exposing parts of the applications functionality.
- There will be multiple deployments of this application with slight customization (beyond just enabling/disabling each of the three modules).
The Plan so far:
- Separate dll for Model
- Separate dll for each Module/Functional area.
- Separate dll for the ViewModels
- Separate dll for admin portal
- Seperate dll for the web service
Questions:
- Is anything gained by a seperate dll for ViewModels?
- Tips for managing multiple variations of the same application, with regards to project organization, and source control?
- Should there be a separate dll for authentication (membership and role providers)?
- Any other thoughts? (Sorry for the open ended/loaded question, maybe I should remove this one)