I’m writing a .NET application and the thought of implementing a data layer from scratch is icky to me. (By data layer I’m referring to the code that talks to the database, not the layer which abstracts the database access into domain objects [sometimes called the data access layer and used interchangeably with data layer].)
I’d like to find an existing generic data layer implementation which provides standard crud functionality, error handling, connection management – the works. I’ll be talking to SQL Server only.
It doesn’t matter to me if the library is in C# or VB.NET and I don’t care if it’s LINQ or ADO.NET. As long as it works.
** I want to emphasize that I’m not looking for data access technologies or mechanisms (e.g. LINQ, ORM tools, etc.) but rather existing libraries.)
If you are talking to only SQL Server the Linq to SQL is your best option. It is pretty easy to get up and running. You will get both the Data Layer and the Abstraction. All you have to do is provide a connection string to Linq to SQL and it will handle the rest.
If you are going to connect to other database than SQL you would want to with NHibernate.
NHibernate takes a little more work than Linq to SQL to get up and running. MS provided in Visual Studio a nice tool that can get you reading from a SQL database pretty quick.