Having travelled the Classic VB route myself, even though I have been using VB.NET for some time, I still found much that was useful, new and interesting in this book. I am sure that its intended target audience of VB6 developers who have not yet left their comfort zone and defected to .NET will find it of tremendous value.
Of the two VB205 upgrader books that I have seen by this author, this one is in my opinion by far the better. (The other book is aimed at VB.NET developers who just needed a heads up on new VB2005 features and this book for newcomers is therefore a more comprehensive offering.)
There is enough coverage of new topics to enable upgraders to get to grips with unfamiliar techniques and the author is careful to highlight several Gotchas that would otherwise trip up the unwary VB6 developer. His approach is even-handed and honest - no claims being made here that all change is good for its own sake. Where upgraders may have problems or be disappointed with changes, these issues are not ducked. That said, overall this book takes a very positive and supportive approach to the upgrade journey.
With the exception of my comment below, all the code samples I tried worked and were free of typos (a pet hate of mine - it's hard enough to learn this stuff, without having to play Hercule Poirot along the way). So full marks to the author and publishers on that score.
The proof of the code sample is in the using, as they say (or something like that!). So it was gratifying to find that I was able to use the sample on printing with word wrap in Chapter 9 less than 24 hours after I had first read it. A question on one of the VBCity Forums was easily and comprehensively answered thanks to the availability of that particular sample. I am sure many of the others will prove useful in coming months too.
I did try out some of the downloadable code sample projects. All those I tried did perform correctly, although in Chapter 5's sample set the same project has been included in two different solutions. So effectively one demo is missing there.
There doesn't appear to be an Errata link on either the publisher's site or the author's. However an email to Matthew MacDonald (as per his invitation in the introductory sections) produced a speedy and positive response, and I understand that this is in process of being implemented now.
I did think that the "File Information" example download in Chapter 9 might be in danger of confusing the newcomer. Unless you follow very carefully you may expect to see an on-screen change of data; and when it doesn't change you may be confused. The code isn't incorrect as such ; it's just that the code changes one particular Property (LastWriteTime) but displays a different one (CreationTime) in the TextBox used to display output. It won't detain experienced programmers for long, but might give a relative newbie a passing WTF moment.
Those very minor moans out of the way, there is no question that what we have here is a well-written book in the clear, plain English, understandable style of an experienced author who knows his subject thoroughly. The subject matter is relevant to the target audience and is as comprehensive as space allows.
Plenty of useful and relevant Note and Tip sidebars are scattered throughout each chapter. The author keeps his target audience in mind at all times. The walkthroughs are detailed and contain helpful information on pitfalls and features that Classic VB developers will find useful.
If you are ready to make the transition from Classic VB to VB2005, this book will be of great assistance to you in that process. As you will often see me say in these DevCity book reviews, this may not be the only book you need before your bookshelf is completely stocked with everything you need*. However, if you are in the target readership, this useful guide will take you a long way down the road.
* Although by the time you have, Vista and Orcas will probably have arrived and you'll be back to your favourite bookstore to restart the cycle!