| Asp.Net Web Forms |
Asp.Net MVC |
| It use old Event driven development model. |
If follows MVC (Model, View, Controller) pattern based development model |
| It uses Page controller pattern approach for rendering layout. In this approach, every page has its own controller, i.e., code-behind file that processes the request. |
It uses Front Controller approach. That approach means a common controller for all pages processes the requests. |
| Here each page has its own code behind file. So it is tightly integrated and usually require less code than the MVC model |
Loosely coupled application development, where all the components are separated (Model, View and Controller). |
| No separation of concerns, applications is tightly coupled |
All components are separated and it works purely on Separation of Concerns. |
| Unit testing the code behind file is very difficult because of tightly coupled code. |
Better support for test-driven development (TDD). It is one of main feature of MVC. |
| Uses view state or server-based forms to managing state information easier |
Asp.net MVC approach is a stateless, so there is no state management techniques. |
| WebForms model follows a Page Life cycle and it is complex |
Request cycle for the MVC application is very simple |
| It has server controls, so developer need only less knowledge on HTML, JavaScript and CSS |
Here you need more knowledge on HTML, JavaScript and CSS. It has full control over HTML and it has HTML helpers |
| It follows file (web page) based URL. User has to specify the file name in the url to render the page |
It follows routed-based URL. User has to specify the controller and action name to render the view. Similar to REST based processing. |
| Web forms uses Master page for consistent look and feel in entire web application |
MVC uses Layout for consistent look and feel |
| It has User control for code re-usability |
It has Partial Views for code re-usability |
| Works well for small teams of Web developers and designers who follows rapid application development |
Works well for Web applications that are supported by large teams of developers and Web designers who need a high degree of control over the application behavior |
| It is not Open source |
It is Open source |