Benefits of ASP.NET Web Forms
- ..stable and mature, supported by heaps of third party controls and tools.
- To simulate stateful programming over the Web, ASP.NET Web Forms introduced features such as viewstate, postbacks, and an overall event-driven paradigm.
- ..componentization of some ASP best practices
- Productivity and rapid development of data-driven, line-of-business applications
- ..separation of concerns (SoC) has not been a natural fit with the Web Forms paradigm.
- Automated testing of an ASP.NET Web Forms application is hard
- ..postback model .. makes it harder for search engines to rank ASP.NET pages high.
- ..excessively large viewstate is problematic
Benefits of ASP.NET MVC
- ASP.NET MVC is a completely new framework for building ASP.NET applications, designed from the ground up with SoC and testability in mind....a working environment that enables, not penalizes, test-driven development (TDD)
- No postbacks
- No viewstate
- ..stateless behavior, full control over every single bit of HTML, total script and CSS freedom.
- ..leaner run-time stack ... the run-time stack of ASP.NET MVC is simpler and the difference is due to the lack of a page lifecycle.
- unparalleled level of extensibility
- ..full control over HTML, JavaScript, and CSS, ASP.NET MVC means that you enter the Web elements manually....a step backward in terms of usability and productivity.
- ..not something you can easily learn by experimenting....this may be the source of decreased productivity for the average Web Forms developer.
- ..the size of the viewstate decreased significantly in the transition from ASP.NET 1.1 to ASP.NET 2.0 when Microsoft introduced a much more efficient serialization algorithm.
- Ruby-on-Rails has proved that MVC can also be a successful pattern for Web applications; and ASP.NET MVC confirms this.
- ASP.NET MVC today lacks some level of abstraction for creating standard pieces of HTML. HTML helpers are just an interesting attempt to speed up HTML creation
- Web Forms embraces the RAD philosophy whereas ASP.NET MVC is TDD-oriented
- Web Forms goes toward an abstraction of the Web that simulates a stateful environment, while ASP.NET MVC leverages the natural statelessness of the Web and guides you towards building applications that are loosely coupled and inherently testable, search-engine friendly, and with full control of HTML.
- ASP.NET MVC is not the only way to get SoC in ASP.NET.
- Web Forms was designed to abstract the Web machinery.
- ASP.NET MVC exposes Web architecture.
- ASP.NET MVC was designed with testability and Dependency Injection in mind.
- ASP.NET MVC takes you towards a better design of the code.
- ASP.NET MVC is young and lacks a component model.
- ASP.NET MVC is not anti-Web Forms.
- Web Forms is a model based on the "Page Controller" pattern.
- ASP.NET Web Forms doesn't prevent unit testing, but it requires much discipline and repetitive boilerplate coding to do so.
- ..in ASP.NET MVC intrinsic objects are mockable as they expose interface and base classes.
- ..control over HTML and SEO-friendly URLs, both advantages of ASP.NET MVC, can be achieved to some extent in Web Forms. ASP.NET 3.5 SP1, in particular, includes the URL Routing and History API for SEO
Also see:
ASP.NET MVC: What is it and should I use it?