gmStudio Release News: Monday, 10-October-2022

gmBasic: 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 produce build-complete C# code for a Retail ERP system having 1.2M LOC organized into 73 inter-related VBPs, and to produce build-complete VB.NET code for a Construction Project Management System having 800K LOC organized into 31 inter-related VBPs. The release also includes a sophisticated new utility, gmGlobal, that can automate the process of identifying dead code. This major distribution, Version 40.34, includes many enhancements; for example:

  • Improves inference of array rank when a undimensioned variant is used as an array
  • Improves migration of Object inferred as Form used with For Each
  • Improves migration of the VB6 intrinsic Input function to a Generic method
  • Improves overall correctness of results when using the Shared Files consolidation capability
  • Improves overall correctness of results when using the Optional Arguments capability
  • Improves declaration of stub controls that override Name property
  • Improves the Global Stub framework for systems that use Implements commands
  • Improves assembly references added for GlobalStubs translations
  • Improves avoiding a name clash between external class name and module field
  • Improves ability to recognize methods called like properties
  • Improves stub framework generation to allow implementing multiple interfaces (VB.NET)
  • Improves stubbing Readonly properties (VB.NET)
  • Improves handling of date literal assigned to const (VB.NET)
  • Improves handling of operations that involve a late-bound implicit default property
  • Improves the behavior of Refactor/Remove
  • Improves migration of array properties
  • Improves handling name clash between method and one of its parameters
  • Improves vbCrLf used as an optional parameter default (VB.NET)
  • Improves translation of late bound reference to a collection item
  • Improves handling of codes declaring symbols that clash with VB.NET reserved words
  • Improves handling migration of GoSub in methods declaring optional parameters
  • Improves logic to detect implicit conversions that must be made explicit (VB.NET)
  • Improves logic to make default property reference explicit for a Select Case (VB.NET)
  • Improves detecting and reporting undeclared identifiers
  • Improves initializing const symbols using an enum entry
  • Improves reference tracking to allow for Unused symbol analysis
  • Improves csproj and vbproj content to follow current Visual Studio conventions
  • Improves processing more HTML5 tags in ASP 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:

  • Changes Trial License limits; increases duration to 30 days; lowers LOC limits: VB6=5,000 LOC, ASP=2,500 LOC
  • Adds Source Member to .NET Build Log Report and Target Code Scan Report for VB.NET translation tasks
  • Adds Translation Audit as a new type of report
  • Improves IDL generator to allow reporting hidden coclasses
  • Improves Target Code Scan to report TaskTag rather than File extension in the LocType field
  • Improves Ctrl-C handling to follow control having focus
  • Improves Task-list Hot-Key handling
  • Adds Alt-G as hotkey to Generate and Open VS Solution file
  • Improves All IDF Scan to search all IDF folders
  • Corrects issue where malformed XML attributes in ScriptRules file caused gmStudio to hang or crash

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 produce new reports.

  • Adds more detailed symbol usage data to Semantic Audit Reports
  • Improves accuracy of References Report
  • Improves accuracy of Definitions Report

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 with additional StubBaseClass entries
  • Adds sample gmGlobalIncludes.gmsl and gmGlobalIncludes.xml to Global Includes analysis
  • Adds MSCAL.ocx.WinForms.Refactor.xml
  • Adds MSWORD.OLB.Interop.Refactor.xml

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.

  • Adds gmRTL.GUI.PictureBoxExtended control to support drawing graphics on a PictureBox

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.