ASP.NET MVC v. Web Forms Debate - My View
The truth is that I can't tell you which development framework is better for you. But I can tell you which one is potentially worse, and that's Web Forms.
My personal preference is to use MVC for any web development I do, or for which I am responsible. I manage a growing team of web developers, and we do things with MVC. Recently, I went through an exercise in trying to recruit an extra body to the team. I was looking for a mid-level ASP.NET C# developer. I hoped to find candidates who had a good solid understanding of the ASP.NET Web Forms paradigm, ideally with a reasonable understanding of MVC. As the search went on, I found myself continually surprised at the lack of understanding that Web Forms developers displayed in regard to web development in general. One of them admitted to me that they only became aware of Request.Files as a result of reading one of my articles the night before the interview. Most of them had only ever developed web applications with ASP.NET Web Forms.
Web Forms does something that MVC doesn't - it hides most, if not all, of that "need to know". And that's why it's potentially worse for you.
Conery describes Web Forms as a lie:
"It’s abstraction wrapped in deception covered in lie sauce presented on a plate full of diversion and sleight of hand. Nothing you do with Webforms has anything to do with the web – you let it do the work for you."
Of course, it doesn't have to be that way. Conery urges you to understand that the web is not stateful and involves things like HTML and HTTP. As his piece progresses, it seems to suggest that you need to learn MVC to be able to grasp this.
Contrary to Conery, I won't castigate Web Forms or people who develop with them. I've met people who, for whatever reason, have to use Web Forms. Their employers are nowhere near ready or willing to move across to MVC at the moment. And that's not to suggest that moving to MVC is a natural progression in web development either. Many companies have a huge investment in Web Forms technology that they just simply aren't going to throw out - training, third party controls, experience and so on. Many companies don't buy into the whole Unit Test pitch behind MVC. Many companies simply don't test at all.
However, knowing the fundamentals behind web development as a discipline will make you a far better ASP.NET developer. And ultimately more marketable.
when if the time comes, it will make learning MVC a lot easier, too.
Currently rated 4.59 by 22 people
22 February 2010 21:53
Last Updated: 22 February 2010 22:33
Posted by: Mikesdotnetting
Total Views to date: 29324
Unfortunately, something went wrong and your message or comments have not been submitted successfully. I'll try to fix whatever the problem is as soon as I can.
Thanks for your comments. They have been successfully sent to me. It may take a while before I review them for publishing, so please check back again.