Answers like ASP.NET MVC or Entity Framework really aren't acceptable as they address just one aspect of the problem domain.

I'm looking for a framework ... a REAL framework that gives me the same features out of the box that Rails does. As such it should include at minimum:

  1. MVC for presentation
  2. ORM
  3. Ability to provide simple configuration for whatever environment (dev, QA, Production, etc...)
  4. Migration like functionality
  5. Ability to generate code in all layers (similar to scaffolding like behavior, etc...)
  6. Project template so as to create similar functionality as the "rails my_app" command.


Jörg W Mittag
Ruby on Rails is not a .NET language. You can use IronRuby [on Rails] in .NET, but it's only implementing about 86% of the spec for a version of ruby a few versions back (1.8.6, IIRC).
@codemonkey4hire: Yes, it is true that Ruby on Rails is not a .NET language. I never claimed it was. In fact, that is a pretty boring statement, since Ruby on Rails is a Web Application Framework and not a language, and so, since Ruby on Rails is not a language, the statement that Ruby on Rails is not a .NET language is completely void of any useful information. Toyota is also not a .NET language, it's a car company.
Jörg W Mittag
@Jörg W Mittag quote:"Check: Ruby is a .NET language, Ruby on Rails runs on .NET, there is a Rack adatper for Internet Information Server, there is an ActiveRecord Adapter for SQL Server, Ruby on Rails is for all intents and purposes a 100% native .NET citizen." This is false. Ruby is not a .NET Language. It is it's own language and is older than .NET itself. IronRuby is an implementation of Ruby based on the specs for version 1.8.6, but it is incomplete and 1.8.6 is a few versions ago.
+9  A: 

Yes, there's a Framework... it's called the .NET Framework.

  2. Linq to SQL / Entity Framework
  3. .NET Configuration API (web.config)
  4. ??? (What is "migration-like functionality?")
  5. ASP.NET Dynamic Data
  6. Visual Studio Project Templates

What exactly is a "REAL" framework, beyond a set of components that interoperate to provide a comprehensive set of features? I submit that the current iteration of the .NET Framework already does exactly what you're looking for, out of the box.

Rails migrations are essentially scripts that change one aspect of the database schema, like adding a table, or removing a column. Ideally, each migration encapsulates one small change, and has a method to roll it back.
prevents early optimization.
You obviously haven't used Rails Aaronaught Having looked at both .NET Java Spring and Rails I can say that of the three Rails is by far the best framework by miles, especially if you are working in a small to medium size software development company.
@ealgestorm: Geeve. Take your flamebait elsewhere.
If my professional opinion based on experience is flamebait then you must be a microsoft zealot.
@eagle so you can't disagree without being a zealot? Or does that make you a Rails zealot?

We've been using NetTiers as an ORM with great success for over a year now. That takes care of the middle tier and data layer. Other stuff, like logging and exception, comes from Microsoft Enterprise Library.

Mix that in with front-end templates generated by CodeSmith, and good Ajax component suite like DevExpress, and you're on your way.

Get everything automated with CruiseControl, and you have continuous integration and one-click deployments.

Kevin Raffay
+1  A: 

Well, the short answer as I see it is "no". There's not one framework (that I know of). However, you can combine many frameworks to get most of this.

  • MVC
  • Castle ActiveRecord to get the ActiveRecord you're used to
  • no excellent option for configs (web.configs really aren't that great at letting you manage differences between Dev, QA and Production IMO). Probably roll your own. I bet you can find a solid yaml parser (after all, IronRuby must have one by now)
  • Migrations -- I bet there are some "migrations for .NET" solutions out there, but I haven't used one. None has become famous yet, but I don't know if it would.
  • For "scaffolding", you really should look at Dynamic Data. I've heard great things about it (no 1st hand experience though)
  • Project templates: Visual Studio has some very good features here. On top of that, Resharper has some excellent features. With those 2, you can create your own templates. You might type four letters, and see that instantly blow up into a for-loop, or a whole class that derives from a base class you've specified, or a whole lot more. Whole solutions can be templated so that a new project starts out with boilerplate and is ready to go.
Charlie Flowers
+3  A: 

I think you want what Rob Conery did.

Take a look his blog post.

Update: To answer in details,

  1. ASP.Net MVC (MVC for presentation)
  2. ORM (Subsonic)
  3. Environment (Yes. It has environments like Development, Production)
  4. Migration (Yes. Subsonic Simple Repository can sync database along with you model)
  5. (not sure about that)
  6. You can use most of the code from that starter Site.

FYI, Rob Conery was one of ASP.NET MVC Team and now also working in Rails Core Team.

Soe Moe
+1  A: 

The closest thing that I've seen that has all of what you're asking for is S#harp Architecture. It really meets everything you said, from what I can tell.

That said, I think that as Soe Moe (+1 to you) pointed out, Rob's TekPub is closer in that it's got that lighter-weight 'feel' to it, it just doesn't have a project template yet (though that's something I tend to rectify when I get time).

All that said, I'd caution you about feature envy. One of the things I don't like about Rails is how locked in you are to their mode of thinking, which frankly isn't applicable to all projects. So, just food for thought.