I recently finished a project where we converted many old VB6 applications to C # using the Artinsoft VB Upgrade Companion .
It is a difficult challenge to decide which approach is better. In many cases, code conversion can be very painful, especially if there is a lot of logic based on functions that differ significantly between the two platforms (for example, single-index arrays or error handling through the Information.Err object instead of exceptions).
On the other hand, if you try to record it from scratch, there is a good chance that you accidentally change some subtle behavior that does not immediately become apparent when viewing the VB5 source code. Such things can be difficult to track.
A good compromise is to use a converter to port the code, and then use it as a guide to write things from scratch, because I hope there will be places where you can just pick up the converted code directly into a new code base. At the same time, you get the opportunity to write more convenient code everywhere.
With all that said, if the original VB5 is well written and (relatively) well structured, then I would recommend against any kind of update. You will spend much more time trying to match the existing behavior of the old application than just working on the old code.
Good luck with what you decide to do - you'll need it :)
source share