gmStudio Release News: Friday, 18-August-2023

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 needed to automatically produce a build-complete C# version of a Quality Control Platform system comprised of 500K VB6 LOC organized into 639 code files and using 15 COM libraries. This distribution, Version 40.53, includes many enhancements; for example:

  • Adds Migrate@Default for modifying the default member for COM classes
  • Adds migration of LockRange and UnlockRange
  • Adds support for DefObj statement
  • Corrects problem with event hookups in designer code; adds SpecializedHookup=on migration attribute for events (See this Support Statement)
  • Increases limit for storing User-Defined event information
  • Improves consistency between interfaces and implementing classes
  • Improves translation of bitwise logic using Color quantities
  • Improves handling FormShowConstants enum
  • Improves handling vbTriState enum
  • Improves resolution of User-Defined-Types defined in multiple places
  • Improves resolution of enums defined in multiple places
  • Improves migration of local const Color
  • Improves migration of mixed type IIf
  • Improves migration of Menu.WindowList
  • Improves migration of array properties used with indexed expressions
  • Improves migration of variables typed using type indicator characters
  • Improves handling ByRef parameters in user-defined events
  • Improves handling of the ! operator
  • Improves handling of const initialized to an enum
  • Improves handling is operator used with Controls and Components
  • Improves handling of CDate(Empty)

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:

  • Improves Side-By-Side Viewer to use the target language of the selected task when selecting for the translated file
  • Improves Source Search unique files criteria to be case-insensitive
  • Improves adds Reference satus to the Metrics Summary Report
  • Corrects member name shown in Source Search report for ASP code
  • Improves error reporting for RESX data generation process

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. This API was updated to reflect the latest improvements and conventions in the gmBasic platform.

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 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 Environment.std.xml StubBaseClass rules
  • Adds ListControls_ItemData.gmsl
  • Improves VB6 language translation overrides sample (mig.vb7lang.xml)
  • Improves Windows Common Controls (mscomct2.ocx) rules
  • Improves Windows Common Controls (mscomctl.ocx) rules
  • Improves MSOutline Control (msoutl32.ocx) rules
  • Improves RichTextBox (richtx32.ocx) rules
  • Improves Scripting (scrrun.dll) rules
  • Improves Standard.Rules.xml sample

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 the course of project work. Learn more about gmRTL here.

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.

  • Improves FileExplorer sample to demonstrate use of SpecializedHookup="on"
  • Improves VBScan sample to demonstrate use of SpecializedHookup="on"

gmStudio FAQs

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

  • Using gmSL to determine if an optional argument was omitted
  • ListView.Add example of using gmSL to map COM to .NET
  • Generating a Global Stub Framework
  • How does gmStudio run builds?
  • Unused Symbol Analysis and Reporting
  • Removing Code
  • Translation Challenges
  • Setting Scope for an ASP Site Upgrade
  • MigrationSupport (gmRTL) Source Code
  • What does migStatus="external" stand for