The first edition of Programming Visual Basic .NET has been one of the most popular .NET books since its release in April 2002. Many readers have reviewed it on Amazon. com, citing it as one of the best .NET Framework books they’ve encountered. It is often the only Visual Basic book in Amazon’s list of top sellers in the Computer and Internet category. Being on that list for 18 months is in itself quite remarkable, considering that books of this type typically become obsolete in a couple of months.
Which leads us to this question: why write a completely revised second edition if readers seem so satisfied with the original book? After all, I could have just uploaded some new material on my www.vb2themax.com Web site, as I’ve done for minor fixes and typo reports.
As a matter of fact, when Microsoft released Visual Studio .NET 2003 and version 1.1 of the .NET Framework in spring 2003, I thought that a new edition of the book was unnecessary and that making some notes available online would suffice. Like many developers, I initially perceived the new versions as minor upgrades from previous ones, but then I realized that many applications written for version 1.0 behave differently (or don’t work at all) under the new version. The truth is many areas of the .NET Framework changed remarkably in version 1.1—most notably ASP.NET and Web services— and both Visual Studio .NET and Visual Basic .NET themselves have evolved from its initial 2002 release. Not being aware of the new features means missing an opportunity to make your code run faster and more reliably, plus it means wasting a lot of time and energy tweaking the code to have it run under .NET Framework version 1.1.
These kinds of problems became more critical with the release of Windows Server 2003, which improves on Windows 2000 Server in areas such as Component Services, Internet Information Services, and security. If you write enterprise-level applications, you should absolutely take advantage of the improved robustness, scalability, and security in Windows Server 2003. Alas, some of the information provided in the first edition of the book—especially in the chapters on ASP.NET—is outdated and of little use under the newest version of the operating system. (This holds true for most books based on version 1.0 of the .NET Framework.)
The last—and decisive—factor that convinced me to write a completely new book was the opportunity to cover a few important topics that I left out in the first edition—namely, PInvoke, COM Interop, COM+, remoting, code access security, and Windows Forms applications over HTTP—and to illustrate techniques that I learned after the first edition was published. A new edition also allows me to improve chapters with new descriptions and more focused code examples.