The huge difference
When Microsoft Visual Basic 6 was released, the VB community were over the moon. Featuring a whole host of improvements and new features, this release marked a significant advance in the history of VB. To their delight, VB develoeprs were now able to produce applications with the same power and flexibility that VC++programmers had taken for granted for years.
No longer the toy product of the past, Visual Basic had a great future ahead of it...
...until Microsoft introduced .NET and changed the scene forever.
The fury in the VB community caught Microsoft by surprise. They expected everyone to greet the new release with enthusiasm, throw away their copies of VB6 and switch to .NET without delay. They forgot to account for the Real World (tm) where developers have legacy systems to maintain and little time to learn a completely new development environment.
VB.NET looked very similar to VB6 on the surface, and many developers were eager to get their hands on the latest incarnation of the world's most popular programming environment. They were in for a major shock! The new release was largely incompatible with the previous one, and the upgrade path was strewn with rocks.
According to a Microsoft spokesman, the uptake of .NET was "dismal" for quite a long time. The BV developer community split between those who embraced the new technology wholeheartedly, those who stuck stubbornly to VB6, and those who jumped ship and switched to other environments such as Delphi.
The tenacity of the old-school VB developers can be seen clearly by looking at how much copies of VB6 sell for on eBay, even several years after .NET was introduced.
Can't I just stick with VB6?
Inevitably, support for VB6 is going to dwindle. Young developers are growing up with .NET, older ones are either retiring or switching. Looking through the Usenet groups dedicated to VB6 shows a sad decrease in the number of postings. Peer to peer support is disappearing.
Microsoft has stopped official support for VB6, they want us to use VB.NET. Whilst they claim they will not break compatibility, they are unlikely to jump through any hoops to ensure future versions of Windows support VB6 applications. As soon as an incompatibility is found, VB is going to suffer.
So, do I use VB6 or VB.NET?
Surprisngly, the answer is "neither." VB6 is not a good option for anything other than legacy systems for the reasons mentioned above. VB.NET has the advantage of being in Microsoft's favour, but VB6 developers often spend more time unlearning VB6 than they do learning VB.NET as the two are confusingly similar, but irritatingly different. There is also the worry that at some point in the future, Microsoft will drop VB.NET developers in the brown stuff in the same way they did to VB6 developers. Whilst this fear may be unjustified, it is certainly understandable.
There has been quite a move for VB6 developers towards C#, largely as Microsoft themselves use this in-house, giving a certain degree of security that the language isn't going away. It is very easy to learn, having all the advantages of C++ without the nasty bits (that VB6 never had anyway).
Please note that this guide represents my personal opinion. This issue evokes strong feelings amongst VB6 developers, so others may disagree with what I have said. I hope you found it useful.