gmStudio Release News: Sunday, 10-August-2025
Modernization Podcast Video Series
Here is our second episode in a series of Podcast videos covering software modernization topics.
This episode discusses how to go about Setting Modernization Project Scope and Budget.
Watch and listen here.
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 to help developers produce cleaner, more correct results and to successfully manage and complete large-scale upgrade projects. Most recently, this work includes changes to automatically produce a functionally correct C# translation of a three-tier enterprise application comprising 101 interrelated VBP files, referencing 1.4M total LOC in 1,566 code files, and using 29 third-party COM libraries. The distribution,Version 50.20, includes several important enhancements:
Adds the RuntimeLibrary feature for generating a custom support framework as an initial COM replacement. Previously, the support framework code was limited to mocking COM APIs; now it can mock .NET target APIs.
Adds Compile/Fix@MethodScope to allow more precise pre-editing of source prior to translation.
Adds a generalized high-performance transformation engine that improves performance and simplifies the specification of more complex forms of deep semantic translation.
Adds support for Registry@Type=Prefix to allow adding user-defined code attribute blocks before specified declarations.
Improves migration of TabIndex and TabStop for VB6 intrinsic controls.
Improves handling of currency literals.
Improves ASP translations.
Improves translation of enum expressions used as optional parameter defaults.
Improves Twips-to-Pixels adjustments for more complex UI layout calculations.
Improves indenting of code added using Fix/ReplaceFile.
Corrects unexpected use of null rather than DBNull.Value when comparing to Null.
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 continuously add functionality to gmStudio and make it easier to use. This distribution includes several enhancements:
Improves performance and relevance of results displayed for User Settings.
Improves performance and relevance of results displayed for User Content Search.
Adds MemType and LocMemb to specify the source control in Source Scan of GUI code.
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 to add new features.
Adds CodeStyle ClassDisposal to support calling Dispose on specified classes.
Adds a gmAPI implementation of the TabDlg migration.
Adds a gmAPI implementation of the MSComCtlLib migration.
Adds a gmAPI implementation of the Scripting migration.
Improves CodeStyle VerticalLists smart line breaker to optionally suppress line breaking on commas.
Improves the gmSL-to-gmAPI translator and gmSL/gmAPI unit tests.
Advanced Metrics Reporting
The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advanced reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these reporting services to keep them in sync with the model schema and to 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 code that you may modify to fit your unique requirements. The sample rules have been updated to reflect the latest product improvements and conventions. See also additions and changes in the gmStudio Extensions Repository.
CodeStyle.std.xml: adds samples for VerticalLists, ClassDisposal, RemoveNameSpaces, and RemoveUserNamespaces
mig.vb7lang.xml: adds various language operation customizations
mscomctl.ocx.WinForms.Refactor.xml: updates for treeview
Scrrun.dll.SystemIO.Refactor.xml: updates for FileSystem.GetExtensionName
Tabctl32.ocx.Wrapper.Transform.gmsl: adds comments for clarity and update calling Character.Substr
gmRTL: Great Migrations Runtime Library
gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework through real-world project work. Learn more about gmRTLhere.
Adds new classes and interfaces for improved exception handling of VB6-style exceptions.
Adds a new BusinessSettings class to manage application settings.
Adds a new framework to assist with emulating VB6's tab key navigation.
Improves CheckedListBox and ComboBoxEx item selection and state management.
Improves the ControlHelper class with new methods for managing control properties.
Improves registry management, logging.
Sample Upgrade Solutions
Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate various upgrade features. The sample upgrade solutions and results have been 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:
Fix Statement Reference: added details regarding the new MethodScope attribute.
Registry Statement Reference: added details regarding the new type="Prefix" option.
Translation Mythbusters Article: updated discussion on strategic objectives.
Upgrade Assessment Instructions Article: added details regarding use of Trial with large code bases and stressed the importance of gathering COM information/files.