gmStudio Release News: Thursday, 27-February-2020

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 included the general improvements needed to produce build-complete C# code for a 1.8M LOC electonic medical records application and improvements for the migration of error handling . This distribution, Version 31.04, includes several enhancements:

  • Improves the error handling migration of methods that used On Error GoTo, GoTo, and Resume, etc. to methods that use try-catch
  • Improves resolving ambiguity due to a const/class naming clash
  • Improves support for array arguments to event handlers
  • Improves support for enum properties assigned to an undefined numeric quanity in the VB6 designer code
  • Improves support for stubbed Color properties
  • Improves support for stubbed IntPtr properties
  • Improves support for cases of weakly typed symbols being used in index expressions
  • Improves support for new operations on classes also used as implemented interface
  • Improves support for COM classes that have names clashes in their interfaces
  • Improves support for references to COM constants
  • Improves support for optional parameters to reference type with a default of 0
  • Improves support for IIf used with reference types
  • Improves support for recursive interface methods
  • Improves support for methods declared with UserControl parameters
  • Improves support for COM event handlers that return a non-void type (C#)
  • Improves support for recognizing references to COM indexers
  • Corrects an issue with the GenericCollections upgrade
  • Corrects an issue with complex conditional expressions of functions with enumeration parameters
  • Improves the CodeStyle Feature adding support for limiting consecutive blank lines in generated code
  • Improves support for recognizing members of derived class overriding members of base class
  • Improves migration of Const symbols to static readonly symbols when required
  • Improves handling of statement separators in Select-Case statements
  • Improves handling parameterized properties

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 support for VS2019 integration
  • Adds open with command prompt from gmStudio View Menu when using Control-Click
  • Adds ScriptRule activity reporting to Translation Log
  • Improves Peek Reporting mode to display variable lines above/below matching record
  • Improves Batch Control form to allow setting session log listing max lines
  • Improves RESX Folder conventions to use SrcName rather than MigName-SrcName
  • Improves Migration Project Name validation
  • Adds support for viewing scripts separate from logs in the information panel

gmslAPI: a .NET API for Developing Advanced Upgrade Solutions

Powered by gmBasic, gmslAPI is a .NET API for automating our upgrade engine and accessing the semantic models produced by our unique linguistic compilation technology. gmslAPI also includes classes for managing complex upgrade rules and integrating with gmStudio. This API was updated to reflect the latest product improvements and conventions.

Sample Upgrade Rules

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 Tab Control Migration to preserve zOrder of contained controls
  • Improves Tab Control Migration to set SizeMode to account base on Style if needed
  • Adds sample for vsFlexLib.vsFlexArray migration to WinForms.DataGridView

Sample Upgrade Solutions

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

  • Adds a new Sample, VBScan, a VB6 parser/reporter that also illustrates upgrading the Microsoft Outline Control to WinForms Treeview-derived control
  • Updates all Samples to target Visual Studio 2017 by default