"Knowing how things work is the basis for appreciation, and is thus a source of civilized delight." -- William Safire
Recently I read on the program for the Orlando .NET Code Camp on March 25 that my friend and fellow MVP extraordinaire, Ambrose Little, would be one of the presenters. I noticed that Ambrose has been busy authoring, with one new Wrox Book out and another on the way, so I popped him an email and he had the publisher send me a review copy of Professional ADO.NET 2. I'm happy to report that I'm not disappointed.
Developers who are familiar with the Wrox saga know that a couple of years ago they "fell apart", with Apress picking up many of the existing titles, giving them new covers, and Wiley picking up the rest of the package, including the Wrox name and web sites. Fortunately, the Wiley people have seen fit to keep the basic formula intact. The new "Wiley" Wrox books look, act and read very much like the originals. I know that some have criticized Wrox, but I fail to see the basis. I have a number of them, and their dog-eared status is a testament to their usefulness. I can forgive minor editorial and proofreading boo-boos if the book itself is good.
||Like many of the so-called "Professional XXX" Wrox tomes, one could call into question the appropriateness of the title; this book could be categorized as targeting the beginner to intermediate .NET programmer. However, it doesn't leave much out, covering all the major areas. Some prior knowledge of .NET, ADO.NET and SQL Server is necessary. However, for those who are "C# Challenged", fear not -- every line of example code in the book is in VB.NET. I myself wouldn't write a line of it without a gun to my head, although having used it for years. I certainly have no issue reading examples in it. What I'd really like to see is more VB.NET programmers turning on Option Strict and Option Explicit, and learning to use the Framework classes instead of the analogous "crutch" classes from the Microsoft.VisualBasic namespace.
As with most of the Wrox formula publications, we can dispense with the first couple of chapters as they more or less follow the formula of providing history and background. I prefer to dive into the "guts" of the book; if I want to read about the history of ADO and ADO.NET I can get it free on the web. To be fair, Chapter 2 devotes considerable measure to covering Database design and normalization.
Chapter Three is where we start getting into the nitty gritty of ADO.NET 2.0: it explains the Generic Factory Model and the Provider Model, and it covers very nicely issues about which you should choose and when, as well as writing helper classes. It covers Connection Strings, the ConnectionStringBuilder class, and managing exceptions. It also covers a lot more including some of the new ADO.NET 2.0 features such as the DataTableReader and binary serialization. In short, Chapter Three puts you on first base and probably a good part of the way to second base.
Chapter Four covers standard Data Types, and Chapter Five covers XML integration. Chapter Six handles Transactions.
Chapter Seven covers DataBinding, both for ASP.NET and Winforms, and introduces some of the new advanced concepts of Caching. DataSource controls are covered, including the new ObjectDataSource class, which many developers have some difficulty with.
In Chapter Eight, you will build a Custom Data Provider for ADS. In Chapter Nine, the authors cover the T-SQL language and ADO.NET 2.0 / Sql Server 2005 enhancements. There is a lot of new power in SQL Server 2005, and this is a good way to find out all about it.
Chapter 10 covers Client Application programming with SQL Server, and Chapter 11 covers Server-Side programming including triggers, functions and SMO (SQL Server Managment Objects), which replaces SQL DMO. The important SQL CLR architecture is covered, and you are shown how to create a WebService in your database.
Chapter 12 covers Notification Services and the Subscriber Models, and Chapter 13 covers the Service Broker, one of the most powerful yet least understood features of SQL Server 2005. Finally, Chapter 14 covers the new, enhanced Full-Text Search.
In Chapter 15 of Professional ADO.NET 2.0 you will learn about Reporting, and in the subsequent chapters the authors cover open-source databases such as MySql, MaxDb, Firebird, Ingres, PostGreSQL, BerkeleyDB, and my personal favorite, SQLite. Chapter 17 is devoted entirely to working with Oracle.
All in all, I have to say this is a book that provides pretty good overall coverage. Including the index and appendices, it runs just short of 600 pages. With seven authors, you are getting information that one or two authors would be really stretched to put together.
I would recommend this book to any developer who is tackling Data Access in the .NET 2.0 platform, and would like to get there "faster".
The sticker price is $49.99 and of course, it can be had at various discounts from online booksellers. Ambrose, kudos to you, Wally McClure and the rest of the authors.