gmStudio Release News: Tuesday, 7-January-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 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.

  • 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

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

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

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. SeeSemantic Reportsfor 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 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: Great Migrations Runtime Library

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

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 Sampleshere.

gmStudio FAQs

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