Lately I’ve been reading again lot of discussions going on about whether WebForm is a much wiser choice for developers, if it will die in favor of ASP.NET MVC, or how much ASP.NET MVC brings productivity away because it forces you to learn another framework or because it makes you think more about pattern, or name-your-other-rather-random-opinion.
Even if I wrote a book about ASP.NET MVC, I’ve to say I’m getting pretty bored about this discussions: like it or not many big companies cannot afford to rebuild their whole web applications on ASP.NET MVC, even if they want the TDD experience or the fine control over HTML markup. The only possible outcome is that projects will be a mix of both WebForms and ASP.NET MVC: probably it has been marketed in the wrong way by Microsoft itself (you remember the “4 pillars of ASP.NET”?), or probably it was the only way to do it at the time since ASP.NET MVC and Dynamic Data came out as OOB release and as part of a Service Pack.
But with the forthcoming ASP.NET 4 and probably even more in the next version (either they call it 4.5 or 5) we are starting to see a lot of cross pollination between the 3 UI frameworks:
- ASP.NET WebForms gained a lot of the good things that were born with ASP.NET MVC: routing, cleaner html, cleaner client id, less ViewState, SEO specific APIs. And you can easily put a Dynamic Data control inside a WebForm.
- ASP.NET MVC got the Templated Helpers, model validation, inspired by Dynamic Data. And it already got MasterPages and some of the good things of WebForms
And probably we will see even more for ASP.NET vNext; to the point that in 2 years we’ll probably decide whether to use ASP.NET MVC or WebForm in the same way we had to decide between a ListView and a Repeater back in the ASP.NET 2.0 days.
UPDATE: Just noticed that Jimmy Bogard wrote a similar post: My picture of an MVC-WebForms marriage.