For the last couple of Days I have been working on a small web application. I decided to use ASP.NET MVC. I made this decision mostly because I think it is the best way to really control the web front-end and render valid HTML pages. However, I know that MVC can be much more.
Even though my App is quite small, I am focusing on my application's architecture. It is important to me to have several layers, two of which should be switchable at any time: the user interface (Web / Desktop / Webservices) and the data access logic (to support several databases). I thought that in a Model View Controller pattern this would be possible.
In this case will it be possible to replace my web based front-end with a Win32 or WPF front end? Is this possible or did I understand something wrong? I couldn't find a way to do this.
The only way I found to do this is to create an MVC-Layer, BusinessLogic-Layer, BusinessObject-Layer and a DataAccess-Layer. In that case all generic stuff which can be reused by a WPF App for example I put into the business layer, all the MVC specific Stuff I put in the MVC-Layer, and most what my Controller does is calling BL Methods and building a ViewModel and returning it to the view. I am not sure if this is a correct interpretation and would be thankful for suggestions about better practices.