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