Review: Professional LINQ
- Title: Professional LINQ
- Author: Scott Klein
- Level: Intermediate to advanced
- Publisher: WROX
- Pages: 379
- Rating: 4 of 5
With .NET framework 3.5 the way you access data is set to change in a big
way. Thanks to the Language Integrated Query (LINQ) that provides a unified ways
to handle data coming from in-memory collections, RDBMS and XML files. LINQ is a
must have skill set for you in your next project that targets .NET framework 3.5
and to that end Professional LINQ from WROX can be your great companion.
The book consists of fifteen chapters distributed in three parts. The first
part covers LINQ basics along with LINQ to Objects. The second and third part
cover LINQ to XML and LINQ to SQL respectively.
Chapter 1 and 2 are basically introductory chapter giving you background
about project LINQ and LINQ related features of .NET framework. Query
expressions, implicitly typed variables (var), anonymous types, extension
methods and lambda expressions are discussed in Chapter 2.
Chapter 3 and 4 cover the real LINQ stuff - queries and operators. The topics
discussed include query concepts, query creation and execution, query and method
syntax, projection operators, joining, sorting, grouping and filtering data.
Together these chapter give a sound background of LINQ programming. It would
have been great if the examples are illustrated in C# alone or VB alone or in
both languages. Frequently switching the languages breaks the continuity of the
reader and beginners may get slightly confused.
Chapter 5 to 9 cover all you need to know about LINQ to XML. The new classes
such as XElelemnt, XAttribute and XDocument are introduced along with common
tasks such as navigating XML and modifying XML. Role of LINQ in transformation
is also discussed. Chapter 7 also discusses SQL to XML and XML to SQL
operations. Advanced XML operations such as functional construction, annotations
and events are the subject of Chapter 8. Chapter 9 discusses VB.NET specific
features of LINQ to XML.
Chapter 10 to 15 cover LINQ to SQL features. The new attribute based mapping
of classes to database tables is discussed in Chapter 10. Executing CRUD
operations is discussed in Chapter 11. Readers should note that some examples
seem to use pre-release version of LINQ and you will need to migrate those on
the final version of LINQ. Some advanced query concepts such as compiled queries
and deferred execution are the subject matter of Chapter 12. Chapter 13 throws
more light on entity classes. DataSet is one of the frequently used ADO.NET
class. Knowing how to integrate it with LINQ would be certainly worth. Chapter
14 explains precisely that. Finally Chapter 15 discusses some advanced topics
such as O/R designer of Visual Studio and N-tier architecture.
The three appendices give some bonus pieces of information about ADO.NET
entity framework and LINQ to XSD.
To summarize, if you are looking for a single book that covers the entire
spectrum of LINQ technologies then this book is for you. It can help you master
this essential skill set by providing ample examples and theory.