views:

249

answers:

1

I am tasked to build a web 2.0 style mashup application which consumes a lot of 3rd party webservices like youtube and twitter. There are also lots custom features which are going to be built using ASP.NET 3.5 and SQL Server 2008. Now I am looking for the right ORM for my needs. From a performance and ease of use standpoint can anyone suggest me the right ORM for this kind of web application?

A: 

From a perform perspective, only a very poorly crafted ORM will be your bottleneck. The database or network traffic to and from the database are much more likely to be a performance bottleneck. It's not really necessary to weigh performance when choosing an ORM. While it is straight-forward to create simplistic ORM performance comparisons, it's much more difficult to create real world ORM performance comparisons, but you are welcome to try.

ORMs also aren't built for "ease of use". They are built to hide the object/relational mismatch. The major ORMs all do an adequate job of hiding the object/relational mismatch. Ease of use is fairly standard across the board, except where feature sets differ.

The biggest difference between the major ORMs is feature set. Some have very few features while others have a lot of features. Cost can also be a differentiator, although there are plenty of "free" alternatives that are decent.

For .NET 3.5, NHibernate is clearly the best option in the large majority of scenarios. LinqToSql is feature poor, and Entity Framework 1.0 / 3.5 has been widely panned for making some very poor design tradeoffs while rushing the product to market. There are other adequate .NET ORMs as well, but again, they don't compete effectively with NHibernate in the majority of scenarios.

A lot more opinions about .NET ORMs can be found linked from this question:

http://stackoverflow.com/questions/1377236/nhibernate-entity-framework-active-records-or-linq2sql

Michael Maddox