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