A Comprehensive Guide to Motion View Controller

The Model-View-Controller (MVC) is an engineering design that isolates an application into three fundamental consistent parts: the model, the view, and the regulator. Every one of these parts are worked to deal with explicit improvement parts of an application. MVC is one of the most often utilized industry-standard web advancement system to make versatile and extensible ventures.

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.

Model

The Model part compares to every one of the information related rationale that the client works with. This can address either the information that is being moved between the View and Controller parts or some other business rationale related information. For instance, a Customer item will recover the client data from the data set, control it and update it information back to the data set or use it to deliver information.

View

The View part is utilized for all the UI rationale of the application. For instance, the Customer view will incorporate all the UI parts, for example, text boxes, dropdowns, and so on that the last client interfaces with.

Controller

Controllers act as an interface between Model and View components to process all the business logic and incoming requests, manipulate data using the Model component and interact with the Views to render the final output. For example, the Customer controller will handle all the interactions and inputs from the Customer View and update the database using the Customer Model. The same controller will be used to view the Customer data.

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)

Model View ViewModel (MVVM)

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