My concerns with ASP.NET MVC

July 15, 2008

So ASP.NET MVC Preview 4 is about to hit the streets. I have been watching, waiting, hoping that the ASP.NET effort at copying Rails would be so compelling that I could stomach investing in .NET programming again.

The new preview 4 features:

  • filter interceptors (before + after hooks for controllers)
  • outputcache filters (action caching)
  • handle error filters (custom error page)
  • authorize filter (role-based authorization)
  • accountcontroller class (wrapper to ASP.NET membership API)
  • minor improvement to testing
  • some ajax stuff

They are incorporating community-driven features, which is good. But I don’t think the project has anywhere near the velocity it needs. It’s taken them 2 months to get this new functionality out the door… I’m not very excited, because it’s hard not to compare what’s going on to present-day Rails, which is years ahead.

The big concerns I have about ASP.NET MVC are:

  • still not opinionated enough. Rather than simplifying .NET web development, they are giving more choices
  • the names they are giving features… ugh! Give me the silly Rails “plugin_fu” and “sexy_plugin” names any day vs. filter, filter, filter
  • documentation not at your fingertips—maybe it’ll get there, but I bet there will never be a docs site for ASP.NET MVC as simple + easy to use as RailsBrain
  • no plugin system that I’ve heard about
  • not Restful… /:controller/:action/:id is so 2005. And I suppose for webservices, they still want developers to use SOAP?

I actually want the project to succeed, because it’s tough for organizations who have invested in .NET system to consider switch. And I want my .NET friends to be happier. They truly don’t know what they’re missing in the amazing Ruby community—Rails, Github, Merb, nginx/thin, Sinatra, Radiant, Shoulda, RSpec, and literally dozens of other interconnecting projects.