Essential LINQ,
by Charlie Calvert, Dinesh Klkarni
In Essential LINQ, there 18 chapters which fall into roughly the following four topics:
- Technical overview of LINQ, its history, it parts, and its usage (Chapters 1 – 7)
- LINQ to SQL (Chapters 8 – 11) and also a LINQ to Entities overview (Chapter 12)
- LINQ to XML (Chapters 13 – 15)
- Other LINQ providers and practices (Chapters 16 – 18)
LINQ Overview
The first 7 chapters really build a nice foundation of knowledge about LINQ, how it works and how to use it. Some of this content was review for me since I’d read Jon Skeet’s C# in Depth: What you need to master C# 2 and 3
and Bill Wagner’s More Effective C#: 50 Specific Ways to Improve Your C#.
However, what I really like about this book, is how Charlie and Dinesh dig deep into query expressions and operators. The first 7 chapters are all you will need to start finding places in your own code to use LINQ and to get enough understanding of how to start designing your logic with LINQ in mind.
LINQ to SQL
Before reading this book, I really hadn’t done much with LINQ to SQL (or LINQ to Entities). Charlie and Dinesh give a good overview of how it works and how to use it, as well as some practical things like relationships, stored procedures and loading options (like deferred or eager). Since the topic of LINQ to SQL and LINQ to Entities is a very large topic, the coverage of this topic is not very deep.
LINQ to XML
The coverage of LINQ to XML is good. They cover the basics of the XObject hierarchy – creating xml hierarchies, querying, editing and deleting nodes … if you are use to using the XmlDocument and XmlDom to do things with XML – you will really like these chapters. They also cover namespaces and schemas, something that you almost always end up needing to use, but usually gets glossed over.
Practices and other LINQ providers
In the last few chapters they spend some time (~20 pages) on recommendations and development practices in regards to using LINQ. And the book ends introducing some other LINQ providers that are either in the works or on CodePlex. Some of the other LINQ providers mentioned are: Parallel LINQ (PLINQ), LINQ to Flicker and LINQ to Sharepoint. The description and details of these additional providers really get you thinking about writing your own … which they also provide some advice on (as well as advice on when not to waste your time doing so).
Conclusion
Overall this is a great book for someone who knows a little about LINQ but hasn’t used it much. It will provide a nice practical reference for learning the foundation of LINQ and the practical ways to use it. If you haven’t used LINQ to SQL yet, it will provide a good introduction to it (however this is not going to be a good book for you if you want a LINQ to SQL or LINQ to Entities reference book). The LINQ to XML chapters of this book will also provide a great reference to look at when needed. I would recommend this book to any .Net developer who wants to start learning LINQ.
Related Links: