Web Forms vs MVC

In this blog, we will look into benefits of ASP.NET MVC followed by MVC vs Web Forms features. ASP.NET MVC is supplemental technology for ASP.NET Web Forms. Just using MVC for the project development will not improve the team productivity. It depends on type of project being developed, team skills etc.

Request Flow:

                                Web Forms                                                                            MVC

              

ASP.NET MVC is based on Model-View-Controller architecture and having clear seperation between presentation & control logic.

It provides better control over the HTML rendered to the browser. It is having built-in support for TDD [Test Driven Development]. We can create Test project with an option of choosing the Testing framework like Nunit, Visual Studio Unit Test.

 We cannot use server-side controls, viewstate in it.

Coding in MVC is similar to doing in Classic ASP. So, it's easy for ASP or JSP developers to adopt to the coding standards of MVC.

MVC is having support for multiple view engines like Razor, Spark. View Engine is a component that executes Server side code like database operations, generating HTML.

URLs generated in MVC are user-friendly and Search Engine optimized.

MVC suits better for projects based on TDD and having frequently changing requirements.

So, choosing MVC for your project development depends on project type, developer's skill set and type of requirements.

Below is the comparsion of MVC vs Web Forms features:

ASP.NET MVC Web Forms

Based on Model-View-Controller modelProvides clear separation between presentation & control logicBuilt-in support for TDDBetter control over rendered HTML & jsSEO & User friendly URLs using routine engineSuits for Classic ASP, JSP developersSuits for applications having dynamic requirementsSupport for multiple view engines like Razor, Spark No ASP.NET Page lifecycle & page level events like page_init, page_load

Based on Postback modelUses server-side controls & ViewStateSuits for RAD [Rapid Application Development]Built-in support for cross-browser rendering capabilitiesLess control over rendered HTML

 

We can use mix Web Forms & MVC in a single project. By this way, you can use MVC for new development/ enhancements by keeping existing code base on Web Forms.