gmStudio Release News: Monday, 04-October-2021

gmBasic: Upgrade Engine

gmBasic is a code transformation tool that reads, interprets, and rewrites VB6/ASP/COM systems to one of the .NET languages (C# or VB.NET). Based on feedback from our clients and migration projects in the field, we are continuously improving gmBasic so as to help users more easily produce cleaner and more correct results. Most recently, this work includes a number of improvements providing special features that are helpful for real-world system modernization projects. This distribution, Version 40.14, includes several enhancements:

  • Improves the stub framework generation feature improving its speed, precision, and flexibility and setting the stage for stubbing out a better organized runtime library framework (gmRTL)
  • Improves support for generating and using a stub framework that uses extension methods in multiple namespaces
  • Improves ASP processing to allow up to 128 #include directives in a single page
  • Improves Select-Case migration to allow up to 2048 Case branches
  • Improves behavior of ComputeConditional=Clean to completely remove inactive code from generated results
  • Improves handling and capacity of local code storage (i.e., the number of operations in a single subroutine or ASP page is limited only by available memory)
  • Improves support for rewriting client-side VBScript to JavaScript in ASP to ASP.NET translations
  • Corrects name collisions in ASP translations for sites having same-named files (e.g. file.asp and file.inc in the same folder)

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment 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 WorkFolder Script Variable (e.g., \...\proj\log)
  • Adds logic to automatically create and use a project-specific UserCmd.cmd file if one is not present when the user tries to edit the file
  • Adds logic to automatically create and use a project specific Search Terms-List/Report-Template file when the user tries to edit the file
  • Adds support for displaying corresponding VBScript (*.vbs) source and JavaScript (*.jvs) translations in the SideBySide viewer
  • Adds support for reporting pre-processed code to a different folder (AuditSource Utility Report)
  • Adds support for restricting gmMetrics Report to the WebProjectFile when reporting an ASP site translation
  • Adds support for setting the Encoding/CharacterSet used by gmStudio
  • Adds the option to display a comparison of System Default and Project-Specific folders
  • Improves readability of Translation Log Report
  • Improves default Visual Studio IDE to use VS2019
  • Improves error checking and reporting for deployment operations
  • Improves license management when operating in Reporting-Only mode
  • Improves the Custom Search folder picker to allow selecting any file path
  • Improves usability of the License Request form
  • Improves usability of the New Project Wizard Options form
  • Improves usability of the User Defaults form (auto set Goto Command Line when selected editor is Notepad++)
  • Improves site script created by the Project Wizard for an ASP upgrade project
  • Corrects problem with SaveAs not opening the newly saved project file

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 product improvements and conventions.

  • Adds the SupportLibraries field to the FileInfo structure indicating the list of SupportLibraries required to support extension methods in that file
  • Improves support for using a custom metalanguage vb7lang.vbi during gmAPI startup
  • Improves the WPFSubSystem utility to allow migrating to gmRTL

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 produce new reports. This distribution includes several enhancements:

  • Adds the AuditSource Utility Report to generate a Pre-Processed version of source codes; e.g., a pre-edited code, or a non-conditional code from a conditional code
  • Improves the Model Audits to report the SupportLibraries field for each file indicating the list of SupportLibraries needed for the extension methods in that file

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 documentation in sample GlobalIncludes.xml script

gmRTL: Great Migrations Run Time Library

gmRTL is a sample runtime library that contains classes allowing for more readable translations. gmRTL namespace and class structure conventions will replace the legacy RTL conventions in the next gmStudio release. The old conventions (MigrationSupport, MigrationSupportUI, etc.) will be deprecated, but still available as custom migration options. Learn more about gmRTL here.

  • Adds gmRTL.Core to standard distribution

Sample Upgrade Solutions

Great Migrations publishes a number of sample VB6/ASP upgrade solutions to illustrate the capabilities of gmStudio. The sample upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the samples here.