Why Upgrading Is Necessary
There were two options to consider when designing Visual Basic .NET — retrofit the existing code base to run on top of the .NET Framework, or build from the ground up, taking full advantage of the platform. To deliver the features most requested by customers (for example, inheritance, threading), to provide full and unconstrained access to the platform, and to ensure that Visual Basic moves forward into the next generation of Web applications, the right decision was to build from the ground up on the new platform.
For example, many of the new features found in Windows Forms (the new forms package) could have been added to the existing code base as new controls or more properties. However, this would have been at the cost of all the other great features inherent to Windows Application Objects, such as security and visual inheritance.
One of the major goals for Visual Basic was to ensure that code could fully interoperate with code written in other languages, such as C# or C++, and enable the Visual Basic developer to harness the power of the .NET Framework simply, without resorting to the programming workarounds traditionally required to make Windows APIs work. Visual Basic now has the same variable types, arrays, user-defined types, classes, and interfaces as Visual C++ and any other language that targets the common language runtime; however, some features such as fixed-length strings had to be removed from the language.
Visual Basic is now a true object-oriented language; some unintuitive and inconsistent features like GoSub/Return and DefInt have been removed from the language.
The result is a re-energized Visual Basic, which will continue to be the most productive tool for creating Windows-based applications and is now positioned to be the best tool for creating the next-generation Web sites. The tradeoff is that Visual Basic 6.0 applications must be upgraded to conform to the new language and forms features, breaking compatibility with earlier versions.