VB to .NET Multi-Project Migration

ArtinSoft’s Visual Basic Upgrade Companion allows the conversion of multiple VB 6.0 projects in a single migration solution. To make this happen, the Visual Basic Upgrade Companion features a boosted pre-processor environment and the Upgrade Manager user environment.

The project interoperability issues are some of the most common after the automated migration stage. The manual efforts required to fix these complications are enormous, because they demand to analyze and fix references to other projects, making the manual changes to be really hard to track. The VBUC multi-project migration is the best methodology to reduce the amount of manual changes, because of its great automation ratio and all the technical details considered to ease this part of the migration process.

A good example of the multi project migration benefits is a simple system (12K LOC) composed of 10 equally sized projects. The time/cost estimates for each individual project must be added to ballpark the entire process size, but the manual efforts and time required to achieve functional equivalence are by far larger. All the atomic projects must pass the manual changes stage, and then the entire system must be debugged and have the respective manual adjustments to work as a unit.

With the Visual Basic Upgrade Companion, the entire set of individual projects already contains all the adjustments required to work as one single system, reducing that extra time needed to achieve functional equivalence and delivering a more .NET like, readable and scalable solution.

Technical details

The Visual Basic Upgrade Companion separates the pre-processing and conversion stages in order to fix problems like the use of by-ref parameters, interfaces, renaming and typing among the different projects to achieve an effective migration of the entire set of projects as a whole, and not as a series of independent conversions. The most critical details are:

References Resolution

Each reference is identified and classified (explicit, dynamic, internal, external, third party, and more) to identify possible unresolved or conflictive items.

Global Pre-processing

This preliminary stage creates a common framework among all the projects to improve the migration of some particularities, such as:

  • Interface creation
  • By-ref parameter declarations
  • General Renaming
  • Object typing
  • Shared files and folders

Resulting Files Distribution

During a multiple project migration the file structure is managed to avoid duplications if a single file is referenced from several projects.