People are too much dependent on initials and TLAs sometimes.
If what Phil Haack says in his article is true, I thought I was using MVC in ASP.NET MVC, but what I really use is MVP (or a modified form of MVC).
In MVC, there are always controllers responsible for controlling the mouse and keyboard events. With MVP, the GUI components themselves are initially processed by the users enter, but delegated interpretation of this contribution to the lead.
But that is not what ASP.NET MVC is really all about.
If I handle mouse and keyboard events, I like to do this in the browser using jQuery. This separates user interaction from the controller and provides a better isolation between the user interface layer and the business level.
If I need to refresh part of my page with an AJAX call or a JSON call, I still have to do this, be it MVC or MVP.
ASP.NET WebForms, for example, attempts to emulate a rich client development paradigm using ViewState. This is why many attempts to apply patterns to ASP.NET focus on the MVP pattern, because the MVP pattern is more suitable for rich client applications with GUI components.
However, many web platforms cover statelessness of the network and do not try to simulate the full development of client applications Environment. In such systems, the modified MVC pattern is more applicable.
It is clear that Phil sees the (reshaped) MVC as a transition to a more stateless, thinner client, while MVP places more responsibility on the user interface level to provide a rich user experience.
Whether it is good or not is subjective. If ASP.NET MVP and MVC MVC MVC MVC, I gladly accept MVC initials to reject things like viewstate and dumb logic.
Robert Harvey
source share