gmStudio Release News: Wednesday, 20-December-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 several systems:

  • An Elector Roll Management System system comprised of 108 inter-related VBP files referencing 1.4M total LOC in 1,566 code files and using 49 COM libraries
  • A Collaboration and Document Management Portal product comprised of 303 ASP pages and 380 #includes containing 75K unique LOC server-side logic and 45K ULOC markup.
  • An ERP for the Sleep Products Industry comprised of 1 VBP referencing 445K LOC in 459 files and using 40 COM libraries

This distribution, Version 40.59, includes many enhancements; for example:

  • Updates distribution to use 64-bit build for all system binaries
  • Improves name conflict resolution
  • Improves array type and rank inference
  • Improves type inference
  • Improves handling large numeric quantities in the form property bag code
  • Improves handling calculations to adjust for Twips to Pixels
  • Improves handling complex date calculations
  • Improves handling calculations using Byte quantities
  • Improves handling Picture types
  • Improves handling PopupMenu
  • Improves handling file IO using Get command
  • Improves handling arrays in user-defined types
  • Improves handling Response.CodePage in ASP
  • Improves handling Collection.Ubound and Collection.Lbound for control arrays
  • Improves handling complex conditional markup in ASP
  • Improves handling complex formatting in ASP
  • Adds Select.TargetFramework to allow setting the .NET Framework at the system level

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 the VS Solution File Generator to allow Folders to occur multiple times
  • Improves the .NET Build Log Report to update Last Message with build results in the Task list
  • Adds Line Pragma support to ScriptRules command processor
  • Adds Language Compatibility items for the standard Source Scan Report
  • Corrects issue with validation of Migration Project name
  • Corrects issue with refresh double-loading the left-side file in the side-by-side viewer
  • Updates analytics reports to use gmMetrics executable rather than internal API

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.

  • Updates to use 64-bit builds

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.

  • Updates to use 64-bit builds

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
  • Improves GRID32.ocx to WinForms rules
  • Improves mscomct2.ocx to Winforms rules
  • Improves mscomctl.ocx to WinForms rules
  • Improves TABCTL32.OCX to Wrapper rules
  • Improves THREED32.ocx to WinForms rules
  • Adds mig.vb7lang_PictureBox.xml to demonstrate migrating to a custom PictureBox

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.

  • Adds GUI.ControlHelper.UIndex/LIndex to support ControlArray.Ubound/Lbound
  • Adds Core.WinFormsExtensions.Move(Control)
  • Improves Core.FormatHelper.DateTime to strings
  • Improves Core.ConversionHelper.DateTime.toStr
  • Improves Core.ConversionHelper.toDateTime for TimeSpan
  • Improves Core.FileSystemHelper.Dir operation
  • Improves GUI.Frame border behavior
  • Improves WPF.DirListBox to use generic event handlers
  • Improves WPF.DriveListBox to use generic event handlers

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.

  • Updates all Samples to target VS2022 and Framework V4.8

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:

  • Adds Support Statement: Surface Pattern Syntax
  • Adds Support Statement: What does migStatus="external" stand for
  • Updates Support Statement: Generating a Global Stub Framework