As I hear yet another colleague complain about the complexity of MVP – “its just pathetic” – I’m starting to think things have gone wrong – badly wrong!
We are NOT rocket scientists and its only a web form!
The aim of MVP is:
– Testability of the application
– Cohesion or separation of responsibility
– Enable the conceptual design to be changed with minimal impact to the entire application.
The advantages are:
– Separation means UI, business logic and data access developers can work independently.
– The presenter can be reused in different user interface designs (web, windows form, etc).
– Maintenance is easier due to separation of responsibilities (UI, application behavior, and domain).
– Enables applications to support different user interface types – forms or web services.
So a simple tiered design with a UI Interface and Business, DAL and Service layers will largely achieve these objectives. So that makes MVP all about the “Testability” point – is THAT what this is about!
So we can’t NUnit test everything below the GUI! No big deal, lets give the test team a key stroke emulation tool to cover that issue and give the developers their weekends back.
Simple is good and MVP is coprolite.