Structural Engineering Applications (VB6 to C#/WPF)

Overview

Great Migrations developed a VB6/COM to WPF C#/.NET solution to upgrade a suite of 2 desktop applications. The structure of the source codebase was 185,986 Total LOC 140,354 Logic LOC 22,171 GUI LOC organized into two VBPs.  The duration of the project was four months.

Upgrade Features

VB6 Forms to WPF

  • Implemented a new coding standard (subsystem="wpf") that includes the rules to rewrite VB6 forms as WPF.XAML forms. The WPF subsystem includes rules for project files, designer code, event handlers, and other UI-centric logic. 
  • Implemented upgrade rules for all the most popular VB6 intrinsic controls.
  • Implemented upgrade rules for tab control (TabDlg).
  • The VB6 to WPF implementation is implemented in the configuration files and gmSL scripts so it may be extended and modified by the user.

COM/VB6 to .NET replacements

  • FileSystem: Migrated to an updated version of Microsofts VB6 File System Replacement
  • Printing to WPF Printer
  • Record Based FileIO Support
  • VB6 Surface Graphics to WPF Graphics library (Including Redraw functionality)
  • Extracted VB6 FRX data as png files for XAML
  • GoSubs to function calls

Extension Methods

The upgrade solution used our Lightweight Object-Oriented C# coding standard that uses various extension methods to more accurately emulate VB6 semantics.