Conversion tool comparisons for visual basic 6.0

18,657

Solution 1

I think you've already seen the question about tools for migrating VB6 to VB.NET.

Both have published special offer prices for the UK market on their basic products on this Microsoft UK page. Of course you need to know the limitations of the basic products and the prices for your market to make a realistic judgement, so you probably do need to contact them :(

  • Artinsoft Upgrade Companion Developer Edition £199 for up to 50,000 lines of code. EDIT Now offering a free version that can do up to 10,000 lines of code.
  • Code Architects’ Visual Basic Migration Partner Professional Edition £399. They told me this was also for up to 50,000 lines of code.

The built-in Microsoft upgrade wizard is pathetic - according to the guy who wrote it - of course he is from Artinsoft so he wants to sell you something better. Microsoft UK also say the Artinsoft and Code Architects tools are better than the built-in upgrade wizard.

EDIT: I contacted Code Architects for a quote, they responded very fast. Unlike this Stack Overflow question by Angry Hacker who had a worse experience. But then Francesco Balena popped up on Stack Overflow to answer his question within 12 hours, which is more encouraging.

Solution 2

"updrading" VB6 to .NET is a misnomer. All you get is VB6 code in .NET; generally you can get much better results with a refactor/re-architecture - using a different class model, for example. Perhaps designing to be unit-testable, for example. Or using IoC.

If you just want the code to work (and you're confident you can test it), then fine.

Personally, I would seriously consider a more manual port. And I have a lot of legacy VB6 code, so I know the pain involved.

Every time we've faced this, we've simply re-written it in C# - as an approach, it has proven itself many times over.

Actually - I recommend Brownfield Application Deveopment (Manning) - it may give some valuable insights on things to have in place before you start.

Brownfield

Solution 3

The problem is that the conversion tools don't offer support for the VB6 Graphics commands or the VB6 printer model. Plus you get into a lot of corner cases when dealing with ActiveX controls. I know our own CAD/CAM applications won't translate over with any conversion tools as a lot of tweaks are built into the UI to make it work smoothly with the VB6 Form Engine.

These are things that conversion tools fail on as the WinForm Engine requires it's own tweaks. The same thing was experienced when our software moved from DOS to VB3. Sometimes there is no substitution for manual conversion.

With that being said, there are somethings you can do to make conversion considerably easy. First make sure your application is built in layers. This way you can convert one layer at a time, test and continue on. It also has the advantage of leaving you with usable software at every step. I recommend starting at the top (form) layer and working your way down.

Make sure anything that is VB6 centric and not Basic Centric is behind an interface. When .NET first came out several years ago I created a Canvas Interface and implemented that using the VB6 graphics command. I use the same Canvas interface in VB.NET except now it uses the Graphics Object. The same was done for printers.

Nearly all the code was moved out of our forms into classes that the forms called. The forms themselves implement an interface that the UI Classes used. When we switched to .NET we have a precise definition of how the form interacted with the rest of the system and form conversion was considerably easier.

All of these steps where done in VB6 and put through our normal release Q&A process. Then afterward we started the conversion.

Solution 4

I haven't used either of the tools mentioned, but with a little preparation, the upgrade tools in Visual Studio are more than adequate.

The first thing you need to do is get the Visual Basic 6 Code Advisor from Microsoft. It's a great help in getting your project ready for migration.

Share:
18,657
kjack
Author by

kjack

Updated on June 05, 2022

Comments

  • kjack
    kjack almost 2 years

    Has anyone here used either of the following (or any other tool) to convert your vb6 code to a .net language?

    Artinsoft's upgrade companion (converts to c# and vb.net)

    vbmigration partner (converts to vb.net)

    How effective were they and what size project did you convert?

    How much work was left to do afterwards? How happy are you with the resultant .net project. What was the support like? Is there a support forum anywhere for users of tools like these, neither vendor seems to offer one.

    What did they charge, their prices are not published and I have heard wildly differing prices from different sources for both the above examples