You’ve probably heard all of the buzz around Microsoft’s new ASP.NET MVC Framework. This is a framework methodology that divides an application’s implementation into three component roles: models, views, and controllers. You’ve probably also heard about a slightly different approach called Model View Presenter (MVP). If you ever wanted to know the difference between the MVC and MVP patterns and why you should use one over the other, Todd Snyder from Infragistics has an excellent explanation.
He sums it up by describing the key differences between the two patterns:
- View is more loosely coupled to the model. The presenter is responsible for binding the model to the view.
- Easier to unit test because interaction with the view is through an interface
- Usually view to presenter map one to one. Complex views may have multi presenters.
- Controller are based on behaviors and can be shared across views
- Can be responsible for determining which view to display (Front Controller Pattern)