Skip to content

Blog

Using RefactorLibraries Files for COM API replacement

Upgrading a real-world VB6 application typically requires replacing COM APIs with .NET APIs. gmStudio uses and open, extensible COM type system to facilitate automating these types of COM upgrades. The COM type system used by the upgrade process is declared in a set of files called Interface Description Files (IDFs). IDFs are XML text files that declare all of the elements of an API: the enumerations, classes, structs, etc. IDFs are detailed dow the level of individual method arguments. An standard set of IDFs are generated for you by gmStudio from the COM binaries used by your application. The IDF generation process usually works completely automatically, but in some cases it is necessary to manually locate and generate IDFs for atypical COM type libraries.

Standard IDFs are designed to direct the translation to use either a stub framework exposing the original COM API or an interop wrapper around the COM binary. The default is to let the gmStudio generate the stub framework and referecne it in the translated application code. This state of translation: referencing a stub framework is an initial step to facilitate building and verifying the standard translations. Once this step is completed, the IDFs may be modified to direct the translator to replace the COM APIs with some other API. The replacement techniques require modifying the IDF to change how its elements are referenced in translated code.

There are two ways to modify IDFs:

  • Modify the IDF XML files directly, or
  • Modify the IDF information with refactoring commands

This document describes how to use the second approach. See this article for a discussion of COM Replacements by modifying IDFs directly.

A Mig.IDF file is an XML text file that contains refactoring commands associated with a given IDF. Using Mig.IDF files provides a more deliberate, and arguably superior approach to organizing COM migration rules for each API. Compared to COM replacements done by modifying IDFs directly, using Mig.IDF files can be easier to create and easier to see what is being migrated because the rules are more clearly identified and explicit. Note also that Mig files are applied to the generated IDF, so re-generating the IDF will not disturb the associated Mig.IDF file.

An Example: MSComCtlLib.ProgressBar to a WinForms.ProgressBar

Section titled “An Example: MSComCtlLib.ProgressBar to a WinForms.ProgressBar”

Let’s say you want to migrate MSComCtlLib.ProgressBar to a WinForms.ProgressBar. This is a pretty easy migration as the WinForms control is very similar to the COM control.

First you create a Mig.IDF file for the MSComCtl.ocx API taht contains progress bar. This file must be named “Mig.” followed by the name of the COM IDF containing the class/control that you want to migrate in this case, the name is Mig.MSComCtl.ocx.xml. An initial version of this file is shown below.

<RefactorLibrary>
<Refactor id="[MSComCtl.ocx]">
<Migrate location="DoNotDeclare" migName="System.Windows.Forms" />
<Migrate id="IProgressBar.Min" migName="Minimum" />
<Migrate id="IProgressBar.Max" migName="Maximum" />
<Migrate id="IProgressBar.Appearance" migStatus="mustCorrect" />
<migClass id="NetControl.ProgressBar" migName="System.Windows.Forms.ProgressBar" parent="ProgressBar">
<property id="Location" value="(Left,Top)" nPram="2" migPattern="new System.Drawing.Point(%1d, %2d)" />
<property id="Name" type="string" value="SYM.name" />
<property id="Size" value="(Width,Height)" nPram="2" migPattern="new System.Drawing.Size(%1d, %2d)" />
<property id="TabIndex" type="Integer" value="TabIndex" default="0" />
<!-- NOT MAPPED for designer Appearance = System.Windows.Forms.AppearanceConstants.cc3D; -->
</migClass>
</Refactor>
</RefactorLibrary>

The Mig.IDF file should be placed in “user” folder in the project work space along with the other upgrade scripts, code, and documentation you are developing for your upgrade solution.

For this example, I placed the mig file in the usr\idf\3pc folder in my project workspace.

Next, you activate the Mig.IDF by taking advantage of gmStudio’s folder conventions. For example, the following ScriptRule sets the primary configuration folder to usr\idf\3pc then loads the IDF. The tool will search for the IDF and load it then search for the Mig.IDF file and apply the refactoring commands.

<ScriptRule id="MSComCtlLib">
<Option>
<Select Target="..\usr\idf\3pc"/>
<reference id="MSComCtl.ocx" />
</Option>
</ScriptRule>

