ASP.NET MVC will bring a Ruby-on-Rails-like development experience to ASP.NET and compete with .NET alternatives like Castle Monorail to offer the best agile web development framework. It won’t replace traditional WebForms (yet) but is a complete alternative. We’ve seen the video of the demo at ALT.net conference, and read ScottGu’s blog for a high-level overview, but this will be the first time we can actually get our hands on the bits and try it out.
In Matt’s words, the three major value offerings of ASP.NET MVC are:
- Clean separation of concerns (supporting red/green test-driven-development)
- Clean URLs, clean XHTML and full control over all markup
- Extensibility and pluggability (all system components can be replaced, and it will play nicely with 3rd-party facilities like IoC/DI containers)
He implied that the key advantages of ASP.NET MVC over Monorail (or even RoR) will be
- Rich tooling (Visual Studio support for intellisense, debugging, project templates etc – though I’d say these are all available in the existing open-source alternatives)
- Builds on existing ASP.NET infrastructure (so if you’re used to using the caching, session, profile features etc, you still can. Many ASP.NET web controls will continue to work in the new framework, but not all, as there will no longer be a concept of a postback (at last…))
The first CTP will perhaps be a little raw, as for example the ASP.NET AJAX features won’t have any special support for MVC, which means things like UpdatePanels won’t be usable any more. Matt suggested that they will work to port some of these concepts – the ones that you’d still want in MVC anyway – into the new framework.
There will also be limited tooling support, so for example no visual designer for your views.
- Nov 2007: VS2008 has a final RTM release
- Nov 2007: ASP.NET “futures” has a CTP release, containing MVC for the first time
- Feb/Mar 2008 (approx): Another ASP.NET “futures” release, with enhanced MVC
- Later: Final ASP.NET MVC release
As I understand, the first MVC CTP will target Visual Studio 2008 only, but that point wasn’t entirely clear so please wait for confirmation on that.
Update: I checked with one of the Microsoft ASP.NET guys and he believes that ASP.NET MVC will only target .NET 3.5, which means you’ll need to use Visual Studio 2008 and the new framework to use it.