Skip to content

Autologue -- PartsWatch Auto Parts Inventory and Distribution System (VB6)

Autologue is a leading provider of automotive aftermarket software solutions. Autologue’s PartsWatch product offers advanced auto parts inventory and distribution management features.

  • Main objective: to accelerate the incremental migration of PartsWatch to the C#.NET platform reducing cost and risk without requiring a code freeze or sacrificing quality.
  • 77 inter-related vb6 projects
  • 1.6M source code lines
  • 34 external COM components and controls
  • Effort: 30 person-days for solution development, 5 days for customer training

Great Migrations provided development, training, and support for using gmSudio to implement an automated, repeatable upgrade solution. This solution generates an integrated, build-complete set of C# application projects from the PartsWatch VB6 code. It also generates set of C# projects providing a stub class framework to replace the COM dependencies found in that code. All of the projects are organized in a VS2015 solution to facilitate a full-stack build and further analysis and development. Great Migrations also provided an on-sight gmStudio training workshop to hand-off the upgrade solution and ensure that the the Autologue team would be able to advance and use the solution as part a broader, long-term upgrade strategy.

The PartsWatch team put the project on hold for several years and operated in a hybrid mode designing and developing a framework that allowed running .NET UI elements under their VB6 host. In 2022, Autologue re-engaged Great Migrations to help them migrate to a pure .NET architecture and we assisted with Custom Upgrade Solution design and development to implement numerous custom upgrade features:

Mshflxgd.ocxReplace MSHierarchicalFlexGridLib with In-House Grid Control
msado15.dllReplace ADODB with In-House Data Access API
mscomm32.ocxReplace new In-House Serial Communication API
ieframe.dllReplace WebBrowser with In-House WebBrowser Control
richtx32.ocxReplace RichTextLib with Winforms.RichtextBox
comdlg32.ocxRepalce MSComDlg with Winforms CommonDialog components
SYSINFO.OCXReplace SysInfo with .NET API calls
Msflxgrd.ocxReplace MSFlexGrid with In-House Grid Control
mscomctl.ocxReplace MSComCtlLib controls with WinForms controls and extensions
mscomct2.ocxReplace MSComCtl2 controls with WinForms controls and extensions
tapi3.dllReplace tapi3.dll (Telephony) with Interop assembly
msxml3.dllReplace MSXML2 with System.Xml
Scrrun.dllReplace Scripting File/IO with System.IO
In-House

Control Framework
Replace an extensive custom control library to its .NET replacement
In-House

Technical Framework
Replace an extensive collection of in-house technical APIs to .NET replacements
  • Consolidate over 90 Shared files changing shared code file references to common assembly references
  • Remove dozens of unused files and methods
  • Integrate hand-coded methods and files
  • Migrate rich VB6-based composite application framework to .NET-based composite application framework
  • Migrate extensive collection of user-defined controls to .NET
  • Migrate hundreds of UserControls to custom Forms
  • Migrate Multi-Language support to new design
  • Optimized Type Inference
  • Migrate 1000s of VB.Collections and Scripting.Dictionaries to strongly typed Generic Lists and Dictionaries
  • Migrate using Optional Arguments
  • Migrating Twips to Pixels as needed
  • Rework over 100 methods to use .NET framework services rather than Win32 API calls
  • Integrate nuget packages
  • Batch upgrade pipeline including all translations, solution generation, and .NET builds
  • Implement custom upgrade engine using gmAPI