When I attended the Microsoft authors' summit in November of 2000, key Microsoft people kept referring to Visual Basic .NET as a "first-class" language. This acknowledgment by Microsoft that there was room for improvement in the old VB was a big step. Visual Basic .NET is a first-class language.
Visual Basic .NET now includes things that have been available to C++, Java, and Delphi programmers for years . Those of us who have programmed in these other languages, yet loved VB, patiently awaited the changes that would enable us to get out of "DLL Hell" and would remove limitations that definitely exist in VB6. With the arrival of Visual Basic .NET, those limitations are gone. My job is to show you what those limitations were while showing you what is available in Visual Basic .NET. For new capabilities, I might or might not explicitly say, "You couldn't do that in VB6," but VB6 programmers will know.
Visual Basic .NET is a first-class language because it explicitly supports and contains things that are indicative of a first-class language, including inheritance, virtual methods, shared methods, event handling, structured exception handling, multithreading, and encapsulation at the namespace level. Inheritance in Visual Basic .NET means that you inherit methods and properties rather than just an interface. Event handling is implemented through delegates, special classes that allow you to write dynamic event handlers as well as being used to support forms. Shared methodssometimes called class methods or static methods support invoking behaviors at the metaclass level. Support also exists for multithreading, namespaces, and parameterized constructors. You will find that applications written in Visual Basic .NET are limited far more by your imagination than by the language itself and the .NET Framework.
In this book we will discover many things together. If you have only programmed in VB6, I suspect the new VB will seem astounding to you. If you have programmed in Java, C++, or Delphi, and love Visual Basic, you will sigh with recognition, and agree that finally VB is no longer the disadvantaged cousin that some other language programmers consider it to be.
On the surface, Visual Basic .NET is almost as easy to get started with as VB6. If you only scratch the surface you might be disappointed, and your code also will be disappointing. As with many things, what lies beneath the surface makes all of the difference in the world.