gmStudio Release News: Tuesday, 8-April-2025

gmStudio Release News: Tuesday, 8-April-2025

gmBasic: Upgrade Engine

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

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

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

Advanced Metrics Reporting

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 Extensions

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 System.IO (Scrrun.dll.SystemIO.Refactor.xml)

  • Improves the migration of TabDialog to WinForms (TABCTL32.OCX.Wrapper.Refactor.xml)

gmRTL: Great Migrations Runtime Library

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

Sample Upgrade Solutions

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.

gmStudio FAQs

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