We're pretty big ASP.NET MVC fans here. For a long time, however, I've felt that the ASP.NET MVC framework lacked the crack-open-an-editor-and-get-stuff-done-ness found in Rails or Django. Although I (and Kevin Pang) don't agree with some of the conclusions drawn by Simon Tokumine in .NET MVC vs Ruby on Rails, I agree with this observation:
.NET MVC is actually .NET VC. It is an attempt to replicate the Actionpack components of Rails. There is nothing included aside from a folder labeled “Models” to help you with your persistence later and domain modeling. As others have mentioned, there are other ORM tools out there, but bear in mind these are not integrated into the framework as with Rails. There are good and bad points to this, but it does mean you’ll be writing more boilerplate code and setup for your model layer than you are used to with any of the Ruby ORMs.
In Scott Guthrie's latest update on ASP.NET MVC 3 tools, I noticed that creating a new project template automatically includes a reference to EntityFramework 4.1. For the uninitiated, this means you can immediately start using the newest Code First goodness to handle persistence concerns for your Model layer.
In my mind, this option means the framework has evolved from "VC" to "mVC." Two things are still lacking before I'd capitalize the "M":
- Entity Framework Code First needs a data migration story -- it's sort of a show stopper when a Model change requires the DB to be wiped clean
- I'd like the whole experience to be a little slicker than it currently is -- it's pretty good today, but I feel that Rails and Django still have a shorter path to getting stuff done
*msnbc.com is a joint venture of Microsoft and NBC Universal