Finally, this ScriptRule may integrated into the main translation script template using a <ScriptRule> command:

<gmBasic>
<Storage Action="Create" Identifier="%JobId%" />
<select Target="%UserFolder%" />
<Select Local="%IdfFromCodeFolder%" />
<Select System="%IdfFromIdlFolder%" />
...
<ScriptRule id="MSComCtlLib" />
<Compile Project="%SrcPath%" />
<Analyse />
<Output Status="New" Filename="%BndPath%" />
<Author />
<Storage Action="Close" />
</gmBasic>

When translator processes any VBP code that references this API, it will do so according to the modified IDF rules.

Basic Processor V30.76(07/18/18) System Build(07/18/18 5:26:53)
...
Loading reference:[MSComCtl.ocx] \gmClients\Client\poc\proj\idf\FromIdl\MSComCtl.ocx.xml
Loading reference:[Mig.MSComCtl.ocx] \gmClients\Client\poc\proj\usr\idf\3pc\Mig.MSComCtl.ocx.xml
...

gmStudio Release News: Tuesday, 8-April-2025

gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or VB.NET ). Based on feedback from our clients and real-world modernization projects, we continuously improve gmBasic so it will help developers more easily produce cleaner, more correct upgrade results. Most recently, this work includes general improvements that produce more functionally correct translations of a Voter Roll Management System. This three-tier enterprise application is comprised of 101 inter-related VBP files referencing 1.4M total LOC in 1,566 code files and using 29 third-party COM libraries. In addition, important improvements were made in the ASP translation capability. The distribution,Version 50.14, has several important enhancements.

  • Improves translation of complex ASP tags having embedded conditional logic
  • Improves translation of statements that invoke event handlers
  • Improves string array declarations and initializations
  • Improves translation of OptionButton.Checked = true
  • Improves translation of OptionButton.Click event
  • Improves translation of CheckBox.Click event
  • Improves diagnostic messages when a ByRef parameter of a user-defined event migrates to ByVal
  • Improves diagnostic messages when an explicit Optional ByRef parameter migrates to ByVal
  • Improves consistency of UPGRADE_INFO messages
  • Improves consistency of using Status=“NotImplemented” rather than Status=“delete” for incompatible VB6 Control properties
  • Improves Refactor/Remove to allow also removing orphaned comments when removing a subprogram
  • Corrects system hang when an empty OldBlock is used in a Replace command

gmStudio: Upgrade Solution Development Environment

Section titled “gmStudio: Upgrade Solution Development Environment”

Powered by gmBasic, gmStudio is a platform for analyzing code and developing custom VB6/ASP/COM to .NET upgrade solutions. We are continuously adding functionality to gmStudio and making it easier to use. This distribution includes several enhancements:

  • Corrects Location Name in XML Search results
  • Improves handling of Search Peek Window size
  • Add Task Comment and Description to Project Metrics report

gmAPI: a .NET API for Developing Advanced Upgrade Solutions

Section titled “gmAPI: a .NET API for Developing Advanced Upgrade Solutions”

gmAPI is a .NET API for automating our upgrade engine and accessing the semantic models produced by our unique linguistic compilation technology. gmAPI also includes classes for managing complex upgrade rules and integrating external migration tools with gmStudio. We maintain and improve gmAPI and related components to keep them in sync with the platform and add new features.

  • Improves implementation of custom CodeStyle extension

The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advance reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these advanced reporting services to keep them in sync with the model schema and add new features. See Semantic Reports for more information.

