Skip to main content

MVC - Introduction




What is MVC?

Model-View-Controller (MVC) has been an important architectural pattern in computer science for
many years.It was originally named Thing-Model-View-Editor in 1979, it was later simplifi ed to Model-View-Controller.Although originally developed for desktop computing, model–view–controller has been widely adopted as an architecture for World Wide Web applications in major programming languages.

Difference between MVC, MVP and MVVM


MVC

The input is directed at the Controller first, not the view.

That input might be coming from a user interacting with a page, but it could also be from simply entering a specific url into a browser. In either case, its a Controller that is interfaced with to kick off some functionality.
There is a many-to-one relationship between the Controller and the View. That’s because a single controller may select different views to be rendered based on the operation being executed.
Note the one way arrow from Controller to View. This is because the View doesn’t have any knowledge of or reference to the controller.
The Controller does pass back the Model, so there is knowledge between the View and the expected Model being passed into it, but not the Controller serving it up.


MVP

The input begins with the View, not the Presenter.

There is a one-to-one mapping between the View and the associated Presenter.
The View holds a reference to the Presenter. The Presenter is also reacting to events being triggered from the View, so its aware of the View its associated with.
The Presenter updates the View based on the requested actions it performs on the Model, but the View is not Model aware.



MVVM

The input begins with the View, not the View Model.

While the View holds a reference to the View Model, the View Model has no information about the View. This is why its possible to have a one-to-many mapping between various Views and one View Model…even across technologies. For example, a WPF View and a Silverlight View *could* share the same View Model. However, my own feeling is that this is a bad practice and creates Franken-ViewModels that have too many responsibilities. It’s better to keep it as a one-to-one mapping instead.
You’ll also notice that the View has no idea about the Model in the MVVM pattern. This is because, as far as the View knows, its “Model” IS the View Model (hence its name). Because of how data-binding and other features like commanding work in WPF and Silverlight, there is rich communication between the View and View Model, isolating the View from having to know anything about what’s really happening behind the scenes.



Comments

Popular posts from this blog

C# - DataTypes

                                                                                                      <<PreviousPage      NextPage>> Data Types Value Type  Variable contains value directly  Derived implicitly from the System.ValueType Cannot derive a new type from a value type. example of value type - int, float, enum. Builtin data types apart from the above mentioned built in data types we need to discuss two special type of data types - Struct and Enum Struct -  A struct type is a value type that is typically used to encapsulate small groups of related variables In the below example we are using a struct variable Book which has one decimal value price an...

C - Overview

What is C? It is a programming language developed at AT & T’s Bell Laboratories of USA in 1972. It is designed and written by Dennis Ritchie. C is a general-purpose language which has been closely associated with the UNIX operating system for which it was developed - since the system and most of the programs that run it are written in C. The evolution of C took place in the following way: Why should we use C? 1.C language is a building block for many other currently known languages. 2.There are only 32 keywords in ANSI C and its strength lies in its built-in functions. Several standard functions are available which can be used for developing programs. 3.C language is a structured programming language. This makes user to think of a problem in terms of function modules or blocks. Collection of these modules makes a complete program. This modular structure makes program debugging, testing and maintenance easier. What is ANSI C? 1.ANSI C, ISO...