Alternatives to the MVC [closed]

One of the best write-ups of several different Interactive Application Architecture Patterns out there, is this very detailed and well-researched blog-post. It covers Model-View-Controller, three different flavors of Model-View-Presenter, several different flavors of Presentation-Abstraction-Control, Supervising Controller, Passive View and Hierarchical MVC.

Another interesting pattern is the Presenter First pattern by Atomic Objects. It's not just a Design Pattern, it's also a Process Pattern. IOW: the name "Presenter First" is not arbitrary, it actually describes a development process, in which the Presenter gets written first, driving the design of the rest of the system.


There are many others:

  • Model View Presenter (MVP)

    • Supervising Controller
    • Passive View
  • Model View ViewModel (MVVM)

    • This is common in WPF applications (though Prism uses the MVP pattern (usually))

MVC is an architectural pattern. These are the other Architectural patterns you can try (from Wikipedia):

  • Layers
  • Multi-tier Architecture
  • Presentation Abstraction Control (PAC)
  • Model View Presenter (MVP)
  • Model View ViewModel (MVVM)
  • Pipeline
  • Implicit Invocation
  • Blackboard System
  • Peer-to-Peer
  • Service Oriented Architecture (SOA)
  • Naked Objects

These are available here in Wikipedia.


DCI - "Data, Communication and Interaction"

http://www.antonioshome.net/kitchen/nbdci/index.php#dci-introduction

http://www.artima.com/articles/dci_visionP.html

The Common Sense of Object Orientated Programming - MVC vs DCI