Difference between Web Forms and MVC in Asp.Net

Hi Guys,

You might have heard arguing some of developers about Advantage and Disadvantages of Web Forms over MVC or vice versa. I tried to compile some of the major difference between ASP.NET WEb Form and MVC design pattern which are listed below.

Asp.Net Web forms Asp.Net MVC
Asp.Net Web Form follows traditional event driven development model for creating web applications. Asp.Net MVC is a light-weight framework that separate an application into three main components i.e. Model, View, Controller (MVC) so it follows MVC pattern based development model for web application development.
ASPX page (.aspx) is tightly coupled with code behind files (aspx.cs/aspx.vb file) .So In Asp.Net web Forms there is no separation of concerns (SOC). So it’s not possible that multiple developers can work on one section i.e. aspx and another on code behind file at same time. So less support for parallel development.  Asp.Net MVC pattern is loosely coupled and provides very clean separation of concerns (SOC). View and Controller are independent of each other. So one developer can work on Controller, at the same time other on View and third developer can work on Model. This is called parallel development.
Because of this tightly coupled behavior unit testing in Asp.Net Web Forms becomes really difficult. Each component in Asp.Net MVC can be easily tested because MVC is loosely coupled. So it provides better support for test-driven development (TDD) and Enhances testability.
Asp.Net Web forms doesn’t require much prior knowledge of HTML, JavaScript and CSS. Asp.Net MVC requires detailed knowledge of HTML, JavaScript and CSS.
Asp.Net Web forms provides limited control over HTML, JavaScript and CSS. With MVC we have full control over HTML, JavaScript and CSS.
Asp.Net Web forms allow rapid application development (RAD) of web applications because of the availability of robust toolbox having lots of web controls and many control libraries. Asp.Net MVC might be bit slower to develop a project than Web Forms (due to its SOC nature)
In Asp.Net web forms there are ViewState and Postback events. Large viewstate means increase in page size since viewstate is stored in the page itself thus bit slower loading time and performance degrades. MVC is stateless, so no ViewState and PostBack events so light weight, quick loading time and gain in performance.
URLs are not much SEO friendly (though this is now possible in ASP.NET 4 as well), so affect SEO. Use of RESTful URLs makes MVC is more suitable to Search Engine Optimization as we can control the URL and the HTML to a greater extent.
ASP.NET Web Forms model follows a Page Life cycle. Asp.Net MVC doesn’t follow Page Life cycle like Web Forms instead request cycle is simple in ASP.NET MVC model.
Asp.Net Web forms have rich server controls and ViewState, so developers can develop web applications with minimal HTML and JavaScript skills,thus bit easy to learn. Because ASP.NET MVC doesn’t support server controls, ViewState and event driven programming mode so it is very difficult framework for new developers to learn and work on MVC pattern.
Asp.Net Web Form has Master Pages that provides for consistent look and feels across all the pages of web application. Asp.Net Web Form has Layouts for consistent look and feels. Default name of the layout is _Layout.cshtml and stored in /Views/Shared folder.
Many server controls provided by visual studio toolbox like GridView and DataList, Repeater etc has easy data binding capabilities so reduces lots of efforts and codes being written. ASP.NET MVC doesn’t have server controls instead it has html input controls.
Asp.Net allows code re-usability through User Controls. Asp.Net MVC has Partial Views for the concept code re-usability.
Asp.Net Web forms will be good for small scale applications with limited team size. Asp.Net MVC will be best suitable and recommended for large-scale applications where different teams are working together.

So I guess above are some of the points you should remember if you have to make a choice between Web Form and MVC design pattern in ASP.NET Development life cycle.

Cascade GridView In ASP.NET

Hi Guys,

Have you ever used cascading GridView (GridView inside another GridView) ? I recently got a chance to work on an project where I have to display data in Master Detail relationship so I thought why don’t I used GridView to display detail data with displaying data along with Master data so tried to use Gridview inside a parent GridView. Continue reading

Migrate From ASP.NET To MVC 3

Whenever a new technology or product comes onto the developer scene, people want to know how to best leverage their existing skills to work with it, and nobody wants to have to abandon existing knowledge. Making the move from Web Forms to MVC is no different. Despite the fact that Web Forms & MVC are very different ways of creating web applications on the ASP.NET platform, there are many skills and techniques to take with you. Continue reading

ASP.NET MVC 3 Concept & Overview

MVC Poster

Continue reading