Comparison of Visual Basic and Visual Basic .NET

Programmers familiar only with Visual Basic would probably have encountered difficulties working with the new version or adapting existing programs for it.

In Visual Basic .NET, the new AndAlso and OrElse[1] operators have been added to provide short-circuit evaluation like many other languages.

Class properties no longer require the Let and Set statements Debug.Print is replaced with Debug.Write and Debug.WriteLine A procedure call must have parentheses in Visual Basic .NET.

Conversion tools automatically insert a ByRef if necessary, preserving the semantics of the Visual Basic application.

Visual Basic 5.0 and 6.0 has traditionally employed zero-based arrays (the default lower bound), unless "Option Base 1" is declared.

Whilst the IDE does a reasonable job of hiding the fact, the dependence on ActiveX objects is dropped in Visual Basic .NET (although there are mechanisms for interfacing with COM in .NET [2]) in favour of .NET components offering similar functionality.

One of the true banes of a Visual Basic developer's life has always been writing resize code.

Whilst the WinForms paradigm leaves a lot to be desired in the geometry management department in the face of toolkits like Qt and GTK+, at least the developer can anchor widgets on forms instead of having to write reams of code in OnResize handlers.