As a follow-up to some ASP.NET MVC comments by Dino Esposito, I want to provide my commentary on why the grassroots of the .Net developer community is so in love with ASP.NET MVC, even though Microsoft marketing isn’t really seeming to push it. It’s odd, too, because with Entity Framework, the message from Microsoft is clear: DataSets and Linq2Sql will still be supported. . . but . . . er. . .um, we recommend you start moving to Entity Framework.
Car vs. Motorcycle? Irrelevant analogy, I say
Because of the way the http://asp.net/mvc and other folks(Scott Hanselman) present a car vs. motorcycle analogy, the message is loud and clear: 9 of of 10 of you should be using Web Forms/car. The remaining 1 psycho with a death wish can ride the motorcycle/MVC. The problem is that reality is the following: Web Forms is the 1985 Lincoln TownCar (or even modern cars) where every single function is a physical electric toggle switch, plush comfortable seats and a sunroof. ASP.NET MVC is a 1950s Chevy. Every Chevy owner could understand how that car worked because of its simplicity. With the decked-out Lincoln, you needed to call in expert help if your electronic left mirror adjustment switch stopped working.
Whether Microsoft says it or not, ASP.NET MVC is a much superior IHttpHandler than Web Forms. I say it in this way because both use the ASP.NET runtime, which has proven very solid over the years. Because they are both linked to this core interface, they play nicely together. (In fact, stay tuned for an article about how to utilize MvcContrib’s Portable Areas feature by dropping in a DLL into a Web Forms app to instantly give that site a new section of urls and pages.)
Why is ASP.NET MVC superior? How can I say this when Web Forms has so many more controls, so many more features? I say this because it is a framework, not a product. I build products. I use frameworks to build products. I want my platform vendor to provide me with a simple and powerful framework so that I can build killer products for my clients. Crowding the framework with features actually hurts my ability to achieve my goal.
Web Forms will always have more features than ASP.NET MVC. ASP.NET MVC will never provide as many features as Web Forms. Chart control? Nope. How about the most basic grid? I certainly hope not. In fact, as one of the early and strongest community champions of ASP.NET MVC, I hope a grid never ships with it (MS should concentrate on the framework and let the community and component vendors ship grids). ASP.NET MVC has such grassroots excitement in the developer community because of the raw simplicity of it.
Simplicity will cause ASP.NET MVC to de facto replace Web Forms. I’ve said before that Web Forms will continue to power interesting web sites for decades to come. I am glad for that. It is a great framework, and I have delivered business critical applications with it. ASP.NET MVC is the way into the future for ASP.NET, though. After having a framework with tons of features and many strong control vendors who provide almost any functionality you can think of in a control, we (as in the average joe developer) long for a simpler way. ASP.NET MVC latches onto some of the strength of Rails and PHP. It is very easy to understand what is going on. Very simple. It doesn’t take an expert to decipher the flow of logic in the pages. This is simpler to the exercise equipment craze of the 1990s giving way to the rise in popularity of simple running and bicycling that we have seen in the U.S this decade.
Microsoft is not jumping up and down saying: “You should be using ASP.NET MVC for all your new web applications!” It’s just the folks who have given the framework a chance who are saying it.