The upcoming release of Microsoft’s new .NET platform and the changes it promises to bring to Visual Basic have left one question on the lips of VB programmers worldwide: How do I cope with these changes? Wrox Press’ VB.NET Programming with the Public Beta ($27.96, Billy Hollis and Rockford Lhotka, Wrox Press, 2001, 433 pages) attempts to guide you to the answer.

If there were a contest for the most pretentious-sounding job title, those held by authors Hollis and Lhotka would be surefire finalists. Hollis is a “Microsoft Subject Matter Expert,” while Lhotka is the “Primary Technology Evangelist” for consultancy firm Magenic Technologies. But all joking aside, the authors are eminently qualified and obviously know their stuff. Their book, aimed at “classic” Visual Basic developers looking to upgrade their skills to VB.NET, provides an excellent, reasonably in-depth reference covering the changes and new features of VB.NET.

VB.NET Programming with the Public Beta

The first three of the book’s 11 chapters provide an overview of the .NET Framework and Visual Studio.NET. The Common Language Runtime, Assemblies, and new features of the VS.NET IDE are all covered, with emphasis on changes that affect current VB developers. Also included here is a discussion of Microsoft’s current Component Object Model (COM) and Distributed iNternet Architecture (DNA) development models, the shortcomings of each, why a change is needed, and how the .NET model hopes to solve these problems. Chapter 3 closes with a look at the VB language and syntax changes brought about by .NET. While not entirely complete, this section does serve as a useful reference for those occasions when some detail slips your mind—like when you can’t quite remember the new syntax for defining a property method.

No more Ruby slippers? You’ll get used to it
VB.NET does away with the venerable Ruby forms engine that has engendered such a love/hate relationship with developers since VB’s early days, replacing it instead with the soon-to-be-renamed Windows Forms, or WinForms, if you prefer. Chapter 4 of VB.NET Programming with the Public Beta provides a broad introduction to this new GUI engine, once again concentrating on differences between it and its predecessor. The authors describe commonly used controls, MDI interfaces, Visual Inheritance, and system message handling techniques.

This dovetails nicely into Chapter 5, which covers the new object-oriented features of the language, including inheritance and the “deterministic finalization” bugaboo that promises to cause so much difficulty for developers. Chapter 6, “New Web Capabilities of Visual Basic.NET,” provides the reader with a guided tour of Web Forms, .NET’s replacement for ASP pages, server controls, and Web Services.

The book delves into more advanced topics in the next three chapters. Chapter 7 discusses data access using ADO.NET and extensively covers the new DataSet object, which replaces ADO’s Recordset object. In Chapter 8, we are introduced to .NET’s threading support, class libraries, the Microsoft Message Queue assembly, and application deployment. Chapter 9 covers interoperability with COM and its variants, along with the Platform Invocation Service, which provides access to the Windows API.

If the copious code examples in the book (which lacks a companion CD but does offer the code as a download from the publisher’s Web site) are not enough for you, proceed to Chapter 10. There, you’ll find a few more examples of VB.NET solutions, including a Web-based payment calculator application. Finally, the book closes with a chapter on preparing for your “classic” VB exodus, with suggested coding practices to make migration of existing applications easier.

The final word
VB.NET Programming with the Public Beta offers a great way to get your bearings with Visual Basic.NET, and it will have a place on my reference shelf for a long time to come. Code examples are plentiful, and the book covers new concepts with enough detail and emphasis on the similarities to and differences from “classic” VB syntax to make the leap to the new platform and language far less daunting.

If there is a problem with this title, it lies in the fact that it was written for the Beta 1 releases of Visual Studio.NET and the .NET Framework SDK. Both have recently been supplanted by a second public beta release, which will be replaced by the final release of the two packages. The question of how much of this book will remain relevant and correct—the section on array declarations in Chapter 3 is already inaccurate in light of changes made in .NET beta 2—won’t be answered until .NET makes its official debut later this year. Although Wrox has corrected versions of affected chapters available for download from their Web site, some may still find this potential for error troublesome. If so, you may want to pass on this book until with the Public Beta disappears from the title. However, if you’re like me and simply can’t wait to get your mitts on VB.NET and start experimenting with it, and you don’t mind a few inaccuracies here and there, this book is definitely worth a look.