Introduction to MVC Architecture in ASP.Net

Although its been introduced couple years back. This architecture is new to me. This blog is for those who wants to know what is MVC architecture.So with out delay lets get started.

MVC stands for Model View Controller. Model–view–controller (MVC) is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" (the application logic for the user) from the user interface (input and presentation), permitting independent development, testing and maintenance of each (separation of concerns).

Here we are talking about ASP.Net MVC Architecture. Before knowing about architecture lets know about MVC Framework.

The ASP.NET MVC Framework is a web application framework that implements the model-view-controller pattern. Based on ASP.NET, it allows software developers to build a Web application as a composition of three roles: Model, View and Controller. A model represents the state of a particular aspect of the application. Frequently, a model maps to a database table with the entries in the table representing the state of the application. A controller handles interactions and updates the model to reflect a change in state of the application, and then passes information to the view. A view accepts necessary information from the controller and renders a user interface to display that.

Release history
Date Version
10 December 2007 ASP.NET MVC CTP
13 March 2009 ASP.NET MVC 1.0
10 March 2010 ASP.NET MVC 2.0
13 January 2011 ASP.NET MVC 3.0

Advantages of an MVC-Based Web Application

The ASP.NET MVC framework offers the following advantages:
  • It makes it easier to manage complexity by dividing an application into the model, the view, and the controller.
  • It does not use view state or server-based forms. This makes the MVC framework ideal for developers who want full control over the behavior of an application.
  • It uses a Front Controller pattern that processes Web application requests through a single controller. This enables you to design an application that supports a rich routing infrastructure.
  • It provides better support for test-driven development (TDD).
  • It works well for Web applications that are supported by large teams of developers and for Web designers who need a high degree of control over the application behavior.
Nothing is perfect in this wold so do the mvc architecture it also comes with so downfalls. 
  •  The complexity is high to develop the applications using this pattern.
  • Not right suitable for small applications which has adverse effect in the application’s performance and design.
  • It often contains business logic and presentation tier.
  • The isolated development process by UI authors, business logic authors and controller authors may leads to delay in their respective modules development.
Complexity
  • The MVC pattern introduces new levels of indirection and thereof increases the complexity of the solution. 
  • It also increases the event-driven nature of the user-interface code, which can become more difficult to debug.
Cost of frequent updates
  • Developers cannot completely ignore the view of the model even if they are decoupled.
  • If the model undergoes frequent changes, the views could be flooded with update requests.
  • Views like graphical displays may take some time to render.
  • As a result, the view may fall behind update requests.

 
By default you wont get the mvc framework with your vs copy. For this you have download the MVC Framework.

After downloading install it. For installation procedure click here.