Important ideas in ASP.NET MVC
In a former life, I worked in a Microsoft shop. So I’m not completely foreign to the Microsoft development tool landscape. At the time, C# and .NET were just slightly better than Java, from my perspective as a language nerd. Lucky for me, I haven’t done extensive work in J2EE frameworks or ASP.NET so I have no frame of reference for how they compared at the time.
Given my obvious interest in languages, frameworks and how that affects what programmers build, I enjoyed hearing about the new ASP.NET MVC framework from Scott Guthrie. The most promising thing about this tool, to me, is that MS is guiding people down the unit testing path by default. I don’t know if any other Visual Studio tools are doing this, but it’s a pretty big deal to me. I think that right now only the most enthusiastic programmers do some any form of TDD or BDD. Putting it in the hands of “vocational” programmers has the promise to significantly raise the state of the art in programming. As a side note, it was interesting to observe that 40-50% of the audience raised their hand about doing TDD and 33-50% raised their hand for using an MVC framework.
The framework itself is nothing surprising if you’ve looked at Rails, Django, CodeIgniter, et. al. What was interesting to me is to see how the framework is colored by running in the CLR. On the plus side, you get LINQ and a really good VM. On the downside, you have to use for
loops and nullable types (wink, nudge). The rest is pretty much what you’d expect to see when you transliterate an MVC framework to C#, though they did display some creativity in making it decent to look at in terms of code style.
There was a pretty strong message that the tool is cross-platform (works with Mono) and cross-language. You can write a model in C#, a controller in Ruby and a view in Python. Scott even suggested that you could write unit tests in PHP, to which I thought, “PLEASE GOD NO!”
Scott a somewhat typical response, “Hey, I did this in Smalltalk in 1974!” – funny because it’s true. He also acknowledged its not for everyone. Some people need a car and some people need a motorcycle. Even so, the ideas that MS is putting in front of a ton of programmers are progressive and important. That’s the most important part to me.