Welcome!

Linux Authors: Gilad Parann-Nissany, RealWire News Distribution, Colin Walker, Lori MacVittie, Unitiv Blog

Related Topics: .NET

.NET: Article

Book Review: LINQ in Action

Explains what LINQ does and why

This is a great book on LINQ from some people who not only know LINQ, but also understand LINQ. Many current LINQ books are based on preview versions of LINQ, but authors Fabrice Marquerie, Steve Eichert, and Jim Wooley thought it worth waiting for the final released version before publishing their book. There were some significant changes in the syntax of a few significant commands, so where code in some other books may need minor changes to run, the code in this book is all ready to go.

Part I: Introduction to LINQ
Chapter 1 discusses what it is, what it does, and why we need it. It includes the goals and motivations of LINQ, and the fact that Microsoft has been working on LINQ for several years. This brings us to chapter 2 - VB.NET and C# language enhancements to support LINQ. Starting with C# 2.0, Microsoft has added quite a few enhancements to the .NET languages, especially C# and VB.NET. Some of these enhancements were like generics that were left out of version 1.0 only because of time-to-market constraints, and were needed on their own. Others, like the var type in C# 3.0, left people going "Huh?!" It wasn't a true var type as in VB or Java that could hold different types, because its type is fixed by the compiler during compilation, and it made code harder to read and maintain because the reader would have stop and try to figure out what type the var really was. It turns out that there are cases in LINQ where the compiler needs to infer the variable type from the data source, and var comes to the rescue.

Chapter 2 covers all of the new LINQ-related language features in C# 2.0 and C# 3.0 (VB.NET 8 and VB.NET 9), and explains why they are needed for LINQ and how they are used by LINQ code; note that this book only covers new features related to LINQ (implicitly typed local variables, object and collection initializes, anonymous types, extension methods, anonymous methods, and lambda expressions), and not the full set of features introduced in C# and VB.NET since version 1.1.

Chapter 3 continues where chapter 2 left off by describing how LINQ expands .NET, including sequences and iterators, deferred query execution, query operators and expressions, and expression trees. Chapter 3 also lists the C# and VB.NET syntax used to access the standard query operators.

More Stories By Dennis Hayes

Dennis Hayes is a programmer at Georgia Tech in Atlanta Georgia where he writes software for the Adult Cognition Lab in the Psychology Department. He has been involved with the Mono project for over six years, and has been writing the Monkey Business column for over five years.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.