gmStudio Release News: Sunday, 11-December-2022

egmBasic: Upgrade Engine

gmBasic is a code transformation engine 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 developers more easily produce cleaner and more correct upgrade results. Most recently, this work includes general improvements needed to automatically produce build-complete VB.NET and C# versions of a document/workflow management system comprised of 213K LOC and of a regional government license administration system comprised of 250K LOC. This distribution, Version 40.39, includes many enhancements; for example:

  • Improves migration of strings from FRX file to Designer code
  • Improves handling naming conflicts between enums and fields
  • Improves migration of type-inferred Variant-array used with empty string
  • Improves migration of logic comparing IntPtr and zero
  • Improves migration of Load control statement with a type-inferred ControlArray
  • Improves inferring the type of Object as a strongly-typed ControlArray
  • Improves migrating optional default Date parameter values
  • Improves generation of EventArgs classes in the Stub Framework
  • Improves migration of event handlers with weakly-typed parameters
  • Improves migration of OLE_HANDLE used as a method parameter
  • Improves inference of weakly-typed parameter based on Array() argument
  • Improves migration of complex conditional expressions with both bitwise and logical operations
  • Improves handling of AlignmentConstants and control.Alignment properties
  • Improves Twips to pixels migration to a Const
  • Improves recognizing types imported from external libraries used in RefactorLibraries
  • Improves csproj and vbproj generation to follow current Visual Studio conventions
  • Improves migration of Printer.KillDoc
  • Improves recognizing the type of ControlArray elements
  • Improves handling one-line With blocks using alternate statements separator
  • Improves interpreting expressions of the form Me.frmX.Controls!name
  • Improves migrating For Each ctl in Me.Controls
  • Improves handling COM APIs where there is a name clash of the library and one of its classes (SSPlitter)
  • Improves migrating Do-While where the loop control variable is declared within the body of the loop
  • Improves migrating Select-Case using a constant Select value over different constant case values
  • Improves migrating of VB4AppearanceConstants
  • Improves handling methods calls passing a ColorConstant argument to an OLE_COLOR parameter
  • Improves migrating event handlers for ControlArrays
  • Improves migration of ControlArray used as a With block variable
  • Improves migration of conditional expressions using default property
  • Improves migration of logical calculations involving enum and bool
  • Improves migration of the Implication operator (Imp)
  • Improves migration of For Each over an enumerable COM property
  • Improves migration of Get Property return values
  • Improves comparisons involving stdole.StdPicture
  • Improves migration of Debug.Print using Tab() function
  • Improves migration of Button.Default property to AcceptButton
  • Improves migrating complex logic expression involving Long, Boolean, and bitwise operation
  • Improves handling of computations using Currency and Double
  • Improves migration of recursive functions passed as an argument in the recursive call
  • Improves using refTemp for an argument passed to object! operation.

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 Visual Studio 2022 support for authoring VS022 projects and integrating with VS2022 IDE
  • Adds Analytics Unused Symbols Report
  • Adds Analytics Late Calls Report
  • Improves Iceberg Report to reflect new build-path conventions
  • Improves References Report to include IdfPath and IdfType even if the IDL contains TLI warnings
  • Improves COM Reference searches and Snapshot comparison to use TaskTag-specific folder content
  • Improves Task Removal confirmation dialog to show number of tasks selected for removal

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.

  • Improves API for Unused Symbols and Late Calls Analysis

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.

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 COM replacement Scripting Runtime to System.IO rules
  • Improves ListBox/ComboBox ItemData FRX to Designer code migration script

gmRTL: Great Migrations Run Time Library

gmRTL is a sample runtime library that contains classes allowing for more readable translations. Learn more about gmRTL here.

  • Improves ListBox/ComboBox ItemData Support logic
  • Adds stub methods for Printer, Help, and Control support

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.

  • Improves the FMStocks Web Site sample for VB.NET