Difference betweeen ASP.NET WebForms and ASP.NET MVC?
ASP.NET WEB FORMS
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
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,
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 Form have no HTML
Asp.Net MVC has HTML helpers
Asp.Net Web forms have rich server controls and ViewState, so
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
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
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.
Asp.Net Web Form is not Open Source
Asp.Net MVC is an Open Source
Asp.Net Web Form Follows Web Form Syntax
Asp.Net MVC follow Custom syntax (Razor as Default)