Blog
Skip to end of metadata
Go to start of metadata

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 an Enterprise Purchasing and Vendor Management system. This system is a single executable: 270K LOC organized into 508+ code files and 12,300 methods supported by 34 COM libraries. This distribution, Version 31.20, includes several enhancements:

  • Improves migration of Optional Arguments
  • Improves GlobalSettings processing to merge multiple registry commands for the same Source
  • Improves recognition of custom designer instances (e.g. ActiveReports)
  • Improves handling of Twips to Pixels in VB6 statements that take coordinates notation (e.g. object.Line, object.Circle, object.PSet)
  • Improves BuildOrder operation so that it also reports the full list of COM References
  • Improves COM API handling to allow up to 600 members of a coclass
  • Improves SharedFiles processing to more accurately translate references to the symbols which are migrated to an external assembly
  • Improves translation of numeric constants to the corresponding enumeration entry
  • Improves automatic removal of unused library references from projects generated with BuildFile=Global
  • Improves translation of references to the members of a GlobalMultiuse class
  • Improves translation of complex IIf calls
  • Improves translation of late bound array assignments
  • Improves translation of statements using SetScale and ScaleMode methods

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:

  • Improves support for migration project tasks controlled by a custom executable rather than a gmPL script
  • Adds support for Ctrl-C copy to clipboard from custom report results listing
  • Improves Color Coding Task List Fields (display ~INC in warning color)
  • Corrects task filtering during gmStudio batch processing
  • Adds TScript field as a script parameter placeholder
  • Improves References Report to show the referencing method for property references
  • Improves VBI Audit to display information stored for Registry commands
  • Improves VBI Audit to display information in GlobalSettings files
  • Improves .NET Build Log Reporting for custom build logs
  • Adds automatic splitter panel layout: snap to fit list of items

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 product improvements and conventions.

  • Improves error handling and logging in the Analytics Reports
  • Improves References Reporting services to show the referencing method for property references
  • Improves VBI Audit to display information stored for Registry commands
  • Improves VBI Audit to display information in GlobalSettings files
  • Adds support for printing name of Target type using the Symbol.DisplayInfo API
  • Adds a gmAPI-Based SharedFiles analysis and reporting sample
  • Improves the gmAPI-based WPF translation sample

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 Global Stubs Framework generation script
  • Adds cscalbtn.WinForms.Refactor.xml
  • Adds msado15.DataLib.Refactor.xml
  • Adds mscomct2.WinForms.gmsl
  • Adds mscomctl.MigCode.gmsl
  • Adds mscomctl.ServiceMethods.gmsl
  • Adds mscomctl.Transform.gmsl
  • Adds mscomctl.WinForms.Refactor.xml
  • Adds mshflxgd.LiteWrapper.Refactor.xml
  • Adds msrdo20.DataLib.Refactor.xml
  • Adds pvtreex.Wrapper.Refactor.xml
  • Improves GRID32.WinForms.Refactor.xml
  • Improves mig.vb7lang.xml
  • Improves migListControls.gmsl
  • Improves mscomct2.Winforms.Refactor.xml
  • Improves msdatgrd.DataGridView.Refactor.xml
  • Improves mshflxgd.Wrapper.Refactor.xml
  • Improves msscript.ClearScript.Refactor.xml
  • Improves richtx32.WinForms.Refactor.xml
  • Improves shdocvw.WinForms.Refactor.xml
  • Improves Tabctl32.Transform.gmsl
  • Improves THREED32.WinForms.Refactor.xml
  • Improves vbscript_3.SystemText.Refactor.xml
  • Improves vsflex2.WinForms.Refactor.xml

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.

  • Improves Waves sample to reflect changes in Twips to Pixels in VB6 Coordinate statements
  • Improves ScanTool sample to use RefactorLibrary files rather than custom IDF for COM upgrades
  • Improves menu handling in WPF ScanTool sample