DevCity.NET -
VB Migration Partner VB6 to .NET Conversion Tool
Jugoslav Arsovski
Jugoslav Arsovski (Kulrom) is Senior Analyst Programmer and Developer with strong background in ASP.NET, VB.NET, C#.NET, ADO.NET(T-SQL), Graphic Design and has skills in C++, XML, MySQL, Crystal Reports, AJAX, HTML, CSS, JavaScript and ActionScript.

His passion is body building and boxing and he enjoys posting to different forums and blogs, including and 
by Jugoslav Arsovski
Published on 1/4/2009

  I recently had a requirement to convert a VB6 project to VB 2008.    Although this initially caused me a lot of problems, I was fortunate to discover an outstanding product for converting VB6 projects to VB.NET which helped me get over some difficult hurdles.

The Migration Partner Experience
I recently had a requirement to convert a VB6 project to VB 2008. Although this initially caused me a lot of problems, I was fortunate to discover an outstanding product for converting VB6 projects to VB.NET.

Here's how it began.

A friend of mine called me asking if I could help him to convert a VB6 application and make it work on Windows Vista OS. The application was designed to secure SSH tunneling access to servers that are otherwise blocked by firewalls. It was using some third party products for the purpose but in addition there was a lot of his original code that needed to be upgraded.

This application is a commercial application that has been successful for many years. My friend has sold lots of copies, but had decided that it was time to upgrade it to .NET.

OK since I am a "good guy", I agreed to help him out with this project, hoping that the built-in visual studio converter could help. But, honestly I was not 100% sure that I would be do it, because I am not familiar with VB 6. Actually, I come from a C++ background (five wasted years), and currently I am VB.NET and C#.NET programmer.

So I knew that the process might be long and there was a good chance that I would get stuck. But, if I'm worried about being stuck, I know that I'll get stuck! Very soon after this conversation I had the VB6 project on my workstation and opened in Visual Studio 6.0.

I took a quick look around and was amazed by the tidiness of the code itself. I then started the Visual Basic 2005 Upgrade Wizard and after few steps I had a converted .NET application. Oh my Goodness! It was the worst converted code I’ve ever seen in my life. I ended up with zillion errors and warnings.

It was practically useless code. I really had no idea where to start from. Almost every line in the project was underlined with red or green. I spent about 5 hours just trying to clean it up so I could understand some errors better. In that 5 hours I only got about 1/1000 way through it - so that should tell you how bad it was.

It kind of irritated me at first, but then I reminded myself that I have a good friend named Ged Mead. He is very kind and of course very knowledgeable so I was pretty sure that (hopefully) he could put me on the right track. I emailed him explaining my problem and asking for some help from him. I was pretty sure that he will help me to figure out the meaning of the specific errors. Well, very soon after this I got received reply from Ged. He was recommending me a VB6-VB.NET converter tool named VB Migration Partner.

Honestly I was very skeptical from the beginning, knowing how bad actually the Visual Studio built-in converter is. But that was not the case with VB Migration Partner. The difference was obvious as soon as it went in. As you will see from the story below, this product does its job perfectly (exactly as Ged explained to me).

OK, I installed the VB Migration Partner on my computer and then ran the application. You wouldn’t believe that I was used to the GUI after only two or three minutes. It was love at first sight. lol

I have not spent a single minute on reading the help files. It is so simple to use that it is an absolute delight to work with.

Actually all I had to do was to open the VB6 project and then to click the "Convert to .NET" toolbar button (F5). It was really that simple. Only two steps and I had the VB6 application converted.

Figure 1.0

I ended up with only 65 errors and 17 warnings (Figure 1.0). I believe it's worth mentioning that this is non-trivial, commercial project, contains thousands of executable lines, a lot of methods, classes, DLL's etc. I am telling you this so you clearly understand that the initial 65 errors are relatively few, and seeing that was a real revelation to me. If I judge by the time it took to convert this application then this tool is certainly suitable for all kinds of migrations, beginning with the small and progressing to the huge ones (even those with millions of executable lines).

Actually, one of the most interesting and useful features of this VB6 to VB.NET converter is its support for migration pragmas. Most probably I couldn't fix all those errors in a snap if this tool was not supporting the PostProcess pragma. Really cool feature.

As it turned out, all the errors were related to a particular interface but, honestly, I didn't know how to handle it. That’s why I contacted the VB Migration Support.

I must say that I was pleasantly surprised by their efficiency and quick response.

Actually this is very interesting part. To my great satisfaction I was privileged to communicate with Mr. Francesco Balena. OMG, I've read all his books and was always on the lookout for the next one. So the opportunity to contact him directly was a great happiness for me. I was so excited that I almost totally forgot about the project!

No, seriously, as you can guess, he showed me how to fix all errors. Isn't it brilliant that the author also leads the tech support team? No doubt this gentleman knows very well that support is so essential in overcoming the initial dismay for automatic conversion tools.

He contacted me the next day after I sent him an email and answered a ton of questions including the most important one,how to fix the remaining 65 errors:

  • I assume that changing "IChannel" into "Channel" and "IwodTunnelCom" into "wodTunnelCom" should fix both compilation and runtime errors.
Figure 1.1

As you can guess I was able to fix all the errors in the next ten minutes after Francesco's answer and finally compile the VB.NET project. Yep! It worked like a charm.

My friend was overjoyed when I told him what had happened. I even received some $$$ for my work.

So, I recommend this tool to everyone and you will not regret buying it. I give it 5 out of 5 stars.

If you have an
obsolete VB6 project to be upgraded, go for this tool! It will save you hours - possibly days - of frustrating work.

You can order a copy of VB Migration Partner or visit their official website at