An example system might require:
- Presentation/administration (ASP.NET MVC site)
- Object model for data access, may be used by other apps (EntityFramework or similar)
- Data service used by both the website and client apps (WCF Data Service)
To make a system both maintanable and configurable, how would it be best to seperate the functions?
Are there any problems with:
- Web project (ASP.NET project for combined presentation/admin site)
- Custom view model which maps to the 'external' object model
- Class library (containing the object model/data access classes)
- Data service (WCF Data Service exposing object model and/or any custom functions)
As far as I can see, parting the components out would allow for easier management, be it updates, moving services, load balancing, etc.
Any thoughts/experiences for or against?