Introduction:
In this article i am going to explain the difference between Asp.Net Web Forms
and Asp.Net MVC(Model View Controller) or we can say Asp.Net web forms vs Asp.Net MVC. In another article i explained Asp.Net MVC 4 application to Create,Read,Update,Delete and Search functionality using Razor view engine and Entity Framework
Description: Below are some most frequently asked interview questions about Asp.Net MVC:
Description: Below are some most frequently asked interview questions about Asp.Net MVC:
- What is MVC, its goals, work flow and advantages over asp.net WebForms?
- What is the different between ASP.NET WebForms and Asp.Net MVC?
- Is Asp.Net MVC going to replace WebForms for web application development?
The answer to first question is in
my previous article "What is Asp.Net MVC? Its work flow,goals and advantages"
The answer to second question is
in this article.
The answer to third question is
big NO because both the Asp.net web forms and Asp.net MVC are the methodologies
to develop web based application and both have their own advantages and
disadvantages over each other. Some developers prefer web forms while others
prefer MVC for creating web applications.
Difference between Asp.net Web Forms and
Asp.Net MVC
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.
|
Now over to you:
" I hope you have got the difference between Asp.Net web forms and Asp.net MVC and
If you like my work; you can appreciate by leaving your comments, hitting
Facebook like button, following on Google+, Twitter, Linked in and Pinterest,
stumbling my posts on stumble upon and subscribing for receiving free updates
directly to your inbox . Stay tuned and stay connected for more technical
updates."
13 comments
Click here for commentsthnkyou sir
Replyhello once again i want to say thank you for your helpful post ...
Replyi have a question if you could post the answer i would most appreciate it i have asp.net website with local sql server wich you create in visual studio and i want to upload it and i have no idea how to do so . if you could help me ..... thanks again
Your welcome Danish..:)
ReplyNeatly presented , thanks very much
ReplyI am glad you like my post..keep reading and stay connected for more articles on MVC..:)
Replythanks.
ReplyYour welcome..:)
ReplyThanks a lot Lalit for very clear differences between them.
Replywell explained so easy to understand
Replythank you very much
one request is just give "download" option for code....
Thanks for appreciating my work..i will also provide the option to download the code in near future..:)
ReplyYour welcome gandharv..stay connected and keep reading for more useful updates like this one..:)
ReplyVery useful sir. . In the past years I've programmed only desktop applications..now I'm a regular reader of your articles on web development .. love them all. . Now I'm going to develop a web application for the first tine ;just bacause of you. . :)
ReplyHello Ragu raman..thanks for appreciating my work..i am glad you found this article helpful..stay connected and keep reading..:)
ReplyIf you have any question about any post, Feel free to ask.You can simply drop a comment below post or contact via Contact Us form. Your feedback and suggestions will be highly appreciated. Also try to leave comments from your account not from the anonymous account so that i can respond to you easily..