views:

429

answers:

1

For an upcoming project C# code needs to be written around a legacy Oracle database. It will be very data centric, because most of the code will deal with data manipulation -- there are almost no business rules. So I decided against a full blown ORM and opted for an Active Record approach.

I come across two options: SubSonic and Castle ActiveRecord

Who has experience with both implementations? What factors should I consider, when I choose between them? Which one is more stabler/faster/easier to work with/has a good supportive community?

I would be very glad to get some decision guidance.

+6  A: 

Both SubSonic and NHibernate (upon which Castle ActiveRecord is built) are full blown ORMs.

NHibernate is generally more mature and more feature rich than SubSonic. It has a larger user and contributor community.

Subsonic has a quicker ramp up time.

See also (please note that reading more won't necessarily make your decision easier, it may in fact do the opposite):

http://stackoverflow.com/questions/857678/learn-subsonic-before-nhibernate-or-vice-versa

http://stackoverflow.com/questions/1384/subsonic-vs-nhibernate

http://ayende.com/Blog/archive/2007/06/03/On-SubSonic-amp-NHibernate.aspx

http://subsonicproject.com/docs/Comparisons

Note, in regard to some of the names you will see: Ayende Rahien is a contributor to NHibernate and Rob Conery is a contributor to SubSonic.

NHibernate is the "safe" bet since it's likely to be able to handle whatever weirdness you send its way. As long as you do your design right, you can start with SubSonic and then replace it with NHibernate later if necessary (there will be some recoding cost involved).

The decision is ultimately situational and up to you.

Michael Maddox