views:

58

answers:

1

What are the major differences between Data Access Application Block, NHibernate, ADO.NET Entity Framework and LINQ to SQL with respect to performance, business logic, scalability and flexibility?

+3  A: 

What you are asking is a pretty large question. Here's a similar question and my answer to that question can give you a lot of good reading to do on the various .NET ORMs:

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

You won't notice a ton of difference in performance between the various options in the large majority of scenarios. All of the options are built on ADO.NET and allow you do use raw ADO.NET to get the best possible performance.

All solutions are flexible to the extent you are willing to write your own code. NHibernate provides the most features out of the box, by far.

Scalability is difficult to answer, there are ways to achieve scale with all of the options, but some make it easier than others. Again, NHibernate is the most feature rich from a scalability standpoint out of the box, providing features like both a level 1 and level 2 cache.

For business logic, the three ORMs will work approximately the same, but the Data Access Application Block is not an ORM and doesn't provide any of the features of an ORM, so you are completely on your own mapping your relational table data into objects from Data Readers or DataSets.

Michael Maddox