Blog

Blog

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.

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 includes general improvements needed to produce build-complete C# code for a Construction ERP product. This system is 31 inter-related VB6 project components containing 820K LOC organized into 1,125 code files and supported by 46 external COM libraries. This distribution, Version 40.25, includes several enhancements:

  • Improves handling the default member operator, '!'
  • Improves handling inferring implicit references to default members
  • Improves handling of logic using ControlArrays
  • Improves handling recognizing references to unqualified global enumeration entries
  • Improves handling numeric literals using exponential notation
  • Improves handling of numeric values using hexadecimal notation in IDL to IDF
  • Improves parsing ASP attribute values containing complex VBScript logic
  • Improves migration of a local method to a custom call pattern
  • Improves migration of VBP information to AssemblyInfo content

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 logic that maintains the Workspace runtime folder
  • Improves performance of .NET Build Log Report and the associated listing in the UI
  • Improves IDL/IDF handling of const = Infinity
  • Improves spawning a process without console logging
  • Improves ScriptRule command to allow script variables in the id attribute

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.

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.

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 MSCAL.ocx.WinForms.Refactor.xml
  • Improves GM.MSCAL.OCX.xml
  • Improves mscomctl.ocx.WinForms.Transform.gmsl
  • Improves scrrun.dll.Transform.gmsl
  • Improves StubControlBaseClass.Rules.xml
  • Improves StubControlBaseClass.xml
  • Improves wpfSubsystem.gmsl

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.

  • Improves gmRTL.GUI.ControlHelper.GetDrawStyle/SetDrawStyle.style

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.

I just had a customer ask me about the future of COM support on Windows.  Here is how I responded



Someone mentioned they had heard the VB6 runtime will not be supported beyond Windows10 (2025?).  I could not find any official word on that.  But I know there is no support statement for VB6 on Windows 11 -- but that is not an official Windows release yet, so...  

One thing: COM is a typically 32-bit technology and special steps are needed to work on 64-bit.  On 64bit, which is what most Windows installations are running any more, COM must run in a 32-bit emulation.  Maybe you have noticed VB6 COM references need to be to files in the SysWOW64 folder, not the System32 folder... 

Bottom line, VB6 and COM may be officially supported by Microsoft, but they are not mainstream anymore.  As time goes on, you are more likely to run into difficult issues with them; you will find yourself in troubled waters, in a boat by yourself without a paddle... And more importantly, all VB6 programmers will eventually leave the labor pool.  Organizations still running VB6 will have no one to go to for help when they have technical problems.  Organizations may choose to bear that risk and continue to put out VB6/COM compatibility fires as they come up, or they can upgrade their systems and join the much larger community of .NET/C# developers on a vital, well-supported platform. 

To give you an idea about the level of interest in VB6 vs C# here are some relevant metrics:


Google Search (June 2021)

Search StringResults
"VB6 Programming"14,500
"C# Programming"2,270,000
"VB.NET Programming"175,000


GitHub (Jan 2022)



