ASP.NET WEB FORM
False sense of separation of concerns:
ASP .NET has the concept of code behind, which pretends to separate the code i.e. logic from the html i.e. presentation by creating the code behind partial class.
Server side controls/ Limited control over Html:
Maintaining states across requests is stated as view state. View state data is transferred between the client & server which consumes more data & increased bandwidth. The hundreds of kilobytes data of view state, goes back and forth with every request resulting in slower response time & increased bandwidth for the server.
Because of tightly coupled architecture & code behind concept it becomes difficult to unit test the ASP .NET application via automated testing.
Separation of concerns:
MVC separates the code logic from presentation with the help of controller, model & views.
Test driven development:
MVC Supports test driven development as the model view & controller are the independent entities. Refer link “https://en.wikipedia.org/wiki/Test-driven_development” for more information.
MVC does not store the state of control by default, it means no view state is managed. Also there isn’t any post back events in MVC.