Thursday, 24 September 2015

ASP.NET Overview | What is MVC | Difference between MVC2 vs MVC3 vs MVC4

MVC is one of three ASP.NET programming models. MVC is a framework for building web applications using a MVC (Model View Controller) design: The Model represents the application core (for instance a list of database records). The View displays the data (the database records).



Model: Model represents the application data domain. In short the applications business logic is contained with in the model.

View: Views represent the user interface, with which the end users interact. In short the all the user interface logic is contained with in the UI.

Controller: Controller is the component that responds to user actions. Based on the user actions, the respective controller, work with the model, and selects a view to render that displays the user interface. The user input logic is contained with in the controller.

Difference between MVC2, MVC3 and MVC4

View Engine :View Engine is responsible for rendering of the HTML code from your views to the browser.


  • MVC 2 uses only Web Forms view engine (.aspx) as a default View Engine.
  • MVC3 uses Razor View Engine (.cshtml for c# and .vbhtml for Visual Basic) and Web Forms view engine (.aspx).
  • MVC4 also uses Razor View Engine as a default view engine with some new features like condition attribute and ‘Tilde slash’.
  • Chart, WebGrid, Crypto,WebImage, WebMail Controls :
  • All these are not available in MVC2.
  • All these are available in MVC3 and in MVC4.

Syntex :

  • (HTML Syntax) Web Forms view engine syntax: <%=Html code %> in MVC2.
  • (Razor Syntax) Razor View Engine syntax: @Html code in MVC3.
  • MVC4 has the same Razor View Engine Syntax but with the addition of new features like conditional attribute and ‘Tilde Slash’ i.e. URL resolution.
  • Objects available for sharing of data between View and Controller :
  • TempData, ViewData are available in MVC2.
  • TempData, ViewData ,ViewBag are available in MVC3.
  • TempData, ViewData ,ViewBag are available in MVC4.> TempData is used with current and subsequent request i.e. when you know the next view to be redirected.
  • > In ViewData, dictionary of objects are accessible via strings as keys.


ViewBag was added in the C# 4.0 which uses the dynamic feature that allows to add properties of an object dynamically . We can say that ViewBag = ViewData + dynamic feature around the ViewData dictionary.

Jquery Support :

  • Jquery support is Good in MVC2.
  • Jquery support is Better in MVC3.
  • MVC4 provides better support for Jquery like Jquery Mobile.
  • Dependency Injection Support :
  • Dependency injection is Good in MVC2.
  • It provides powerful hooks with Dependency Injection and Global Action Filters in MVC3.
  • Better support in MVC4.

Layout Support :

  • Supports only Master Page in MVC2.
  • Supports not only Master Page but also Layout Page in MVC 3 and in MVC4.

Validation :

  • Client-side Validation and Asynchronous controllers is there in MVC2.
  • Unobtrusive Ajax and Client side Validation, Jquery Validation and JSON binding support is in MVC3.
  • Client side validation, Jquery validation and enhanced support for asynchronous methods in MVC4.
  • Project Templates :
  • MVC3 supports project templates enabled by HTML 5.
  • MVC4 supports many new features for mobile apps and also provides new mobile project template and default templates are refreshed and modernized.