A short description why I choose for LINQ and not ADO.net or any other way to achieve the Data Access Layer. And how I implemented it.
A short description about LINQ
LINQ is a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities.
A short description about ADO.net
ADO.NET is a set of computer software components that can be used by programmers to access data and data services. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also be used to access data in non-relational sources. ADO.NET is sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but was changed so extensively that it can be considered an entirely new product.
Why I chose LINQ over ADO.net
– Faster development cycle
– New technology
With LINQ you have a faster development cycle as all your classes with attributes which represents your database are automatically generated. So if you update your database you won’t have to write all your classes again, LINQ will do this for you.
A new technology can be positive as well as negative, because it is new there may be not so many users using it yet, which can result in many bugs, which are out of your scope to fix. But a new technology also has positive effects as it often a new feature which will help.
Seeing LINQ is already pretty aged ~2years it is safe to assume that we can use this without experiencing too many bugs.
How I implemented LINQ
First of all I started reading various tutorials and this one was the best one I found: http://www.joe-stevens.com/2009/07/01/linq-to-sql-tutorial/
After reading it I basically did the same thing described there. After that I tested if it worked by making a simple web application with the DAL for Adventure Works Cycles(AWC). I did this by making an advances query with LINQ in C#.