ASP.NET Webforms has been the standard web development model on the Microsoft .NET platform since its release in 2002. One of the key web development aims, is making the stateless nature of the internet easier to develop for.
It does this by wrapping up all the things you might expect if you're coming from Windows programming:
- Input controls having the same content as when you last interacted with the page (via mechanisms like ViewState).
- Event driven architecture (btnDoStuff.Click += new .)
It does a great job of abstracting away the details of what's going on, it makes it easy to pick up and work with.
It makes you really productive create a form, add some text box controls, add a button, wire up to the click event, grab the data from the form via a full control hierarchy.
Bing, bang, bosh! you've got a contact form.
The thing is though, the web isn't stateful, and working with the comfy blanket of Webforms makes you forget that.
ASP.NET MVC was released this year, it's an alternative web framework that takes you back to the truth. It runs on the same .NET platform but takes you back to thinking of pages in terms of resource request / response.
We love Webforms, we've got a big investment in them and it's one of the things that enables us to build great web applications.
What's the one reason ASP.NET MVC can only be a good thing? because it makes you remember the truth.
Take the blue pill, go with the programmatic illusion of the stateful web, or take the red pill and see how deep the rabbit hole goes. I'll always take knowledge over ignorance.