Here are some details on VB6 support from Microsoft.  
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy

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 includes a number of improvements providing special features that are helpful for real-world system modernization projects. This distribution, Version 40.18, includes several enhancements:

  • Completes the transition to gmRTL conventions for the runtime support framework
  • Adds support for migrating project metadata from VBPs (Title, Description, etc.) to attributes in AssemblyInfo files
  • Adds support for property status="Out+static" to author static readonly properties
  • Adds support for PreEdit_VBS and PostEdit_VBS operations for translations requiring the VBScript to JavaScript feature
  • Adds support for triggering a using/Imports statement for namespaces containing extension methods
  • Improves migration of Mid function when used on Left-Hand side of an assignment
  • Improves migration of CheckBoxConstants Enumeration
  • Improves migration of PropertyBag.Contents property
  • Improves migration of code using ActiveControl property
  • Improves migration of optional arguments with DeleteSetting function
  • Improves migration of optional arguments with Format function
  • Improves migration of properties having both Let and Set routines
  • Improves migration of large JPG images from FRX files to RESX files
  • Improves migration of same-named #includes and Pages in a folder
  • Improves migration of functions using GoSub statements
  • Improves migration of On Error Goto to try/catch
  • Improves migration of VB.Shape operations to use a gmRTL.GUI.ShapeControl class
  • Improves migration of VB.App operations to use gmRTL.Core.App class
  • Improves migration of comments longer than 512 characters

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 Side-By-Side Viewer when migrating ASP with client-side VBScript to ASP with client-side JavaScript
  • Adds feature to AutoSelect the Standard Assessment reports at the click of a button
  • Adds gmSharedFile.exe to the installation allowing the new approach to shared files consolidation
  • Improves ScriptRule transformation and logging conventions
  • Improves documentation and usage of the ScriptRule/Foreach feature
  • Corrects the Search/Replace feature to allow successive runs without content duplication

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.

  • Adds properties to the Project class allowing access to VBP metadata (Title, Description, etc.)

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.

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.

  • Upgrades the gmStudio Extension files to use gmRTL conventions

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.

  • Completes the transition to gmRTL conventions for runtime support framework
  • Adds a gmRTL.GUI.ShapeControl control class to emulate VB.Shape
  • Adds a gmRTL.Core.App class to emulate VB.App

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.

  • Updates all samples to work with latest conventions and the gmRTL runtime support assembly

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 includes a number of improvements providing special features that are helpful for real-world system modernization projects. This distribution, Version 40.14, includes several enhancements:

  • Improves the stub framework generation feature improving its speed, precision, and flexibility and setting the stage for stubbing out a better organized runtime library framework (gmRTL)
  • Improves support for generating and using a stub framework that uses extension methods in multiple namespaces
  • Improves ASP processing to allow up to 128 #include directives in a single page
  • Improves Select-Case migration to allow up to 2048 Case branches
  • Improves behavior of ComputeConditional=Clean to completely remove inactive code from generated results
  • Improves handling and capacity of local code storage (i.e., the number of operations in a single subroutine or ASP page is limited only by available memory)
  • Improves support for rewriting client-side VBScript to JavaScript in ASP to ASP.NET translations
  • Corrects name collisions in ASP translations for sites having same-named files (e.g. file.asp and file.inc in the same folder)

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 WorkFolder Script Variable (e.g., \...\proj\log)
  • Adds logic to automatically create and use a project-specific UserCmd.cmd file if one is not present when the user tries to edit the file
  • Adds logic to automatically create and use a project specific Search Terms-List/Report-Template file when the user tries to edit the file
  • Adds support for displaying corresponding VBScript (*.vbs) source and JavaScript (*.jvs) translations in the SideBySide viewer
  • Adds support for reporting pre-processed code to a different folder (AuditSource Utility Report)
  • Adds support for restricting gmMetrics Report to the WebProjectFile when reporting an ASP site translation
  • Adds support for setting the Encoding/CharacterSet used by gmStudio
  • Adds the option to display a comparison of System Default and Project-Specific folders
  • Improves readability of Translation Log Report
  • Improves default Visual Studio IDE to use VS2019
  • Improves error checking and reporting for deployment operations
  • Improves license management when operating in Reporting-Only mode
  • Improves the Custom Search folder picker to allow selecting any file path
  • Improves usability of the License Request form
  • Improves usability of the New Project Wizard Options form
  • Improves usability of the User Defaults form (auto set Goto Command Line when selected editor is Notepad++)
  • Improves site script created by the Project Wizard for an ASP upgrade project
  • Corrects problem with SaveAs not opening the newly saved project file

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.

  • Adds the SupportLibraries field to the FileInfo structure indicating the list of SupportLibraries required to support extension methods in that file
  • Improves support for using a custom metalanguage vb7lang.vbi during gmAPI startup
  • Improves the WPFSubSystem utility to allow migrating to gmRTL

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. This distribution includes several enhancements:

  • Adds the AuditSource Utility Report to generate a Pre-Processed version of source codes; e.g., a pre-edited code, or a non-conditional code from a conditional code
  • Improves the Model Audits to report the SupportLibraries field for each file indicating the list of SupportLibraries needed for the extension methods in that file

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 documentation in sample GlobalIncludes.xml script

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.

  • Adds gmRTL.Core to standard distribution

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.

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 includes the general improvements needed to produce build-complete C# code for a Courier Management System. This application includes 5 VB6 Dlls coded as 300K LOC of VB6 and over 150 ASP pages containing 40K LOC or markup and over 100K LOC of client-side VBScript. This distribution, Version 40.09, includes several enhancements:

  • Improves support for rewriting client-side VBScript to JavaScript in ASP to ASP.NET translations
  • Improves support for rewriting stand-alone VBScript files as JavaScript files with the VBSTranslate command
  • Improves GenericCollections feature
  • Improves support for migrating Scripting.Dictionary in ASP codes
  • Improves performance of translation process (larger systems complete up to 20% faster)
  • Improves COM interface description files containing classes named "...Events"
  • Improves stub framework methods to throw NotImplemented exception
  • Improves processing Print statement with international characters
  • Continues work to allow more organization of runtime support framework

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 file name filter when viewing configuration files
  • Adds means of toggling the Ignore Task Filter from the ToolBar
  • Adds support for Create Specification Codes for ASP Upgrade projects
  • Adds Refresh content operation in the Side-by-Side Viewer
  • Adds Edit file operation in the Side-by-Side Viewer
  • Adds support for reporting client-side VBScript LOC in the Source Structure Report for ASP pages
  • Adds support for running a custom tool by specifying script/TOOL:toolpath in a tasks TScript field
  • Adds ability to prune tasks from a gmProj if not found in a list of tasks to keep
  • Improves default template translation scripts
  • Improves User Command batch command line integration
  • Improves UI feedback when Rebuilding the Metalang file
  • Improves Reference Parser to handle non-standard Object= statements
  • Improves accuracy error member reported in .NET Build Log Report
  • Improves consistency of reported time stamps; all reports to use 24h format

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 support for using a custom metalanguage vb7lang.vbi during gmAPI startup
  • Updates the ASP GlobalIncludes sample script to use the gmGlobalIncludes migration utility

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 sample UserCmd.cmd file to illustrate translation change reporting

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.

  • Improves sample batch processing scripts
  • Updates the ASP GlobalIncludes sample script to use the gmGlobalIncludes migration utility

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 includes the general improvements needed to produce build-complete C# code for a Metal Plating ERP system. This system is a single executable: 280K LOC organized into 135 code files supported by 28 COM libraries. This release also includes significant improvements to ASP processing. This distribution, Version 40.05, includes several enhancements:

  • Adds support for using OEM or ANSI File API to support international codepages
  • Adds support for user-defined NoWarn settings, Registry type="ProjectSetting" source="NoWarn"
  • Improves arrays declared with const dimensions
  • Improves ToolTip operations performed outside of declaring form
  • Improves integer to datetime conversion done in designer code
  • Improves late-bound ControlArray.LBound and ControlArray.Count
  • Improves comment-only VBScript tags in ASP
  • Improves handling same-named include files in ASP
  • Improves AfterBuild setting for ASP

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 setting the OEM/ANSI File API used by gmBasic
  • Adds support for setting the character encoding (using chcp) used when running batch tasks
  • Improves Solution Generator to use Platform=AnyCPU
  • Improves handling of file IO standardizing on UTF-8
  • Corrects exception when applying task filter to large projects (e.g. 5000+ ASP pages)

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 support for using a custom metalanguage vb7lang.vbi during gmAPI startup

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 Batch Command script for ASP deployments in sample userCmd.std.cmd
  • Improves preset for Translation Audit in sample CodeScanList.txt
  • Improves rules for ADODB migration

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 latest samples here

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 changes how the tool is extended to perform advanced upgrade analysis and transformation. This distribution, Version 40.03, includes several enhancements:

  • Improves gmSL, gmAPI, and Migration Utility frameworks for integrating custom migration and reporting rules with the Upgrade Engine. Our scripting language (gmSL) and C#-based API (gmAPI) were extended to enable a new programming model: Migration Utilities. These technologies allow "deep" code analysis and refactoring and simpler integration with gmStudio and debugging with Visual Studio.  Some of these deep migration features were implemented using the C-based gmNI (GM Native Interface) programming model. gmNI was an internal-use-only technology.  gmNI has been replaced by C#/gmAPI solutions that may be modified by upgrade teams as needed.
  • Several Migration Utilities, implemented in gmAPI/C#, are now part of the standard distribution:
    • gmCodeStyle.exe implements the custom coding style transformations
    • gmSharedFile.exe implements the shared file analysis and reporting that enables shared file consolidation
    • gmGlobalIncludes.exe implements the global analysis of #include files in an ASP and directs migrating web sites with complex #include file dependencies
    • gmWPFSubsystem.exe implements the migration of VB6 Forms layout and logic to XAML and WPF APIs

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 invoking Migration Utilities during Translation Script processing
  • Adds support for User-Command-Only tasks in a migration project simplifying the use of external tools during batch processing
  • Improves performance of COM reference analysis when setting up an ASP site, particularly in the New Project Wizard
  • Improves progress and error reporting in the UI
  • Improves handling duplicate file names in an ASP site

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.

  • Various improvements to gmAPI allowing Migration Utility approach to building gmBasic extensions
  • Various improvements to gmSL to make it more interchangeable with gmAPI

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.

  • Simplifies the gmSL scripts implementing the deep migrations for Windows Common Controls (MSCOMCTL) to WinForms

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 the WPFCalculator sample to use gmWPFSubsystem Migration Utility
  • Improves the WPFScanTool sample to use gmWPFSubsystem Migration Utility

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 Manufacturing Reporting System. This system is an ASP web site organized in 123 web page files that reference 26 #include files. The site also depends on 8 COM libraries. This distribution, Version 31.25, includes several enhancements:

  • Adds support for using BuildFile=global in ASP translations
  • Adds Migration Utility extension framework for developing custom migration rules in C# and integrating them with the Upgrade Engine
  • Improves gmSL and gmAPI API features and functions
  • Improves handling ExitDo and ExitFor particularly when occurring in a Select-Case
  • Improves handling the intrinsic Array function in a file having Option Base 1
  • Improves handling Arrays dimensioned with a forward-reference to const
  • Improves handling vbNullString
  • Improves support for migrating VBScript Intrinsic Functions in ASP translations
  • Improves support for migrating Cookies collections in ASP translations
  • Improves support for migrating ScaleMode-related GUI Properties
  • Improves CodeStyle feature by implementation using gmAPI
  • Improves Client-Side VBScript to JavaScript translation in ASP translations
  • Improves migration of variables declared with WithEvents
  • Improves metalanguage file handling to allow finding a file by standard path resolution as well as metalanguage folder resolution
  • Improves specification of ASPNET_Compiler build for ASP translations

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 option to search the analyzed model audit report
  • Adds option to report for multiple Search Reporting modes simultaneously
  • Improves logic to identify Server-Side code blocks in ASP metrics analysis
  • Improves date formatting to be standard across all reports
  • Improves member location in the Target Code Search Report (C# only)
  • Improves installer to allow launching gmStudio after install

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.

  • Adds Migration Utility approach to building gmBasic extensions
  • Improves gmBasic.Terminate to ensure all information manager storage areas are closed

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 and updates extensions following the recommended file naming conventions
  • Adds msscript.ocx.ClearScript.Refactor.xml
  • Adds over 65 extension rule files installed with the product
  • Improves WPFSubsystem.gmsl to handle nested menus better

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 all Samples to target Visual Studio 2019
  • Improves ScanTool Sample to be compatible with Windows10 (msxml6.dll changes)
  • Improves vb3DDefine Sample to use latest version of ClearScript API
  • Improves sample runtime support library to include a Shape control
  • Improves sample runtime support library to include a Line control

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

Announcing the Great Migrations FAQs

We published a collection of over 75 FAQ articles relating to our tools, techniques, and methodology. We will continue to grow and maintain this collection based on customer questions and related topics. We are happy to elaborate on these and your VB6/ASP Upgrade questions and concerns. Contact us anytime to discuss.

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 commercial ERP system. This system is a single executable: 1.2M LOC organized into 850+ code files and 22,500 methods supported by 69 COM libraries. Now that's one massive VBP. This distribution, Version 31.14, includes several enhancements:

  • Continues improvements to late-stage type inference for symbols of type Object
  • Improves support for Optional Parameters and Named arguments when Select OptionalArguments=on
  • Improves specification of ref/out argument marshaling in Interface Definition Files
  • Improves screen geometry adjustment on UI containers having ScaleMode=Pixels

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 error handling and logging for Analytics Reports
  • Improves the GlobalStubs process that generates integrated .NET projects from inter-related VB6/COM components
  • Improves Visual Studio integration by allowing for a user-specific SetEnv.cmd script in the User\AppData folder
  • Improves the Create Specification Code operation to use the application default .NET IDE setting
  • Improves performance of running external tools (e.g. MSBuild)
  • Improves the Shared File Consolidation process to allow re-hosting up to 64 shared files
  • Improves the gmStudio Visual Studio Extension (VSIX) to work with VS2019
  • Improves resolution of the .NET member name in the Build Log and Target Code Scan reports
  • Improves Analytics Reports to allow running the internal class or gmMetrics.exe (default is internal)
  • Improves UI Theme support and user error handling
  • Corrects field parameter problems with Search Template Reporting

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.

  • Improves error handling and logging in the Analytics Reports services

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.

  • Adds sample TLBINF32.DLL RefactorLibrary
  • Adds sample MSXML6.DLL RefactorLibrary
  • Improves sample MSCOMDLG32.OCX RefactorLibrary

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 ScanTool sample to use RefactorLibraries for all COM upgrades

We recently gathered up the Q&A articles we have written over the years and moved them to this location in the public section of this WIKI.  The articles cover topics ranging from general tool use, to methodology concepts and practices, to common problems and solutions.

Check it out and Contact Us or post your comments if you want additional information.  Enjoy!

I happened to notice this article Popularity Index: Classic Visual Basic Hangs In There -- Visual Studio Magazine regarding the ongoing popularity of VB6 in the world of programming. 

It's true: we do get a lot of inquiries, from all sorts of companies, who are still building and running VB6/COM apps. Most of these applications are at least 200K lines of code and a few are over a million LOC.   Despite the increasing risk of depending on VB6, these legacy systems persist as VB6 because they deliver value.  I will add that, in every case, the technical teams that maintain these VB6 applications understand they must get off VB6 sooner or later, but they struggle make the upgrade project a business priority.   In some cases, we find organizations have tried and failed to "just rewrite" their legacy systems ending up with a "partway there system" -- with some .NET around the edges and a big mass of mature VB6 functionality at the center.  The fact is that rewriting large systems requires a generous investment of vision, creativity, experience and resources.

Nevertheless, for the vast majority of these companies, moving their systems from VB6 to something else is a matter of survival.   We believe ambitious upgrade projects require a new paradigm: new tools and methods.  That is what we are building at Great Migrations.  Read through the articles on this portal and Contact us if you want to learn more.


Project Success Story: 17 VBPs, 380K LOC VB6, 33 Custom Upgrade features, 6 months

Great Migrations recently assisted a client in the migration of a large specialty insurance system from VB6 to C#. Our tools and methods dramatically accelerated the client's digital transformation initiative while lowering cost and risk. Learn more from this article and testimonial on the Great Migrations portal.

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 leading electronic medical records (EMR) product. This EMR system was both large: 1.8M LOC implementing 85,000 methods, contained in 7000 unique code files, organized by 153 inter-related VBPs, and complex: having over 4000 Implements statements, extensive interface inheritance, and heavy use of over 200 external COM/Interop libraries. This distribution, Version 31.12, includes several enhancements:

  • Improves consistency of class members that implement interface members
  • Improves accuracy of resolving and preserving interface inheritance
  • Improves support for recognizing module members qualified by the project name, the module name, or both
  • Improves support for user-defined Font properties
  • Improves GoSub refactoring to make extracted GoSub routines private
  • Improves GoSub refactoring to handle properties containing GoSubs
  • Improves recognizing and migrating abstract Control references
  • Improves migrating indexer expressions involving weakly typed collections
  • Improves migrating code using Abs in bitwise operations
  • Improves setting scope of user-defined types
  • Improves resolving naming conflicts between enums and classes
  • Improves support for migrating properties where the getter's return type differs from the setter's value type
  • Improves migrating passing a unary operation by ref
  • Improves migration of Select-Case using LCase/UCase(literal) expressions as Case arguments to switch-case (C#)
  • Improves migration of Select-Case using a type Single expression as the Select argument
  • Improves Refactor/Migrate command to allow modifying the uuid associated with a designer coclass
  • Improves low level handling of code using extended character sets
  • Improves support for ComboBox/ListBox NewIndex Property
  • Improves resolving object versus default property on LHS of an assignment
  • Improves detecting and migrating event handlers for ControlArrays that do not follow standard conventions
  • Begins major improvements to late-stage type inference for symbols of type Object in code and COM interfaces

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 Visual Studio Solution File generation
  • Improves Translation Search Results by reporting the member that contains each match (C# only)
  • Improves .NET Build Log Report by reporting the member that contains a given error (C# only)
  • Improves order of fields in .NET Build Log report
  • Adds Compare IDF Files operation from References context menu
  • Adds Compare Source Files operation from Source Metrics context menu
  • Adds Open File Location operation from References context menu
  • Adds Open File Location operation from Source Metrics context menu
  • Improves IDL Author to warn when a hidden class is skipped

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.

  • Refactor.Mscomctl.ocx.xml: Improves MSComCtlLib.ListView.SubItems migration

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.

  • Improves MSComCtlLib.ListView.SubItems migration in FileExplorer sample
  • Improves Handling of Select Case in FMStocks

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 electronic medical records application and a 500K LOC Architectural Design system. This distribution, Version 31.08, includes several enhancements:

  • Improves handling of parameterized properties
  • Improves handling of ControlArray event handlers
  • Improves recognizing references to VB6 intrinsic functions fully qualified with the VBA.Interaction module name
  • Improves storing symbol table information for identifiers declared with WithEvents
  • Improves handling of the Unload statement when used in a class module
  • Improves handling of Controls.Add operations
  • Improves performance and accuracy of type inference
  • Improves handling of mathematical expressions involving Byte and Double
  • Improves recognizing references to elements of an array of Forms
  • Improves handling of references to ControlArray.LBound
  • Adds support for migrating Control.DataMember property to MigrationSupport methods
  • Improves handling code that implicitly uses a control's default property as a Select Case argument
  • Improves handling name clashes between global Main method and Form named Main
  • Improves migration of VB6 constants to .NET Colors
  • Adds a gmSL event, EditSource, that is raised after the code is loaded and may be used to invoke custom source code pre-processing
  • Improves handling of type Byte as a small integer quantity
  • Improves handling of COM enumerations declared using typedef
  • Improves handling naming clashes between properties and enums
  • Improves handling inconsistencies in byref status of parameters in interfaces and implementors
  • Improves authoring and using cross-library inheritence relationships in interface description files
  • Improves recognizing global module members explicitly referenced as children of the VBP
  • Improves handling forward references to classes that are also migrated to interfaces
  • Improves handling changes to Font members made through Font wrapper properties
  • Improves recognizing complex types used as members of user-defined types
  • Improves handling complex enumeration members as const initializers
  • Improves logic to correct assignments of reference types to 0
  • Improves support for Collection.Remove operations
  • Improves support for initializing a Font from source type stdole.StdFont
  • Improves support for retaining strong types for polymorphic variables
  • Improves logic to correct passing arguments that are incompatible with the parameter
  • Improves Table-based reports generated from gmSL commands in gmPL scripts to use StripTrail=on
  • Improves handling comma-delimited lists of values in a Const declaration
  • Improves handling name clash between Form member and intrinsic function (e.g., Left)
  • Improves handling name clash between a user event and a global type (e.g., Timer)
  • Improves support for comparing a Single and an Enum entry
  • Improves handling variant arrays inferred to be strongly typed arrays
  • Improves handling COM APIs with class names with the same name as the containing library
  • Improves migrating On Error GoTo to try/catch
  • Improves handling unary minus with Enum entries
  • Adds support for migrating the Control.UseMaskColor property to MigrationSupport methods
  • Improves handling undeclared local variables that clash with global symbols
  • Improves handling inconsistency in events declarations in their interface and in the implementing class
  • Improves handling ambiguity of an object reference versus default property reference
  • Improves migration of calls passing a Handle argument as an IntPtr Parameter
  • Improves handling of indexed ControlArray expressions
  • Improves handling of Control.CurrentX/CurrentY properties
  • Improves support for using COM UIID when migrating CreateObject
  • Improves handling Dim statements in Select Case blocks
  • Improves migration of CommandButton.Default to Form.AcceptButton
  • Improves migration of Integer quantities to .NET Colors
  • Improves handling of idiomatic VB6 test for empty array using (Not Array)
  • Improves migration of numeric constants to user-defined enumeration entries
  • Improves handling calls passing weakly typed form argument to a strongly typed form parameter
  • Improves handling forward-declared Implements relationships
  • Improves handling multi-level interface inheritance relationships
  • Improves migration of NewEnm in user-defined collections to Enumerable in .NET
  • Improves propagation of name changes made for .NET naming conventions in code
  • Corrects the metalanguage definition of InputBox to allow specifying Default as a named argument
  • Improves CodeStyle operation adding support for a AllowBlankLines feature

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 modifying Load element in translation scripts using ScriptRules
  • Adds Log-only and Script-Only options for the Translation and Deployment information
  • Improves Edit Visual Studio Solution Project List File action to generate a default file if needed
  • Adds Filter from Selection item to the Search Results Context Menu
  • Improves support for gmSL-based project tasks
  • Improves Edit Refactor Library command to use MigrateIDF to generate files starter files when applicable
  • Improves Explorer integration for creating an initial upgrade solution for a folder or vbp
  • Adds a check and displays a warning if the Visual Studio version specified in the gmproj file is not installed
  • Corrects SetEnv.cmd logic that initializes MSBuild environment for batch build processes

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 CodeStyle.std.xml adding a sample of the AllowBlankLines specification
  • Adds COMDLG32.OCX.gmSl and comdlg32.ocx.Refactor.xml for migrating Common Dialog to WinForms
  • Adds mig.MSCOMCT2.OCX.Winforms.xml for migrating Windows Common Controls 2 to WinForms
  • Adds mig.Threed20.WinForms.ocx.xml for migrating Sheridan Controls to WinForms
  • Adds MSOUTL32.ocx.Refactor.xml form migrating MS Outline Control to a WinForms TreeView-derived control

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.

  • Improves VBScan sample to use Migration Rules files rather than custom IDFs
  • Improves all samples by linking the Debug build of the MigrationSupport.dll