Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
Building websites, which is the better approach MVP or MVC?

I am trying to learn the difference between the MVC and MVP models. So far, I do not see much difference in terms of how they are architecturally set up. So my question is when should the MVP model be chosen over the MVC model? Are there situations where one is better than the other?

share|improve this question

marked as duplicate by JeffO, gnat, Robert Harvey, Walter, Yusubov Oct 11 '12 at 0:39

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

There is a much better answer here than anything I could write, but as a basic summary I find that MVC is optimized for client/server applications such as websites, while MVP is optimized for desktop applications. – Rachel Oct 10 '12 at 14:53
up vote 2 down vote accepted

The link Rachel shared from SO about MVP vs. MVC goes into a lot more detail, and is probably the definitive answer to your question. I believe RAD in that question stands for Rational Application Developer, which is an IDE based on eclipse.

They are fairly similar. From my experience, the particular variant you end up using is in part dictated by the framework you use and which pattern it is geared towards. WPF and Silverlight, for example, really emphasize an MVVM approach which is a variant of MVP.

Other languages / programming stacks will push different MV* variants. Use what's native to your stack.

The link Jeff O. posted looks at the question from an MS ASP stack point of view.

For some additional info, look at Martin Fowler's discussion of GUI architecture. This paragraph comes from the beginning of the MVP discussion.

To approach MVP I find it helpful to think about a significant mismatch between two strands of UI thinking. On the one hand is the Forms and Controller architecture which was mainstream approach to UI design, on the other is MVC and its derivatives. The Forms and Controls model provides a design that is easy to understand and makes a good separation between reusable widgets and application specific code. What it lacks, and MVC has so strongly, is Separated Presentation and indeed the context of programming using a Domain Model. I see MVP as a step towards uniting these streams, trying to take the best from each.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.