What is VB .NET?
Visual Basic .NET (VB.NET) is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic (VB) which is implemented on the .NET Framework. Microsoft currently supplies two major implementations of Visual Basic: Microsoft Visual Studio, which is commercial software and Microsoft Visual Studio Express, which is free of charge.
There are four versions of Visual Basic .NET implemented by the Visual Basic Team:
- Visual Basic .NET (VB 7)
- Visual Basic .NET 2003 (VB 7.1)
- Visual Basic 2005 (VB 8.0)
- Visual Basic 2008 (VB 9.0)
- Visual Basic 2010 (VB 10.0)
Relation to older versions of Visual Basic (VB6 and previous).
Whether Visual Basic .NET should be considered as just another version of Visual Basic or a completely different language is a topic of debate. This is not obvious, as once the methods that have been moved around and that can be automatically converted are accounted for, the basic syntax of the language has not seen many “breaking” changes, just additions to support new features like structured exception handling and short-circuited expressions. Two important data type changes occurred with the move to VB.NET. Compared to VB6, the
Integer data type has been doubled in length from 16 bits to 32 bits, and the
Long data type has been doubled in length from 32 bits to 64 bits. This is true for all versions of VB.NET. A 16-bit integer in all versions of VB.NET is now known as a
Short. Similarly, the Windows Forms GUI editor is very similar in style and function to the Visual Basic form editor.
The version numbers used for the new Visual Basic (7, 7.1, 8, 9, …) clearly imply that it is viewed by Microsoft as still essentially the same product as the old Visual Basic.
The things that have changed significantly are the semantics—from those of an object-based programming language running on a deterministic, reference-counted engine based on COM to a fullyobject-oriented language backed by the .NET Framework, which consists of a combination of the Common Language Runtime (a virtual machine using generational garbage collection and a just-in-time compilation engine) and a far larger class library. The increased breadth of the latter is also a problem that VB developers have to deal with when coming to the language, although this is somewhat addressed by the My feature in Visual Studio 2005.
The changes have altered many underlying assumptions about the “right” thing to do with respect to performance and maintainability. Some functions and libraries no longer exist; others are available, but not as efficient as the “native” .NET alternatives. Even if they compile, most converted VB6 applications will require some level of refactoring to take full advantage of the new language. Documentation is available to cover changes in the syntax, debugging applications, deployment and terminology.