As part of Scott Guthrie's keynote March 18th at Mix 2009, Microsoft announced the final release of ASP.NET Model View Controller( MVC). If you haven't had a chance to look at it yet, now is your chance as it's officially out of beta and into full production.
Related: Exploring ASP.NET: ASP.NET Grab Bag
ASP.NET MVC - Why All the Hype
In case you haven't heard, Microsoft has made it abundantly clear that ASP.NET MVC isn't designed to replace ASP.NET Webforms development. Instead, it's another option that Microsoft is making available to developers. This is similar to Microsoft's decision to allow developers to code in both Visual Basic and C# - the idea being that developers chose what best meets their needs and particular styles.
Personally, I'll never go back to WebForms, because I'm sold on the way MVC solutions give me complete control over my markup, facilitate testing, and allow greater control over URL routing while making my code much more modular (which in turn, makes it easier to manage and extend). So, while MVC development might not be for everyone, it's definitely for me, and I'm completely sold on it.
ASP. NET MVC as a Testament to Innovation at Microsoft
But what I really love the most about ASP.NET MVC (in addition to all of the time it saves me as a developer), is that it's a perfect example of some very new, and innovative, approaches that Microsoft has taken in regards to addressing business and the web in general. Once upon a time, Microsoft's approach to the web and competing products and platforms basically consisted of doing nothing more than pretending that those offerings didn't exist. You can see some examples of this mindset by visiting some parts of the Microsoft corporate site, where many pages and applications simply don't work correctly with browsers other than Internet Explorer. Likewise, this mindset was also at the heart (in my opinion) of much of the complaints leveled at Microsoft for being nonconforming with industry accepted standards.
But the MVC is part of a vanguard of new products and services delivered by Microsoft where the company seems to take an entirely different approach. Rather than simply pretending that other offerings don't exist, this approach focuses on accepting the strengths of other platforms, analyzing those strengths, rolling them into Microsoft products where applicable, and then building supporting and competing Microsoft products that developers, and IT professionals, just can't do without.
IIS 7, for example, no longer pretends that PHP doesn't exist. Instead, it fully embraces it, and is striving to provide such a powerful hosting platform for it that businesses will choose to run PHP on IIS7 given the ease of management, extensibility, and flexibility that they'll enjoy from hosting PHP on a Windows Server. And if Microsoft is able to deliver? Then businesses will be buying Windows Server licenses for their web workloads, instead of using Apache licenses. It's a bold business approach to be sure, but I much prefer this approach to meeting the competition head-on, rather than watching Microsoft merely burying its head in the sand.
What's better, is that it appears that as Microsoft continues to take this head-on business approach, we're finally starting to see some really innovative things coming out of Redmond. And in my mind, a prime example of that innovation has been the effort and energy devoted to the creation of ASP.NET MVC functionality. As an ASPInsider, I've been able to see just how innovative the ASP.NET team working on this project has been - and how careful they've been in creating this platform in order to ensure that it really, and truly, met real-world business needs.
A further example of how this innovation and its associated paradigm shift is taking root at Microsoft is the BizSpark program, which takes a very aggressive approach at preventing start-ups from courting the LAMP stack as a cheaper alternative to the Microsoft Stack by giving them three years to use Microsoft products and licenses for free.
And, if you think that I've possibly gone off the deep-end, or imbibed a bit too much of the Microsoft Kool-Aid, make sure to check out Bill Buxton and Scott Guthrie's Keynote from Mix '09. Here's the link: http://live.visitmix.com/ . You'll need to mouse over the player, select the Other Videos option, and select the Day1 Keynote.
Unless there's something seriously wrong with you, this keynote will get you excited about development again, and it will totally make you rethink your relationship with Microsoft. You'll also see some great examples of real-life innovation.
Getting Started with ASP.NET MVC
As for ASP.NET MVC itself, if you've been waiting for it to mature a bit before playing with it (or just haven't had the time yet), now is a great time to pull it down and try it out. It now has a brand new portal page on the www.asp.net web site itself, and there are also a number of great videos that will help you get quickly spun up on how it works, and what it does. In fact, if you'd like a very quick overview of how MVC applications work, make sure to check out Stephen Walther's new video that shows a start-to-finish MVC app. p>
Likewise, one of the great things about MVC development is that it's insanely extensible and lends itself very well to customizations and tweaks. I've leveraged these capabilities extensively in my own projects, and a huge resource that's helped me in doing so has been access to the actual source code for ASP.NET MVC itself - which you can peruse (or even download) from the codeplex site.
Another resource that you'll want to pay attention to if you're interested in MVC development is MVCContrib, which is an extensive suite of open-source extensions and augmentations that can be used to improve MVC development. I've also found that Phil Haack’s and Rob Conery's blogs are great resources; they document some MVC features and functionality. But more importantly, these blogs are great resources in terms of explaining why certain features are implemented as they are. The resulting transparency from those blogs helps (in my mind) play a big part in much of the innovative spirit that makes MVC and other recent releases from Microsoft so exciting and refreshing.