While scanning my RSS feeds this weekend I’ve noticed a lot of “MVC vs WebForms” type postings. I feel the need for my own little rant in this area. It’s one which I’ve been meaning to get off my chest for a little while, and so now seems like as good a time as any to get it over and done with.. so here goes.
As a possible point of difference, my rant has nothing to do with technology.
I keep coming across posts from developers who are new to ASP.NET, and are asking something along the lines of “How do I do [whatever]…” or “How should I learn ASP.NET” – these questions are often filled with blunt responses along the lines of “Avoid WebForms, learn ASP.NET MVC”. Not necessarily bad advice in certain conditions, however I really feel that without a bit more information or discussion, that sort of response can be a little bit misleading.
As I said earlier, this isn’t about which technology is better – it’s simply about the reality of the marketplace in terms of commercial/corporate development, about understanding what skills employers are demanding right now, and about giving good advice to people who come to forums/communities which are full of professionals and who are expecting a balanced and professional response. As a candidate in an interview you may be able to cite many excellent technical reasons why MVC is better than WebForms, however if the job relates to maintaining a WebForms codebase and you have no WebForms experience then the interview is usually going to end one way.
I have a feeling that a lot of the people who are so avidly talking about MVC feel so passionately about it due to their time spent working with WebForms. How are new developers supposed to have the same level of appreciation without spending time time writing postback kludges or debugging databinding issues? How can you appreciate having full control over rendered HTML without having to battle with the tables that were auto generated by a GridView (or by developing in SharePoint)? I could go on and on here, but if you’re someone who has spent any time working with WebForms yourself then you’ll no doubt have your own list of analogies to add here.
Is ASP.NET MVC good and worth learning? Hell yes it is. Should you ignore WebForms completely and reduce your versatility as an employable developer? Well, that’s up to you (and obviously if you’re only learning things for personal projects then you can ignore all this – although I’d still argue that you’re better off for doing a bit of research before making your decision).
Over my many years working as a developer I’ve been to many technical seminars and educational presentations talking about development. Many of them have done informal surveys asking who in the crowd always gets to work on greenfield projects, and who doesn’t. Can you guess which way the responses usually go? That, combined with the relative age of ASP.NET MVC, and the glacial speed at which many corporate companies change their standards, is my point – if you’re wanting to learn ASP.NET skills for employment related reasons, you’d be doing yourself a favour by spending a bit of time getting to know WebForms first or alongside of ASP.NET MVC. That time might well be frustrating, but it’ll go a long way towards making you a better and more versatile developer.
Tags: ASP.NET, MVC