VB 6 programs require significant modification to run under VB .NET
VB6 was interpreter based language while VB.NET is a compiled language
The greatest change in VB6 and VB.NET is of runtime environment. VB6 used the VB-Runtime while VB .NET adheres to the Common Language Specification (CLS) for language interoperability which is also shared with C#.
VB 4, 5, and 6 were backward compatible VB .NET is not backward compatible
VB6 was not a type-safe language while VB.NET is a type safe language. There is no variant type in VB.NET and no type conversions happen automatically in VB.NET
VB6 used the ‘On Error Goto’ syntax to handle exceptions at runtime. VB.NET uses the Try…Catch…Finally syntax to handle exceptions at runtime.
Changes to Procedure Calls
A lot of code (like user interface code) in VB6 was hidden from developer. In VB.NET no code is hidden from developer and you can access and control each part of your application and it now has C-like Syntax
VB .NET is now has object oriented programming features
Arrays is 0 based in VB .NET. i.e when you declare an array in vb6 "Dim Items(5) As String" you would get an array with 6 elements but in VB.NET it would be 5 items now.
No More Variant, Currency Data Types in VB.NET, you also get the new data types in Visual Basic. NET called Object other changes are as follow.
VB2008.NET VB6 Difference
Short Integer 16 Bit
Integer Long 32 Bit
Long 64 Bit
Object Variant Variant Dropped use the new Object Data Type
Decimal
String String No Fixed Length String in Vb.NET
Currency Use Decimal or long in vb2008
VB6 does not allow developing the multithreaded applications. In VB.NET you can create multithreaded applications.
VB6 was only considered good for desktop windows application. In VB.NET you can develop web applications, distributed applications, create .NET windows and web controls and components, write windows and web services.
In VB.NET, you can also use reflections to read the meta-data of types and using reflection emit you can also generate code to define and invoke types at runtime.
VB.NET uses .NET framework class library along with specialized VB library (System.VisualBasic) as a standard library. As a result, the standard library for VB.NET is much enhanced and useful compared to VB6 standard library
VB.NET is platform independent because of .Net framework. Programs written in VB.NET can run on any platform where .Net framework is present. The platform include both hardware and software (operating system) platforms.