Where else does ASP.NET MVC fall short compared to the Spring.NET, RoR, CakePHP, etc. frameworks?
Hmnn, tongue in cheek answer, where do apples fall short compared to pears? :-) It's hard to answer something so general. My main comment is that ASP.NET MVC is quite un-opinionated, i.e. it offends no-one, and it really doesn't enable 10x programmer productivity anywhere.
Arguably, something like Ruby on Rails does enable 10x higher programmer productivity under optimal circumstances for RoR. A example could be a single Ajax database-backed "contact me" form, where RoR's Ajax Javascript helpers really save a lot of time, if they fit your need.
The upside of ASP.NET MVC's un-opinionated'ness is that you get to pick and choose between lots of great technologies, and "mix and match" your own MVC framework. There are lots of great components available out there, many of them oven open source, with which you can "flavor" ASP.NET MVC to your choosing.
Another great thing about ASP.NET MVC is the strength of the entire tool chain -- from Visual Studio, Visual Studio add-ins like ReSharper, to Windows 2008, IIS 7, and Microsoft's deployment tools, to code samples like the Enterprise Library, there is just a huge amount of great tools and help to be found for .NET webapps.
I'm worried that ASP.NET MVC is WebForms 2.0 and eventually it is going to wear out it's welcome in the same fashion so I would be best to move to another framework for the longterm.
Absolutely not. Look at the number of questions tagged ASP.NET-MVC on this site, count the blog posts -- it's a big success. Besides, who says WebForms has died?
In fact -- and I want to emphasize that I don't have hard evidence for this, it's just a feeling -- in fact there may be more programmers actively working on ASP.NET MVC projects right now than there are on some frameworks in other languages, like Django on Python, which are considered successful and "here to stay". It is only speculation on my part, but amongst my circle of friends in development, ASP.NET MVC has a surprisingly huge mindshare for so young a project. This comes in part from "riding on the back of .NET", i.e. because .NET is so mainstream and has so many developers on it...
Move to another technology stack if:
- you have a great deal of experience with, or preference for, other programming languages
- or if you see huge technology benefits for your project in another platform (it really has to be huge, to offset the loss of experience with the platform).
- maybe, if you're doing a startup, and fx there is no way Microsoft will buy your startup but Google will, then maybe select your platform based on your expected acquirers preference.
Otherwise, if you like programming in C# / ASP.NET MVC, then stay put. ASP.NET MVC has a great future ahead of it.
[In fact, I have only one real gripe with ASP.NET MVC -- the name. It doesn't exactly roll easily off the tongue.]