ASP.NET MVC: Ready for the Enterprise
By Jonathan Goodyear
Just about everybody has heard the old saw that new Microsoft products can't be considered trustworthy and ready for usage in the enterprise until version 3. The theory goes that version 1 is more like a glorified beta, version 2 fixes all the bugs from version 1, and version 3 includes the features, fit, and finish that everyone envisioned should have been in version 1. Ironically, Apple products often follow this timeline, but nobody gives them any lip about it. For instance, it took until version 3 to get copy/paste on my iPhone, yet adoption in the enterprise was almost immediate.
A recent conversation with colleagues got me thinking that there may, at times, be other factors in play that impact technology adoption timelines. For instance, the Microsoft ASP.NET MVC framework (see www.asp.net/mvc) introduces a fantastic new way for developers to take absolute control over the functionality and output of their web applications. It would seem to be a perfect match for enterprise websites where extreme customization is the norm. Now, it is built on the fundamental infrastructure of ASP.NET that provides the platform upon which the Web Forms model rests. It is also a software development pattern (the Model View Controller) that has been around for years. You'd think that these factors would lead to quick adoption by big enterprises. However, while the Microsoft ASP.NET MVC has gotten a lot of attention among leaders and innovators in the ASP.NET community, it hasn't really caught on yet in the enterprise.
I don't think that the enterprise is waiting for version 3. I think that the reason that the MVC framework hasn't taken hold right away is because big corporations are a lot like glaciers very hard to get moving, and very hard to stop or change once they're going in a particular direction. (This pace of adoption is true for many other technologies by many other vendors.) Web Forms appeal to the way that most developers in the enterprise currently build applications, and there's a lot of support for them by third-party component vendors. Creating a shift against this enormous momentum is very difficult, even if it is for the enterprise's own good. For instance, MVC promotes a clear separation of concerns, which becomes increasingly more important as the size of an application increases. I can't count the number of times that I've walked into a consulting engagement where I had to tackle a huge monolithic application with business logic tied to event handlers in the code behind Web Forms. It is just too easy to fall into that trap.
A big strike against the MVC framework is that while it's a better way to skin a cat in many scenarios, it's not a disruptive technology advancement in the same way that Silverlight has been. If a new technology enables things to be done that either weren't possible (or were immensely difficult to do) then the speed of adoption is greatly accelerated. Enterprises are willing to deal with the potential risk in exchange for the very real reward.
I'll be the first to tell you that applying a bad development methodology to a good technology is still going to yield a bad result. However, using tools and techniques that make it harder to do the wrong thing makes it more likely that the finished product is going to be something that you can easily maintain and enhance down the road. The MVC framework, while certainly not a cure-all, fosters good development practices. Those good development practices translate into lower total cost of ownership (TCO) for the web application. That's something that even the suits up in the corner office can appreciate.
Visual Studio 2010 will ship with ASP.NET MVC 2.0, so it will be interesting to see how this integrated deployment scenario impacts the adoption rate of MVC. My hope is that the timing will be right for a shift to begin. MVC certainly isn't right for every web application, but I think that it's being under-utilized at the moment out of sheer ignorance about both its presence and capabilities. Rest assured that asp.netPRO magazine is going to cure both of those ills with increasing coverage of this powerful web development platform. We'll get you ready to tackle your next project with ASP.NET MVC. Convincing your boss to use it... well, we'll just have to leave that you.
Jonathan Goodyear ([email protected]) is president of APSOFT, an Internet consulting firm in Orlando, Florida. He is Microsoft Regional Director for Florida, an ASP.NET MVP, a Microsoft Certified Solution Developer, and a contributing editor for asp.netPRO.