It's not surprising that the world is being flooded with "VB.ME, too!" books sporting syntax comparisons and tables listing bygone Visual Basic reserved words. Wouldn't it be nice, though, if someone would write a book that breaks out of the mold and explains the different thinking that's involved in creating applications with VB.NET, instead of just concentrating on the code?
Dan Appleman has done just that. Moving to VB.NET: Strategies, Concepts, and Code (Dan Appleman, APress, 2001, $39.95, 560 pages) is not your typical programming book. But then, neither is Appleman your typical technical author. The books in his "Visual Basic Programmer's Guide to the Win32 API" series are considered among the best Windows development books ever written. I own and zealously guard a copy of the VB4 edition of this series, myself. I now guard my copy of Moving to VB.NET even more enthusiastically.
The whole is greater than the sum of the code
Moving to VB.NET represents a departure from the traditional "the code is the thing" model that seems to dominate the technical-book scene. In fact, in the early pages of this volume, Appleman expresses his disdain for technical books that amount to no more than rehashed documentation. He also voices hope that at some point, VB programmers will learn to use primary sources like MSDN and language documentation instead of depending on others to filter it for them. True to his feelings, Appleman shows you very little code until you reach the final third of the book. In his opinion, you have to grasp the concepts and understand good .NET development strategies before you can appreciate the code.
Choosing the right strategy
You can't successfully implement any new technology in a vacuum, so before evaluating VB.NET, you must understand the circumstances that led to its development. That’s the premise for the first three chapters, which make for entertaining reading. Appleman candidly shares his thoughts on Microsoft's marketing and politics, the prospects of .NET appearing on other platforms, and the colossal failure of the grand vision that was COM.
In Chapter 3, "Adoption Strategies," the author offers well-considered advice on porting VB6 code, educating yourself on the new platform, and estimating how much the training will cost you. He even touches on the "C# vs. VB.NET" question. He also covers the one area that is practically guaranteed to be dramatically different about developing for .NET: application deployment.
Grasping the new concepts
According to the author, in the process of giving VB developers many of the things they’ve been asking for, VB.NET has also removed a lot of the insulation that VB programmers have historically enjoyed. Most VB programmers have never dealt with issues such as threading and inheritance, and consequently, they have no idea about the proper use, not to mention the consequences of misuse, of these new concepts. He adds that Microsoft's marketing hasn't helped, selling us all on how .NET is the cure to all our problems, making us all champ at the bit to run helter-skelter into .NET land.
If you aren't tempted to agree with those statements beforehand, a perusal of the book’s Concepts section might convince you. Here, Appleman takes us on a guided tour of inheritance and free threading, as well as the new .NET memory model, and examines the implications of these changes on the way we create applications. He teaches mostly by bad example, showing us how the misguided or ill-considered use of our new powers can only result in great evil, or at least seriously delayed project schedules.
If you read only one portion of this book, make it the discussion of multithreaded application development that appears in Chapter 7. Here, Appleman presents what appears to be a very well-designed free-threaded application and then proceeds to break it. He then shows you how to fix it, resolving the design problems one at a time. Then he breaks it again and again and once again in an effort to help you develop a healthy respect for free threading before you begin to use it.
Just give me the code!
The third section of the book, “Code,” offers—not surprisingly—lots of code. Chapters 8 through 10 set forth the obligatory discussion of new features in VB.NET: data types, syntax, objects, and other standard stuff. You'll likely learn something new from these chapters even if you're a veteran of fifty "Here's VB.NET" books.
Based on the pattern established by the title, you might think that "Code" would represent the end of the book. Not quite. There's still section 4, "The Wonderful World of .NET," which introduces the reader to advanced topics. Appleman takes a look at the oft-renamed new forms package, new Internet application capabilities, versioning, and .NET's code security features.
A transition to VB.NET can't occur overnight. You'll likely find yourself using COM components you built for your VB6 applications in a new .NET application at some point. Consequently, you're bound to be grateful for the extra attention the author gives to .NET-to-COM interoperability in Chapter 15. Like the multithreading chapter I mentioned earlier, the COM Interop chapter is highly recommended reading.
Another home run
If I ruled the world, fried pork chops would be health food, and Moving to VB.NET would be the official VB.NET owner's manual. (I think I'd give it a shorter title, too.) No other book I've seen does as thorough a job of preparing the reader for the VB.NET transition. Dan Appleman has a knack for explaining obscure ideas in clear, understandable language, and his subtle humor makes for a very enjoyable read throughout. At times, he seems opinionated and preachy, but he always has compelling arguments to back up those opinions and admonitions. Moving to VB.NET: Strategies, Concepts, and Code deserves a home on your bookshelf.
What is your best .NET resource?
We would like to know what you consider to be your best .NET resource. Send us an e-mail with your suggested book, CD, or other resource.