Overview
Autologue is a leading provider of automotive aftermarket software solutions. Autologue's PartsWatch product offers advanced auto parts inventory and distribution management features.
Project Highlights
Phase 1: Standard Upgrade and Training
- 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.
Phase 2: Custom Upgrade Support
The PartsWatch team had been operating in a hybrid mode with both .NET and VB6, so the migration required integrating the translations with the new pure .NET architecture.
Great Migrations assisted with Upgrade Solution design and development to implement numerous custom upgrade features:
COM Replacements
Mshflxgd.ocx | Replace MSHierarchicalFlexGridLib with In-House Grid Control |
msado15.dll | Replace ADODB with In-House Data Access API |
mscomm32.ocx | Replace new In-House Serial Communication API |
ieframe.dll | Replace WebBrowser with In-House WebBrowser Control |
richtx32.ocx | Replace RichTextLib with Winforms.RichtextBox |
comdlg32.ocx | Repalce MSComDlg with Winforms CommonDialog components |
SYSINFO.OCX | Replace SysInfo with .NET API calls |
Msflxgrd.ocx | Replace MSFlexGrid with In-House Grid Control |
mscomctl.ocx | Replace MSComCtlLib controls with WinForms controls and extensions |
mscomct2.ocx | Replace MSComCtl2 controls with WinForms controls and extensions |
tapi3.dll | Replace tapi3.dll (Telephony) with Interop assembly |
msxml3.dll | Replace MSXML2 with System.Xml |
Scrrun.dll | Replace 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 |
Structural
- 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
Architecture
- 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
Language
- 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
Win32
- Rework over 100 methods to use .NET framework services rather than Win32 API calls
Value Added
- Integrate nuget packages
- Batch upgrade pipeline including all translations, solution generation, and .NET builds