VB to .NET Multi-Project Migration | Mobilize.Net

VBUC allows the conversion of multiple VB 6.0 projects in a single migration solution.

To make this happen, the VBUC 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 the programming environment requires you to analyze and fix references to other projects, making the manual changes hard to track. The VBUC multi-project migration is the best methodology to reduce the number of manual changes. The automation ratio and the many the technical details ease 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 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 the 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 conflicting items.

Global Pre-Processing

This preliminary stage creates a common framework among all the projects to improve the migration of some particulars, 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.