gmStudio ships with a collection of sample upgrade rules that can be used to add custom features to your upgrade solution. These XML documents and gmSL scripts are distributed as source that you may modify to fit your unique requirements. The sample rules were updated to reflect the latest product improvements and conventions. See also additions and changes in gmStudio Extensions Repository.

  • Improves the migration of Common Dialog to WinForms (comdlg32.ocx.Wrapper.Refactor.xml)
  • Improves migration of COM+ to System.EnterpriseServices (Comsvcs.dll.Refactor.xml)
  • Improves rules for setting the default parent class for stub controls authored in the support framework (Environment.std.xml)
  • Improves examples directing custom migration of VB6 language operations (mig.vb7lang.xml)
  • Improves migration of Windows Common Control 2 to WinForms (mscomct2.ocx.WinForms.gmsl/xml)
  • Improves migration of Windows Common Control to WinForms (mscomctl.ocx.WinForms.gmsl/xml)
  • Improves migration of MSXML2 to System.Xml (msxml6.dll.Refactor.xml)
  • Improves migration of RichTextBox to WinForms (richtx32.ocx.WinForms.Refactor.xml)
  • Improves migration of Scripting to http://System.IO (Scrrun.dll.SystemIO.Refactor.xml)
  • Improves the migration of TabDialog to WinForms (TABCTL32.OCX.Wrapper.Refactor.xml)

gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in real-world project work. Learn more about gmRTLhere.

  • Improves gmRTL.Core.OrderedDictionary
  • Adds gmRTL.Core.COMPlus mock classes for running COM+ components outside of MTS
  • Adds gmRTL.Core.ErrorHandling.SimpleResumeNext
  • Adds gmRTL.Core.GLog classes for process logging
  • Adds gmRTL.Core.ArrayHelper services to allow deep initialization of stucts containing strings
  • Adds gmRTL.Core.ConversionHelper.ToVal to more closely emulate the Val function
  • Improves gmRTL.Core.InteractionHelper.Shell function
  • Adds gmRT.GUI.CheckedListBox control
  • Adds gmRT.GUI.ComboBoxEx control
  • Adds gmRT.GUI.OleControl control

Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate the various upgrade features. The samples upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the Samples here.

Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can find all of the gmStudio FAQs on the Great Migrations portal. The following “Support Statement” articles were added or updated since the last product update:

  • By Tool or By Hand: Comparing Upgrade Methodologies
  • Custom COM Replacement
  • Setting Modernization Project Scope and Budget
  • Support Statement: Overcome the Limits of AI for Large Scale Software Modernization
  • Support Statement: Surface Pattern Syntax
  • Translation Myth Busters
  • gmStudio Command Line
  • gmStudio User Guide
  • gmplRegistryStatement
  • gmplRemoveStatement

gmStudio Release News: Tuesday, 7-January-2025

gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or http://VB.NET ). Based on feedback from our clients and real-world modernization projects, we continuously improve gmBasic so it will help developers more easily produce cleaner, more correct upgrade results. Most recently, this work includes general improvements needed to automatically produce a build-complete C# version of an enterprise-level financial management system for security and alarm companies. This large desktop application is comprised of 185 inter-related VBP files referencing 1.2M total LOC in 2,696 code files (including 682 ActiveReports Designers) and using 72 third-party COM libraries. The distribution,Version 50.10, has several important enhancements.

  • Adds Registry type=BaseType to alter how VB6 intrinsic types are recognized
  • Adds Registry type=LibType to facilitate migrating a COM API types are recognized
  • Improves migration of custom designer files (*.dsr) such as ActiveReports
  • Improves recognizing the type of ControlArray elements
  • Improves indenting of translations modified by Fix@FileFilter
  • Improves the migration of App object operations and the App type
  • Improved consistency of the inferred array parameters and corresponding arguments
  • Improves handling string literals containing control characters
  • Improves resolution of late-bound object/default property references
  • Improves relational operations between Twips and strings
  • Improves handling ListBox.Item and ComboBox.ItemData
  • Improves migrating vbEmpty to null
  • Improves migrating assignments of a class instance to an implemented interface
  • Improves Refactor/Rename to allow renaming a VBP’s internal name
  • Improves recognition of classes requiring IEnumerable support
  • Improves logic to provide an enum entry from a quantity that may be null
  • Improves Generic Collections to make adjustment for zero-based indexing when index quantity is a enum
  • Improves behavior of Fix/Replace with MatchBlock=on
  • Improves conventions for Array initialization and assignments
  • Improves OutputPath conventions in .NET project template
  • Improves DefineConstants conventions in .NET project template
  • Improves ByRef optimizations for array parameters
  • Improves migration of foreach with ControlArrays
  • Improves type inference to retain weak typing when variable is used with an IsNull operation
  • Improves handling of status=“delete” to suppress unwanted operations from the translations.

