Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Upgrading your VB6 app to .NET

If you are still struggling with the conversion of VB6 apps to .NET, this tip should help.

Microsoft made a lot of changes to the VB language, to make it work with the .NET Framework. They did this for a very good reason. Rather than trying to hammer all the cool, new things in .NET into the existing VB model, Microsoft rewrote many aspects of the language to make it more modernized. If you are still struggling with the conversion, take a look at this article from InformIT on converting from VB6 to .NET.

After the first release of Visual Studio .NET 2002, Microsoft was flooded with complaints and comments from the VB community that the transition from VB to VB.NET was difficult, despite what Microsoft's user acceptance testing showed.

In response, they created a VB6 add-in that will scan your VB project's source code and make suggestions on the best coding practices to make your transition to VB.NET easier. It's based on the VB Project upgrade wizard that comes with Visual Studio .NET.

If you haven't used the project upgrade wizard before, you're not missing much. What it does is try to convert all known VB syntax to VB.NET syntax where it possibly can. That includes things like converting Variant data types to Object data types, Integer data types to Int data types, attempting to switch any intrinsic controls with .NET intrinsic controls, and so on. What it's not going to do is ensure your VB6 code will work with VB.NET. The wizard can't correct a lot of things, so it makes recommendations in the form of "To Do's" and "UPGRADE_WARNING" messages.

How do you run the wizard? From within Visual Studio .NET IDE, just open up a VB6 project and the wizard will fire up. Voila! It's just that simple. Some really simple projects convert just fine. However, watch out for the dreaded "Microsoft.VisualBasic.Compatibility" and "Microsoft.VisualBasic.Compatibility.Data" namespaces (or references) it may insert into your newly converted project. These libraries allow you to make VB6 method calls that were taken out of the VB.NET language. This is Microsoft's way to ensure some compatibility with legacy VB code.

Just like when it came time to upgrade Windows 16-bit application to be a 32-bit application, Microsoft tried to make it easy by offering a thinking layer that allowed developers to make 16-bit system calls from within their 32-bit environment. These compatibility references offer something similar. However, rather than clogging up your code with a mix between VB and VB.NET, you should ask yourself if you really need to upgrade the application to .NET.

If you answer "yes," then you'd better start doing some system planning and application rearchitecting. Don't just convert your application and build on whatever foundation you're currently on. You're better off reevaluating your application to work with the features that .NET has to offer.

Useful references:

Read more about the differences between VB code and VB.NET at InformIT.

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.