So I spent a few days at MS last week – building 42 – playing with their MVC implementation. The goal was to inform them of all complex and even counter intuitive requirements that we got from the real world apps and how/if the MS MVC would be able to handle them.
In the end I’ve developed a handful of samples – that I’m going to make available as soon as they publish their CTP.
I was able to:
- Create a initial IParameterBinder support
- Create a NVelocity View Factory
- Get a REST support working (both for url semantics and rendering based on the accept header)
- Get it working with Castle’s DataBinder and ActiveRecordDataBinder
Things that I wanted but weren’t able to do:
- Reuse MonoRail’s helpers: mostly because they are too tightly coupled with MonoRail
- Create a Brail View Factory: same reason
- Create a selector for view factories: impacts on testability
While there I met all the guys from the MVC Team: Simon Calvert (PM), Phil Haack (PM), Chris Tavares (Dev/P&P Team), Eilon Lipton (main dev), Rob Conery (Dev) and Scott Guthrie. Not surprisingly they are incredible smart and talented people. But surprisingly – at least to me – is how MS is approaching this framework. They are not in a rush, they are more concerned about getting it right than getting it done fast. My overall impression is that they are really crafting a framework. Dude, if I had the time and resources to do the same thing, Castle would be very different….
Right now, though, for folks with lot of expectations, the CTP might be a turn off. That’s because what you’re going to see is a very small framework, with a lot to be done to be useful. As they say, the CTP is mainly for feedback. I’m sure Milestone 2 would be something great, though.
And what happens to MonoRail? – you may ask. I’m not sure. I was really adamant that they should try to support all things that MonoRail support, but I’m not sure they are going for that. MonoRail 2.0 is pending their implementation. If the final MS MVC rocks, and provides so many things, I’d vote for forget the MR 2. If the final MS MVC has clearly something lacking, MR 2 could reuse the infrastructure and provide some nice extensions.
But right now, this is just guessing. We would have to wait, and I’m crossing finger that my long list of suggestions will be use to drive their feature list ;-)