Introduction
I've been programming for the last two years and I started my career with ASP.NET Web Forms. I'm very happy with Web Forms and loved the Microsoft Rapid Action Development (RAD) approach. In my career of two years with ASP.NET, I saw a drastic shift in the .NET Community from ASP.NET Web Forms to ASP.NET MVC. Everyone is buzzing about the ASP.NET MVC framework and is attracted towards it.
So, I decided to taste the flavor of this framework and started learning ASP.NET MVC 5. This article series "Learn ASP.NET in MVC Style" is a collection of my study notes on it. I don't know whether it's a beginners guide to learn MVC or not, but if it helps someone in learning this popular framework, it will be a great pleasure to me. So, let's dive into the world of ASP.NET MVC 5.

If you're reading this article, not accidentally, then I assume that you are aware of the following two things:
- ASP.NET: ASP.NET is an open source web application framework developed by Microsoft to build robust and dynamic web applications. Initially, it supports the two development methodologies Web Forms and Web Pages. Over the years, ASP.NET has introduced an alternative approach to Web Forms for developing web applications based on the MVC pattern known as ASP.NET MVC.
- MVC: MVC stands for Model-View-Controller, is a software architectural pattern that follows the “Separation of Concerns” philosophy. This philosophy divides an application into three interconnected parts as Model, View and Controller each with very specific set of responsibilities. The goal of this pattern is that each of these parts can be developed and tested in relative isolation and then combine together to create a very robust application.
In the last 13 years since ASP.NET first came into existence on 2002, it has undergone several drastic changes from adapting the MVC architectural pattern to completely shift towards the Open Source community. As Microsoft is now following the open source philosophy, we can learn and code ASP.NET MVC on any OS platform. In this series, I'm using the Windows platform to develop web applications using the ASP.NET MVC 5 framework.
Roadmap
The following is the roadmap of the series so far:
- Learn ASP.NET in MVC Style - Part 1 [Introduction to ASP.NET MVC5]
- Learn ASP.NET in MVC Style - Part 2 [Controller in ASP.NET MVC5]
Prerequisite
This article series uses the newly introduced Visual Studio Community 2013 that comes with the latest ASP.NET MVC 5 Framework. I wrote an article on how to install the Visual Studio Community 2013. You can find the link here:
Getting Started
Modal-View-Controller (MVC)
Modal-View-Controller, originally referred to as "Thing-Model-View-Controller" is a software architectural pattern introduced and implemented by Trygve Reenskaug while working at Xerox PARC in 1978. It was originally used as an architectural pattern for creating Graphical User Interfaces (GUIs).
Trygve Reenskaug wrote a complete documentation about the MVC pattern that can be found here [^]. According to the documentation, "MVC was conceived as a general solution to the problem of users controlling a large and complex data set. The MVC pattern divides the entire application into three interconnected parts so that the data that is represented to the user is kept separate from how it is stored and represent internally." The three interconnected parts of the MVC pattern are:
- Model: Is the business layer of the application and is responsible for the data access. It contains the logic to access data that will eventually be displayed to the user. It is also responsible for business rules, validations and other things related to data access. However, it is unaware of how the data is being displayed to the user.
- View: Is the user interface of the application and is responsible for rendering the data from the Model to the user. It is unaware of how the data is retrieved and can render HTML, XML, JSON and other custom types.
- Controller: As the name suggests, it controls the entire application and is considered to be the most important part of the application. It is primarily responsible for handling the user inputs. It first determines what the user wants are and accordingly communicates with the Model and supplies data to the View to be displayed to the user. Without a controller, the Model doesn't know what data to get and the View doesn't know what output to generate to the user.

Real World Analogy of Modal-View-Controller (MVC)
When learning MVC, I stumbled across an article that explains the MVC pattern with a simple real world example. I'm using the same example here. The link of the article can be found here [^].
To understand the MVC pattern in the real world, consider the case of a professional photographer. He is asked to take a picture of a beautiful bridge for the promotional event. To take the picture, the photographer must use a camera and focus on various angles for a perfect picture. The final picture is then displayed to the outer world at the promotional event.

If we follow the MVC pattern here, the bridge is the Model that can provide a beautiful picture for the event. The camera is the View whose main purpose is to capture a beautiful picture of the bridge and display it to the outer world. The photographer plays the role of a Controller and controls the entire photo-shoot. He is responsible for the end result that is displayed at the event.
ASP.NET MVC
ASP.NET MVC is the Microsoft's interpretation of the MVC pattern. On October 2007, Scott Guthrie wrote a simple application using the MVC pattern and introduced it to a bunch of developers at the ALT.NET conference. It was widely appreciated in the conference and the .NET community shows its interest to the early prototype of ASP.NET MVC code-named Scalene. It generated so much interest and excitement that on 13-March-2009, Scott Guthrie introduced the first public release of ASP.NET MVC 1.0 as an official Microsoft product.
In merely 5 years, it is widely accepted in the community and Microsoft has released 5 major releases prior to the original ASP.NET MVC 1.0. The current stable release is ASP.NET MVC 5 and I'm using the same version for this article series.
Objectives of ASP.NET MVC
The ASP.NET MVC framework provides a ton of benefits for web development. Some of the main objectives are:















conrad mbaPosted Sep 21, 2017, 2:20 AM
Thanks. I learnt more stuffs here today.
sabarimalai iyyappanPosted Dec 31, 2014, 2:51 AM
Good article
kasi babuPosted Dec 31, 2014, 2:17 AM
ASP.NET MVC History Table is nice, next part excepting---Stable Release and Features implemented side by side columns.
Jitendra KumarPosted Dec 17, 2014, 11:47 AM
Nice Article....
Guest UserPosted Dec 17, 2014, 7:19 AM
very nice article , i liked the mvcdiagnostics page nuget!
AniPosted Dec 17, 2014, 4:58 AM
good explanation. Thanks for the article
Gursewak SinghPosted Dec 16, 2014, 12:32 AM
gr8 article Sahil Sharma. waiting for next parts..
Sahil SharmaPosted Dec 16, 2014, 12:16 AM
Keyur Patel. I'm glad it helps you to learn about MVC.
Keyur PatelPosted Dec 16, 2014, 12:09 AM
Awesome. I really don't know who has first introduced MVC pattern but from this article i know,it was introduced and implemented by Trygve Reenskaug while working at Xerox PARC in 1978.
Saineshwar BageriPosted Dec 15, 2014, 11:30 PM
Nice article