Blog
Skip to end of metadata
Go to start of metadata

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 users more easily produce cleaner and more correct results. Most recently, this work includes general improvements needed to produce build-complete C# and VB.NET code based for several enterprise systems containing over 2M LOC organized into dozens of inter-related VBPs. This major distribution, Version 40.30, includes several enhancements:

  • Adds support for specifying a base class for controls in the stub framework
  • Improves the quality of translations for systems of many inter-related VBPs
  • Improves handling numeric const values declared with type indicator character
  • Improves expression of VB File IO Operations: LOF, Seek, FileCopy
  • Improves handling of parameters declared As Any
  • Improves handling of name clashes between global symbols
  • Improves handling of PictureBox.Image.Set
  • Improves type inference for variants used as arrays
  • Improves inferring the number of dimensions for array parameters
  • Improves handling undeclared variables when archaic typing directives (e.g. DefInt) are in use
  • Improves handling Select-Case with byte compared to enum entry
  • Improves translation for integer division for VB.NET
  • Improves conversion of string to double for VB.NET
  • Improves GoSub migration to support references to local const variables
  • Improves GoSub migration when subroutines are refactored out of functions for VB.NET
  • Improves handling of comments in ASP translations
  • Improves migrating parameterized properties
  • Improves migrating enumerations in COM libraries
  • Improves migrating methods with optional arguments
  • Improves migrating Select Case Is... with Date variables
  • Improves migrating VB.Line geometry from Twips to pixels in designer code
  • Improves handling of interfaces when generating translation for a system of inter-related VBPs
  • Improves handling of custom events and event handlers when generating translation for a system of inter-related VBPs
  • Improved migration of On Error handling to try-catch

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 Reset Filter item to Toolbar Filter button
  • Adds Line Pragma (%LN%) to ScriptRule pre-processor and editor integration
  • Adds option to create a starter for a hand-coded IDF (e.g. for when IDF cannot be generated from COM)
  • Improves handling of Task List context menu hotkeys when task list does not have focus
  • Improves handling of Task Filtering hotkeys
  • Improves conventions for using custom tools with gmStudio project tasks
  • Improves logic for merging ScriptRule elements into the translation script in the order they are defined in the ScriptRules file
  • Improves user folder scan by suppressing matches in CodeScanList.txt
  • Improves Source Metrics Report to include DSX report data
  • Improves Side-by-Side Viewer to include DSX report data
  • Improves IDF generator to handle typedefs for auto properties in IDL for interop assemblies
  • Improves Title of the Side-by-Side Viewer panels
  • Improves Information Panel grid data cache/refresh behavior
  • Improves Side-by-Side viewer for use with VBScript classes
  • Improves .NET Build Log reporting performance and editor integration

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 option to generate System Metalanguage Information File Audit
  • Improves the quality of reference location reporting for ASP systems

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.

  • Adds sample Environment.std.xml to the gmStudio standard distribution
  • Adds sample rules for setting the base class for classes in the stub dependency framework

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.

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.