gmStudio: Upgrade Solution Development Environment

Section titled “gmStudio: Upgrade Solution Development Environment”

Powered by gmBasic, gmStudio is a platform for analyzing code and developing custom VB6/ASP/COM to .NET upgrade solutions. We are continuously adding functionality to gmStudio and making it easier to use. This distribution includes several enhancements:

  • Adds FinalEdit element to ScriptRules to be inserted after the Output@Status=Close element. Typically this is used for top-level Fix@FileFilter operations to make changes to the translation outputs after they are written to disk.
  • Adds LogTranTime setting to application configuration to suppress or allow logging the total elapsed translation time in translation logs
  • Improves user experience for running and viewing Metalang Audit Report
  • Improves Task Filter Dialog resize behavior
  • Improves Translation Status checking to report WARN when there is a ScriptRule warning

gmAPI: a .NET API for Developing Advanced Upgrade Solutions

Section titled “gmAPI: a .NET API for Developing Advanced Upgrade Solutions”

gmAPI is a .NET API for automating our upgrade engine and accessing the semantic models produced by our unique linguistic compilation technology. gmAPI also includes classes for managing complex upgrade rules and integrating external migration tools with gmStudio. We maintain and improve gmAPI and related components to keep them in sync with the platform and add new features.

  • Improves the CodeStyle Namespaces commands to allow specifying an alias for “using-qualified” naming

The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advance reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these advanced reporting services to keep them in sync with the model schema and add new features. SeeSemantic Reportsfor more information.

gmStudio ships with a collection of sample upgrade rules that can be used to add custom features to your upgrade solution. These XML documents and gmSL scripts are distributed as source that you may modify to fit your unique requirements. The sample rules were updated to reflect the latest product improvements and conventions. See also additions and changes ingmStudio Extensions Repository.

  • Improves rules to set the default parent class for stub controls authored in the support framework
  • Improves the analytics reporting script template
  • Improves the Common Dialog migration rules
  • Improves the MS Word to Interop rules
  • Improves the Tab Dialog (TabCtl32.ocx) rules

gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in during project work. Learn more about gmRTLhere.

  • Improved Generic Collections OrderedDictionary.InsertBefore method
  • Improves App Class Implementation to be instance based
  • Improves Error Handling to Exception Handling compatibility support
  • Improves String to Date Conversion
  • Improves CreateObject logic to get along with System Enterprise Services
  • Adds ControlHelper.KeyOfValue to assist with migrating Control.Index
  • Removes unnecessary using statements

Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate the various upgrade features. The samples upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the Sampleshere.

Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can findall of the gmStudio FAQs on the Great Migrations portal.The following “Support Statement” articles were added or updated since the last product update:

  • Updates Support Statement: Steps for Developing an ASP Site Upgrade
  • Adds Support Statement: Building gmStudio Extensions using gmAPI and .NET

gmStudio Release News: Tuesday, 17-Sept-2024

gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or VB .NET ). Based on feedback from our clients and real-world modernization projects, we continuously improve gmBasic so it will help developers more easily produce cleaner, more correct upgrade results. This distribution,Version 50.05, has several important enhancements.

  • Improves the Translator as a Service (TaaS) capabilities enabling developers to build and integrate their own custom upgrade features
  • Adds MoveToTop migration for moving nested local variable declarations to the top of enclosing method
  • Improves logic that infers array order (i.e., 1D, 2D, etc)
  • Improves handling optional arguments for all methods in libraries having ImplicitByref=on
  • Improves SharedFiles consolidation for Forms other complex scenarios
  • Improves type inference for ControlArray elements
  • Improves FixType for variants containing ControlArrays
  • Improves support for conditional compilation
  • Improves support for GoSub
  • Improves support for Enum entries initialized with VB6 functions
  • Improves support for array declarations dimensioned with enum entries
  • Improves support for constants initialized by other constants
  • Improves support for VB6’s archaic file IO formatting
  • Improves translating Redim Preserve for 2D arrays
  • Improves translating code using variables and arrays of type Byte

