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 |