Asp.net is a web development framework for building web pages and web application with HTML, Client side script, Server side script etc. There are 3 models provided by asp.net to build web application. Each model has different scope and application of use, so I am going to explain about each model.

1. Web Form

This is basically an event driven programming model which lets you build dynamic websites using familiar drag- and- drop. Design view and lot many controls helps you to develop application rapidly. This is a tradition approach to build website in asp.net. Web Forms are compiled and executed on the server, which generates the HTML that displays the web pages. This Model basically targets to those developers who prefer declarative and control based programming, such as Win Form etc. Developer does not require a lot of experience to develop application in this model. It is the most popular model of ASP.NET but has been criticized for the lack of control over the generated markup because a lot of abstractions are present in this model. In this model each page having aspx and .cs file. In aspx file we can write HTML tags, Server controls etc. and all events and code written in .cs file. So by maintaining two file this model separate code from front end tags for generating UI. There are following functionalities provided by this model.

2. Asp.net MVC

ASP.NET MVC is for developers who are interested in development like test-driven development, separation of concerns, inversion of control (IoC) etc. This framework separates the business logic layer of a web application from its presentation layer.

MVC is a framework for building web sites which uses MVC (Model View Controller) design:

MVC helps you manage complex applications, because you can focus on one aspect of an application at a time. For example, you can focus on the view without depending on the business logic. It also makes it easier to test an application. That's why test driven development is easy with MVC framework.

The MVC also facilitates the group development. Different developers can work on the view, the controller logic, and the business logic in parallel or if I want to explain in easy word then I can say developers can work on Model, View and controller separately and later on they can merge whole application.

The MVC programming model is a lighter alternative to ASP.NET Web Forms model. It is a lightweight, highly testable framework, integrated with all existing ASP.NET features, such as Master Pages, Authentication and Security.

This model uses Front Controller pattern. There is a single central controller for all pages to process web application. Developer should have good knowledge of HTML,CSS and Javascript in order to work with this model.

3. Web Pages

Web Pages are the easiest programming model for developing ASP.NET web pages. It provides an easy way to combine HTML, CSS, and JavaScript and server code. It uses Razor syntax to write server side and HTML. It is similar to PHP and classic ASP. In this page Model you can create HTML pages and then add server based code to page. It will be very easy to those developers who have worked on PHP and not having worked on ASP.NET before. There are following basic features of this model.