Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Martin Fowler offers an <a href="http://www.martinfowler.com/eaaDev/uiArchs.html" rel="nofollow noreferrer">analysis</a> of MVC and MVP, and the Wikipedia <a href="http://en.wikipedia.org/wiki/Model-view-presenter#cite_note-3" rel="nofollow noreferrer">MVP</a> article gives more references.</p> <p>For me, there are two questions:</p> <p>1). How "live" is the Model-View relationship? If the Model changes dynamically, and the View(s) must update to reflect that Model change then we have classic MVC, and the Model somehow notifies the relevent Views of changes. This style doesn't apply to classic Web Apps (for example as implemented in Struts). Here there typically is a View created as a one off of a snapshot of the Model (indeed often on DTOs provided by the Model). In much literature the Web-style is still referred to as MVC. </p> <p>2). When the user does "something", who is responsible for ineterpreting and acting. In MVC this is typically the Controllers job. MVP appears to allow for more direct interaction from View to Model for this purpose (if I understand Fowlers article correctly).</p> <p>I much prefer clean separation of concerns - the MVC approach is how I think, but that may just be a familiarity thing.</p> <p>What should a person pick? Generally, I think you are driven by the framework you choose to use. I come from a Struts background, so web-style MVC is natural for me. If I understand correctly MVP has explicit adoption in some aspects of .NET. I would go with the flow of whatever framework you choose, and I wouldn't reject a framework just because it is MVP rather than MVC - even assuming that a clear-cut distinction could be made.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload