Visual Studio and the .NET technologies are evolving at a rapid pace. Relational databases are a critical component of nearly every major software application, making it necessary to map from the object model of the application to the data model of the database. The impedance mismatch between the object model and the data model cannot reasonably be handled without object relational mapping (ORM) tools. Language Integrated Query (LINQ)--an extension of .NET 3.5--and the ADO.NET entity framework--new with Visual Studio 8 SP1--are .NET technologies that provide such tools and, moreover, are nicely integrated in Visual Studio 2008 and supported by a number of wizards.
Structured in five main parts, the books starts with an excellent introduction, in two chapters, to ORM concepts and ORM patterns and design. These chapters are a must-read, even if you read no further.
The second part of the book is a solid introduction, in two chapters, to using LINQ to SQL. It is not an introduction to LINQ and its related syntax, but rather a developer’s introduction to the use of the tools provided in Visual Studio. It emphasizes an understanding of the code, the various files produced, and the models implemented.
In the three chapters of Part 3, the entity framework is reexamined, emphasizing the data model; the use of the Visual Studio 2008 tools added in SP1, such as the entity framework designer; and an understanding of the files these tools produce.
Part 4, which spans three chapters, contains a substantial case study for the First Bank of Pluto, starting with the requirements and use cases.
The last part of the book focuses on the First Bank of Pluto case study, examining the N-tier architecture, reexamining LINQ to SQL and the entity framework, and discussing some alternate tools.
Mehta’s opinions on numerous relevant issues, which are always insightful and based on experience, are a nice feature of the book. It is refreshing for a developer to describe the reasoning behind his design decisions and the development of the models used, to provide appropriate samples of code and files produced, and also to make the code available for download.
This book is especially suitable for C# .NET developers who develop software that uses relational databases. It is a practitioner’s book, not a textbook, and assumes a considerable knowledge of C# and .NET development. This is an excellent book that will be greatly appreciated by this audience. I most highly recommended it.