As I sit here in my hotel room reading and listening to "Sweet Home Alabama", I find myself dreaming of better times. Naturally of attending last month's Architect SIG meeting, and during the end when the passing out of the SWAG books started, which Jeff Barnes generously distributed. Yeah, I grabbed the Windows Server 2008 book as many looked at me we great astonishment, however later that night as I laid staring, looking up and down on the cover of my new Windows Server 2008 book, I was wishing I would have picked the LINQ book. Just like a pretty girl which always caught my eye, but I did not have the nerve to approach, I was slowly noticing that LINQ was having that same affect on me.
Well, I still do not have a LINQ book, and yeah my Windows Server 2008 book still rests in my office, on the top bunk of my doghouse bed, however I have started doing my own research and coming to the conclusion that LINQ is something worth wild learning more about. While I already have my own framework for developing solutions, I feel that using LINQ will simplify some of the common everyday tasks. For instance, I generate my own entity objects from a database and LINQ works well with the new Entity Framework which does pretty much the same. I also generate my basic Create, Read, Update and Delete stored procedures, but LINQ provides a more flexible way of handling these common tasks. While profiling SQL Server and seeing the SQL that is generated, I feel more comfortable about how LINQ handles the queries using SQL parameters. After speaking on SQL Injection, this approach is more favored. Now all of the extra SPs that handle my basic CRUD are not needed, cleaning up the database and keeps my dependencies on my trusty DBA to a minimum. My ADO.Net plumbing code is now reduced while providing better flexibility while handing data. Most importantly, most of the additional code needed for building and returning complex entity objects is somewhat automated within LINQ, by specifying the exact data that needs to be selected.
In a nutshell, I have concluded that LINQ will allow me to focus more on business logic while at the same time handing data access. I am by no means saying that I have a less dependency of ADO.Net, however everything has its place and checking out LINQ is well worth the exploration.