Joseph C. Rattz, Jr. and Dennis Hayes
Apress - The Expert's Voice in .NET
This is a great book ... for the right reader. For example, I thoroughly enjoyed it and learned a lot. For the wrong reader, it could be a real frustration.
Let me explain.
The Word 'Pro' Means Something
First, a title like, "What's new in VB.NET 2008!" might have been more accurate. As it turns out, nearly everything that is new ties into LINQ in some way. As the authors state, "Virtually every significant enhancement to the VB.NET language in version 2008 was made specifically to support LINQ." So the book ends up explaining the new features of Framework 3.0 and then explains how these new features are used in LINQ. It certainly is about LINQ, but it feels like it's about the latest features in VB.NET.
Second, it's for people who already know their way around the first two versions of VB.NET. The authors don't waste any time explaining stuff that's obvious to them. If it's not obvious to you too, you could be in for some serious puzzlement. On page 13, the authors write, "While working with LINQ to write this book, I often found myself confused, befuddled, and stuck." But alas, the authors followed that with pages of explanations and code that they admit right up front that you won't understand. They also say they should have put it at the back of the book. They should have listened to themselves.
For those who do feel quite comfortable with (at least) VB.NET 2005, this book takes you to the next level in great style. Chapter 2, where the language enhancements to VB.NET necessary to support LINQ are explained, is worth the price of the book by itself. For example, the new "query expression syntax" that VB.NET 2008 is explained and compared with the VB.NET "dot notation" that you probably know already. The use of XML literals and XML axis properties is explained. This is the explanation that Microsoft should have on their web page (but they don't).
All of the major 'flavors' of LINQ are explained:
- LINQ to Objects
- LINQ to XML
- LINQ to DataSet
- LINQ to SQL
If you want to know the syntax, methods, arguments, properties, or keywords, you've got MSDN. This book answers a different question: "What good is it?" And that's a question that MSDN is usually pretty terrible at answering, if it's there at all.
For example, just what is a "predicate" and why do we need Lambda expressions? This book explains it. This example tells you something else, too. If you've never seen Lamda expressions or predicates before in your life, stepping up to understand the question can be a struggle. The book tries, but it doesn't do a great job for complete beginners. The authors understand their material very well, but they don't always understand the questions that complete beginners are likely to have.
The ideal audience is the programmer who has taken a swing at LINQ already and needs something to get the tough questions straight.