gmStudio: Upgrade Solution Development Environment

Section titled “gmStudio: Upgrade Solution Development Environment”

Powered by gmBasic, gmStudio is a platform for analyzing code and developing custom VB6/ASP/COM to .NET upgrade solutions. We are continuously adding functionality to gmStudio and making it easier to use. This distribution includes several enhancements:

  • Adds option to use Standard Search terms for Source Scan on the Reporting control panel
  • Adds Semantic Declarations Report to the Reports menu
  • Adds option to use a user-defined VS Solution File Generator
  • Improves VS Solution File Generator to allow more flexible format and structure of GenerateSolution.txt files
  • Improves transition to Reporting-Only mode when Trial license is not valid
  • Improves updating .NET Build status for custom tasks
  • Improves ScriptRules error reporting

gmAPI: a .NET API for Developing Advanced Upgrade Solutions

Section titled “gmAPI: a .NET API for Developing Advanced Upgrade Solutions”

gmAPI is a .NET API for automating our upgrade engine and accessing the semantic models produced by our unique linguistic compilation technology. gmAPI also includes classes for managing complex upgrade rules and integrating external migration tools with gmStudio. We maintain and improve gmAPI and related components to keep them in sync with the platform and add new features.

In this release we introduce an innovative approach for gmAPI integration. The new approach allows .NET developers to define custom features and activate them with user-defined statements in translation scripts. When detecting a user-defined statement, gmBasic will delegate processing to the designated extension DLL. Extension DLLs may use .NET code and gmAPI to automate services that access information in the semantic translation model. The user code may inspect and alter the information model, edit source and generated code, and integrate external information and processes. The new approach seamlessly extends gmBasic making it easier to use custom processing with gmStudio and it also allows much easier debugging extension code in Visual Studio.

We updated many of gmStudio’s advanced features to use the new approach.

  • Shared Files Reporting and Consolidation (gmPL_gmSharedFiles.dll)
  • Custom Coding Style Transformations (gmPL_gmCodeStyle.dll).
  • VB6 to WPF Migration (gmPL_WpfSubSystem.dll)
  • Global Support Framework Generation (gmPL_gmGlobalStubs.dll).
  • Global Analysis and Reporting (gmPL_gmGlobal.dll)
  • Advanced Metrics Reporting (gmPL_Search.dll)

The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advance reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these advanced reporting services to keep them in sync with the model schema and add new features. See Semantic Reports for more information.
In this release, gmMetrics.exe has been replaced by gmPL_Search.dll. gmBasic.exe automatically engages the services of gmPL_Search.dll to handle advanced reporting commands in gmPL scripts.

  • Adds the Semantic Declarations Report; currently this report provides details on Implements statements in the source code

gmStudio ships with a collection of sample upgrade rules that can be used to add custom features to your upgrade solution. These XML documents and gmSL scripts are distributed as source that you may modify to fit your unique requirements. The sample rules were updated to reflect the latest product improvements and conventions. See also additions and changes in gmStudio Extensions Repository.

  • Improves rules to migrate the Windows Common Controls to WinForms controls

gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in during project work. Learn more about gmRTL here.

Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate the various upgrade features. The samples upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the Samples here.

  • Updates all Samples to target VS2022 and Framework V4.8.1
  • Updates WPF Samples to use gmPL_WpfSubSystem.dll rather than gmPL_WpfSubSystem.exe
  • Updates FileExplorer sample to demonstrate additional upgrade requirements and use the latest API mapping rules

Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can find all of the gmStudio FAQs on the Great Migrations portal. The following “Support Statement” articles were added or updated since the last product update:

  • Adds Support Statement: Overcome the Limits of AI for Large Scale Software Modernization
  • Adds Support Statement: Partial Translations
  • Updates Support Statement: gmSL to move a variable declaration
  • Updates Support Statement: Override a routine in authortext.gmsl
  • Updates Support Statement: Stub Replacement

gmStudio Release News: Monday, 22-April-2024

gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or http://VB.NET ). Based on feedback from our clients and real-world modernization projects, we continuously improve gmBasic so it will help developers more easily produce cleaner, more correct upgrade results. This distribution, Version 40.68, focused on enhancing some of the gmAPI-powered utilities that ship with gmStudio:

