views:

744

answers:

11

With .Net 3.5 SP1 adding Entity Data Model as an option for data access we are now faced with several out of the box options; EDM, LINQ-to-SQL, Typed Datasets, pure ADO.Net.

We also have several open source options; Subsonic, NHibernate, LLBLGen.

So the question for the poll:

What is your single favorite Data Access Methodology for ASP.Net?

(Remember if your favorite is already listed just vote it up.)

+3  A: 

I vote for LLBLGen

Bloodhound
+1  A: 

I like LLBLGen but consider Active Record (NHibernate)

Rick Kierner
+2  A: 

NHibernate

Chris Canal
+1  A: 

nHibernate for applications with a dedicated database and Ibatis.Net for a central database with more applications depending on it.

Both enable real persistence ignorance in domain objects. nHibernate is less flexible with respect to the database but that doesn't matter if you can design your database for nHibernate use, this will probably be less of an issue with v2.0. Ibatis can handle any database you throw at it, even stored proc's

Mendelt
+4  A: 

POCO + Stored Procedures.

(POCO = Plain Old CLR Objects)

Eric Z Beard
+3  A: 

subsonic is my favorite for starting projects

DevelopingChris
+1  A: 

LINQ-to-SQL

jinsungy
+2  A: 

I personally prefer Stored Procedures on the DB side, and DataReaders etc on the .NET side. Typically using the Microsoft APplication Blocks.

Mitchel Sellers
Why not create your own DAL?
Terry
The Microsoft SqlHelper does so much for you, is tried and true, I don't see a need to re-write that portion of it.
Mitchel Sellers
+1  A: 

Either old school with StoredProcs, SqlDataReaders and DataSet or Subsonic.

Linq seems pretty promising for now, but have to play more with it to see if its better than Subsonic.

ceetheman
+1  A: 

Personally, I currently use POCO + Stored Procs. But I've just had a look at Subsonic and it looks great. It would have been useful in a previous role where we used a DNA architecture.

Not sure about my current role; it's swings and roundabouts.

CJM
+1  A: 

I used SubSonic extensively in several decent sized complex projects; it performed well (with some minor exceptions such as a Memory Leak in Loading collections which we fixed). What i didn't like about SubSonic was the version upgrade nightmare. We went through many of these and its was a huge issue, different versions had backward compatibility issues and the code generation tools (SubCommander.exe) had to match the appropriate version or you would be in trouble.

We had 5 developers working on the same project which brought many of these issues to light. Recently I've moved on to Linq-to-Sql and have been extremely happy with it. We gave the ADO.NET Entity Framework a try but it's total lack of support for stored procedures, lazy loading, and the fact that the designer refused to show up after you had used it for the first time proved that the ADO.NET Entity Framework is severely flawed, we ended up signing the Alt.NET "vote of no confidence".

So at this point in time Linq-to-Sql is by far the winner in the competition but we shall see how it performs in the long-run

mknopf