Geeks With Blogs


This blog has moved to

 Subscribe in a reader

Add to Google Reader or Homepage

View my teams slideshare
These postings are provided "AS IS" with no warranties, and confer no rights.

IUpdateable has moved to Please visit

[If you are UK based, check out for more information ]

A question I get asked a lot is “Are 3rd party migration tools really that much better than the free upgrade wizard from Microsoft?”

Lets me be perfectly candid. Whilst I always recommend people should try the free wizard first, it has many shortcomings. Too many IMHO. That said, for some folks it will be perfectly “good enough” to enable a successful migration from VB6 to Visual Basic .NET. However for large, complex VB6 applications you would likely be much better served by a 3rd party tool.

The two main companies in this space have each created a comparison with the Upgrade Wizard which I would definitely recommend you check out.

Code Architects VB Migration Partner

Code Architects have a paper which includes a detailed analysis of the output of their VB Migration Partner compared with the Upgrade Wizard on a number of Open SourceVB6 projects and a look at how well each tool handles compatibility issues as identified by VB Project Analyzer from Aivosto. VB Migration Partner was:

  • About four times faster
  • Produced fives times fewer compilation errors in the final .NET code
  • Able to fully or partially handle 43 of the 49 compatibility issues that are left unresolved by the Upgrade Wizard


Artinsoft Visual Basic Upgrade Companion

Artinsoft have created a detailed whitepaper looking at the many differences between the Wizard and their Visual Basic Upgrade Companion. They are sometimes very big differences – such as how the tool handles 3rd party controls. The paper also includes lots of great code snippets which allow you to directly compare the two tools.

e.g. Error Handling

Original VB6 Source Code:

Public Sub ErrorHandling(arg1 As Integer) 
On Error GoTo ErrorHandler 
    Dim var1 As Integer 
    var1 = 1 / arg1 
    MsgBox var1 
    MsgBox arg1 
    Exit Sub 
    MsgBox Err.Description, , "Error" 
End Sub 

The Upgrade Wizard:

Public Sub ErrorHandling(ByRef arg1 As Short) 
On Error GoTo ErrorHandler 
  Dim var1 As Short 
  var1 = 1 / arg1 
  Exit Sub 
  MsgBox(Err.Description,  , "Error") 
End Sub 

But the Visual Basic Upgrade Companion uses Try/Catch:

Public Sub ErrorHandling(ByRef arg1 As Integer) 
  Dim var1 As Integer 
  var1 = 1 / arg1 
  MessageBox.Show(CStr(var1), Application.ProductName) 
  MessageBox.Show(CStr(arg1), Application.ProductName)  
Catch excep As System.Exception       
  MessageBox.Show(excep.Message, "Error") 
End Try 
End Sub 

Do check out the paper, especially the many code samples.

Posted on Thursday, February 5, 2009 3:47 PM Visual Basic , .NET 3.5 | Back to top

Comments on this post: Visual Basic Upgrade Wizard vs 3rd Party Migration Tools

# re: Visual Basic Upgrade Wizard vs 3rd Party Migration Tools
Requesting Gravatar...

We also develop ASP/VB6/COM to .NET tools. Please take a look at what we have to offer at

I would be happy to show you a demo and get your feedback. Let me know if you are interested.
Left by Mark Juras on Feb 23, 2009 6:45 PM

# re: Visual Basic Upgrade Wizard vs 3rd Party Migration Tools
Requesting Gravatar...
Hi Eric,
Nice Article. I wanted to let you know about another serious tool that the VB6 community could really benefit from.

I have spent the last 5 years of my career developing a uniquely powerful and flexible VB/COM-to.NET re-engineering product called gmStudio and a new migration methodology we call the Tool-Assisted Rewrite. We have used this tool/methodology in our migration services and recently started selling the tool for self-service use. We are a Microsoft Certified ISV partner and gmStudio is a Windows 7 Logo certified product. Visit for more information.
Left by Mark Juras on May 26, 2010 5:37 PM

Your comment:
 (will show your gravatar)

Copyright © Eric Nelson | Powered by: