MVC vs. MVP

MVC vs. MVP

Extracted from Microsoft Composite UI Applicatino Block Help pages.

The two most common patterns are Model-View-Controller (MVC) and
Model-View-Presenter (MVP). Both models are equally valid, though the MVP model
is generally easier to implement. MVC requires events that are exposed from the
model to update the view, whereas MVP depends on the presenter to update the
view directly.

1 2

Some notes on MVC:

MVC is a fundamental design pattern for the separation of user interface
logic from business logic. The pattern separates the modeling of the application
domain, the presentation of the application, and the actions based on user input
into three distinct objects:

  • Model. These objects know all about the data displayed, and are
    responsible for managing the data of the application. For example, you can think
    of your business entity classes as the “model” in business applications.
  • View. These objects manage the information displayed to users.
    Multiple views can display the same information in different ways.
  • Controller. These objects allow the user to interact with the
    application. Views invoke the appropriate controller, which acts on the model.