Contents tagged with Linq
"LINQ in Action", published by Manning, is by far the best book available on Linq, both for those new to Linq and those already following it. The authors, Fabrice Marguerie, Steve Eichert, and Jim Wooley, have done a fabulous job of explaining Linq from the basics to the advanced. They even made it enjoyable to read, which makes it one of the best .Net books ever!
The authors' introductory chapter shows us right away that this book is different by presenting a perfect balance of the problem, the history, and the solution. Linq is a huge subject, but the authors are up to it, and they quickly whet the readers appetite for all of Linq -- Objects, Sql, and Xml. We then get a very thorough explanation of the new language enhancements that Linq relies on, but which the authors clearly show to have uses of their own. The chapter on Linq's building blocks, covering sequences, query operators, query expressions, and expression trees, was especially instructive to me, even though I've followed Linq from the alpha days, so again I'm sure this book has something for everyone. The book then covers Linq to Objects very thoroughly, including common scenarios and performance considerations that other books never consider.
The book then progresses to three chapters on Linq to Sql, which are of course my favorite since I'm really into O/R Mapping. The authors cover not just the basics to get beginners up to speed, but they also cover far more advanced content than I was expecting. For instance, they discuss not just the designer to setup mappings, but also the SqlMetal tool, and manual mappings using either attributes or xml. They also discuss the various concurrency options, the entity life cycle, inheritance, and more. The authors then give us three chapters on Linq to Xml, which again have something for everyone -- I especially like the chapter on common scenarios. The book finishes with a very thorough chapter on extending Linq, with a Linq to Amazon example, and a chapter that ties it all together with a real-world example that was gradually put together during the course of the entire book.
The authors also provide additional support and material online, including a bonus chapter on Linq to Datasets. There is also downloadable code in both C# and VB, although the book actually shows both languages in most cases, and always points out the differences when there are differences between them.
Disclaimer: I personally know Jim and have seen him present on Linq multiple times, Steve was a user of my WilsonORMapper, even contributing to it, and I've known Fabrice in the online world for quite some time too -- but I did very much enjoy and learn even more from their most excellent book on Linq.
The Atlanta Code Camp was today, so I finally got to give my LINQ and O/R Mapping talk that I've been preparing.
I tried to have minimal slides so that I could do a deep dive into real code, but I still went a little too long. The slides look great on my own PC, and in fact they're mostly some I stole straight from other LINQ presentions. But the overhead I was using made the text nearly unreadable for some reason, which made me take longer on the slides. It also made some of the standard VS color syntax unreadable, with the work-around being to select that code. I small the same problem with another speaker in the same room, so I guess it was the projector, but very frustrating.
In the end I still got to hopefully show a fair amount of LINQ to SQL, but I had really hoped to show more. I also made sure I gave a glimpse at SqlMetal and LINQ to Entities, but both of those were meant to be just glimpses. Finally, I briefly demoed my new "real" example application written with LINQ to SQL which is included in my download. This example shows off my own POCO objects with an external XML Mapping file, instead of the ugly code gen with attributes. Its also a "real" app that consumes the LINQ to SQL with WinForms grids, drop-down filtering, and create, update, and delete.
Note that it assumes the May 2006 CTP, but I'll update it to the next one when it comes out, hopefully next month. Its also nearly identical to my existing "real" example app downloads that I have for my own ORMapper and NHibernate.
Registration for Atlanta Code Camp 2007 on January 20th is now open. Space is limited and fills up fast, so do NOT delay registering -- it's free. Thanks to Jim Wooley for putting this together this year.
I'll be presenting a session titled "Linq and O/R Mapping" that will be lots of real code and very little powerpoint. If you've seen the standard Linq sessions already, or even if not, but you've been wanting more then this is for you. I'm not going to waste any time on Linq to Objects or Xml, although those are cool in their right -- I will focus purely on Linq to Sql, and to a lesser extend Linq to Entities or Datasets. Do you want to see a real application built using Linq to Sql? That's what I plan to do, and I'll do it several ways so you can experience the possibilities. For instance, should we use SqlMetal, the GUI Designer, or do our own thing with xml mappings instead of attributes? What if you want to include some relationships, use some stored procs, and even some inheritance? We shall cover all of those possibilities and more -- you will NOT be disappointed since this will not be just another slide deck or sample series based on what's already available. In fact, I would actually challenge you to find any other "real" sample that includes all of these with xml mappings, but you won't find it since it doesn't exist. I hope you get that I'm excited about this, as these technologies have definitely matured past my initial criticisms. And even if you can't make it for some reason, I'll post at least some version of my sample app after the event is over for all to see.