In addition, it includes many enhancements in general translation cabapilities; for example:

  • Improves Ole Control layout properties to use Twips to Pixels adjustments
  • Improves handling DefLng and related DefType statements
  • Improves migrating of PropertyBag Color Properties
  • Improves the Support Framework generation feature
  • Improves ArrayToValue.csh code should use index 0
  • Improves Control.CausesValidation property and Validate Event
  • Improves SavePicture migration
  • Improves Reauthoring overloaded methods
  • Improves record of edits, errors, and warnings in translation log
  • Improves migration of COM controls
  • Improves migration of array assignments
  • Improves default framework to be v4.8.1 for VS2022

gmStudio: Upgrade Solution Development Environment

Section titled “gmStudio: Upgrade Solution Development Environment”

Powered by gmBasic, gmStudio is a platform for analyzing code and developing custom VB6/ASP/COM to .NET upgrade solutions. We are continuously adding functionality to gmStudio and making it easier to use. This distribution includes several enhancements:

  • Adds Edit ScriptRules File operation to References context menu
  • Adds Compare Files operation to Search Results context menu
  • Adds support for matching and reporting XPath locations when searching XML files
  • Improves batch processing to rebuild the VB6 project associated with an upgrade task
  • Improves All Logs Report to restrict results to selected project task(s)
  • Improves file filter behavior on Configuration form
  • Improves .NET Build report operation to also update NetBlds and NetSize fields in the task list
  • Improves global support framework generation script template
  • Improves default User Commands Batch processing script template
  • Improves the set of default scan patterns used for language compatibility reporting
  • Changes the default VS Version for new projects to VS2022

gmAPI: a .NET API for Developing Advanced Upgrade Solutions

Section titled “gmAPI: a .NET API for Developing Advanced Upgrade Solutions”

Powered by gmBasic, gmAPI is a .NET API for automating our upgrade engine and accessing the semantic models produced by our unique linguistic compilation technology. gmAPI also includes classes for managing complex upgrade rules and integrating with gmStudio. gmAPI is used to implement special purpose utilities in the gmStudio distribution and is updated to improve these utilities and to follow the latest conventions of the gmBasic platform.

gmMetrics: Advanced Metrics Reporting tool

Section titled “gmMetrics: Advanced Metrics Reporting tool”

gmMetrics is a tool for reporting the content of system models generated by gmBasic. This includes Symbol Tables, References Reports, Definitions Reports, and Model Audits. gmMetrics is a console application written in C# using gmAPI. We maintain and enhance gmMetrics to keep it in sync with the model schema and to improve the reports.

gmStudio ships with a collection of sample upgrade rules that can be used to add custom features to your upgrade solution. These XML documents and gmSL scripts are distributed as source that you may modify to fit your unique requirements. The sample rules were updated to reflect the latest product improvements and conventions. See also additions and changes ingmStudio Extensions Repository.

  • Adds example metalang rules to migrate PictureBox to gmRTL.GUI.PictureBox
  • Improves StubBaseClass rules in Environment.std.xml
  • Improves rules to migrate MSGrid.Grid to WinForms
  • Improves rules to migrate various Windows Common Controls to WinForms controls
  • Improves rules to migrate Scripting Runtime to http://System.IO
  • Improves rules to migrate TabDlg.SSTab runtime to WinForms.TabControl
  • Improves rules to migrate various Threed Controls to WinForms controls

gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in the course of project work. Learn more about gmRTLhere.

  • Improves support for ComboBox.Clear
  • Improves support for Array.Copy
  • Improves File System List Controls
  • Adds Ole Control

Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate the various upgrade features. The samples upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the Sampleshere.

  • Updates all Samples to target VS2022 and Framework V4.8.1

Great Migrations publishes FAQ articles and other information to help teams learning and using gmStudio. You can findall of the gmStudio FAQs on the Great Migrations portal.The following “Support Statement” articles were added or updated since the last product update:

  • Adds Support Statement: How many programmers?
  • Updates Support Statement: Consolidating Shared Code Files
  • Updates Support Statement: gmStudio Licenses