Blog

  • 2023
  • 2022
  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013

Blog

gmBasic: Upgrade Engine

gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or VB.NET). Based on feedback from our clients and real-world modernization projects, we continuously improve gmBasic so it will help developers more easily produce cleaner, more correct upgrade results. Most recently, this work includes general improvements needed to automatically produce a build-complete C# version several systems:

  • An Elector Roll Management System system comprised of 108 inter-related VBP files referencing 1.4M total LOC in 1,566 code files and using 49 COM libraries
  • A Collaboration and Document Management Portal product comprised of 303 ASP pages and 380 #includes containing 75K unique LOC server-side logic and 45K ULOC markup.
  • An ERP for the Sleep Products Industry comprised of 1 VBP referencing 445K LOC in 459 files and using 40 COM libraries

This distribution, Version 40.59, includes many enhancements; for example:

  • Updates distribution to use 64-bit build for all system binaries
  • Improves name conflict resolution
  • Improves array type and rank inference
  • Improves type inference
  • Improves handling large numeric quantities in the form property bag code
  • Improves handling calculations to adjust for Twips to Pixels
  • Improves handling complex date calculations
  • Improves handling calculations using Byte quantities
  • Improves handling Picture types
  • Improves handling PopupMenu
  • Improves handling file IO using Get command
  • Improves handling arrays in user-defined types
  • Improves handling Response.CodePage in ASP
  • Improves handling Collection.Ubound and Collection.Lbound for control arrays
  • Improves handling complex conditional markup in ASP
  • Improves handling complex formatting in ASP
  • Adds Select.TargetFramework to allow setting the .NET Framework at the system level

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:

  • Improves the VS Solution File Generator to allow Folders to occur multiple times
  • Improves the .NET Build Log Report to update Last Message with build results in the Task list
  • Adds Line Pragma support to ScriptRules command processor
  • Adds Language Compatibility items for the standard Source Scan Report
  • Corrects issue with validation of Migration Project name
  • Corrects issue with refresh double-loading the left-side file in the side-by-side viewer
  • Updates analytics reports to use gmMetrics executable rather than internal API

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.

  • Updates to use 64-bit builds

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 improve the reports.

  • Updates to use 64-bit builds

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 StubBaseClass rules
  • Improves GRID32.ocx to WinForms rules
  • Improves mscomct2.ocx to Winforms rules
  • Improves mscomctl.ocx to WinForms rules
  • Improves TABCTL32.OCX to Wrapper rules
  • Improves THREED32.ocx to WinForms rules
  • Adds mig.vb7lang_PictureBox.xml to demonstrate migrating to a custom PictureBox

gmRTL: Great Migrations Runtime Library

gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in the course of project work. Learn more about gmRTL here.

  • Adds GUI.ControlHelper.UIndex/LIndex to support ControlArray.Ubound/Lbound
  • Adds Core.WinFormsExtensions.Move(Control)
  • Improves Core.FormatHelper.DateTime to strings
  • Improves Core.ConversionHelper.DateTime.toStr
  • Improves Core.ConversionHelper.toDateTime for TimeSpan
  • Improves Core.FileSystemHelper.Dir operation
  • Improves GUI.Frame border behavior
  • Improves WPF.DirListBox to use generic event handlers
  • Improves WPF.DriveListBox to use generic event handlers

Sample Upgrade Solutions

Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate the various upgrade features. The samples upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the Samples here.

  • Updates all Samples to target VS2022 and Framework V4.8

gmStudio FAQs

Great Migrations publishes FAQ articles and other information to help teams learning and using gmStudio. You can find all of the gmStudio FAQs on the Great Migrations portal. The followiug "Support Statement" articles were added or updated since the last product update:

  • Adds Support Statement: Surface Pattern Syntax
  • Adds Support Statement: What does migStatus="external" stand for
  • Updates Support Statement: Generating a Global Stub Framework

gmBasic: Upgrade Engine

gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or VB.NET). Based on feedback from our clients and real-world modernization projects, we continuously improve gmBasic so it will help developers more easily produce cleaner, more correct upgrade results. Most recently, this work includes general improvements needed to automatically produce a build-complete C# version of a Quality Control Platform system comprised of 500K VB6 LOC organized into 639 code files and using 15 COM libraries. This distribution, Version 40.53, includes many enhancements; for example:

  • Adds Migrate@Default for modifying the default member for COM classes
  • Adds migration of LockRange and UnlockRange
  • Adds support for DefObj statement
  • Corrects problem with event hookups in designer code; adds SpecializedHookup=on migration attribute for events (See this Support Statement)
  • Increases limit for storing User-Defined event information
  • Improves consistency between interfaces and implementing classes
  • Improves translation of bitwise logic using Color quantities
  • Improves handling FormShowConstants enum
  • Improves handling vbTriState enum
  • Improves resolution of User-Defined-Types defined in multiple places
  • Improves resolution of enums defined in multiple places
  • Improves migration of local const Color
  • Improves migration of mixed type IIf
  • Improves migration of Menu.WindowList
  • Improves migration of array properties used with indexed expressions
  • Improves migration of variables typed using type indicator characters
  • Improves handling ByRef parameters in user-defined events
  • Improves handling of the ! operator
  • Improves handling of const initialized to an enum
  • Improves handling is operator used with Controls and Components
  • Improves handling of CDate(Empty)

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:

  • Improves Side-By-Side Viewer to use the target language of the selected task when selecting for the translated file
  • Improves Source Search unique files criteria to be case-insensitive
  • Improves adds Reference satus to the Metrics Summary Report
  • Corrects member name shown in Source Search report for ASP code
  • Improves error reporting for RESX data generation process

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 improve the 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.

  • Improves Environment.std.xml StubBaseClass rules
  • Adds ListControls_ItemData.gmsl
  • Improves VB6 language translation overrides sample (mig.vb7lang.xml)
  • Improves Windows Common Controls (mscomct2.ocx) rules
  • Improves Windows Common Controls (mscomctl.ocx) rules
  • Improves MSOutline Control (msoutl32.ocx) rules
  • Improves RichTextBox (richtx32.ocx) rules
  • Improves Scripting (scrrun.dll) rules
  • Improves Standard.Rules.xml sample

gmRTL: Great Migrations Runtime Library

gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in the course of project work. Learn more about gmRTL here.

Sample Upgrade Solutions

Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate the various upgrade features. The samples upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the Samples here.

  • Improves FileExplorer sample to demonstrate use of SpecializedHookup="on"
  • Improves VBScan sample to demonstrate use of SpecializedHookup="on"

gmStudio FAQs

Great Migrations publishes FAQ articles and other information to help teams learning and using gmStudio. You can find all of the gmStudio FAQs on the Great Migrations portal. The followiug "Support Statement" articles were added or updated since the last product update:

  • Using gmSL to determine if an optional argument was omitted
  • ListView.Add example of using gmSL to map COM to .NET
  • Generating a Global Stub Framework
  • How does gmStudio run builds?
  • Unused Symbol Analysis and Reporting
  • Removing Code
  • Translation Challenges
  • Setting Scope for an ASP Site Upgrade
  • MigrationSupport (gmRTL) Source Code
  • What does migStatus="external" stand for

gmBasic: Upgrade Engine

gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or VB.NET). Based on feedback from our clients and real-world modernization project work, we continuously improve gmBasic so it will help developers more easily produce cleaner and more correct upgrade results. Most recently, this work includes general improvements needed to automatically produce a build-complete C# version of a three-tier Electoral Commission Role Management System comprised of 1.2M VB6 LOC organized into 89 VBPs using over 30 COM APIs and controls . This distribution, Version 40.49, includes enhancements; for example:

  • Improves migration of user-defined events to use sender/EventArgs conventions
  • Improves migration of multi-type code using conditional typing based on the typeof operator
  • Adds more type inference for symbols declared as Object
  • Adds Refactor/Remove for Events
  • Improves GoSub refactoring
  • Begins work on a 64bit distribution (coming soon)

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:

  • Improves Net Build Log Report to update last message field for each Task
  • Improve License handling when ASP LOC=0
  • Improves Specification Code Generator set UserCmds.cmd file to writable
  • Improves VisualSolution Generator to support nested folders
  • Improves parsing .NET Build Log when parallel build is in effect
  • Improves member location reported by Target Code Scan and .NET Build Log Reports (VB.NET)
  • Improves search by preventing accidentally searching for blanks

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.

  • Improves implementation of the custom CodeStyle capability to use new XML-driven gmAPI conventions
  • Improves implementation of the WPF migration capability to use new XML-driven gmAPI 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 improve the 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.

  • Improves COM replacement rules for Scripting Runtime to System.IO
  • Improves COM replacement rules for CommonDialog to WinForms common Dialog controls
  • Improves COM replacement rules for Windows Common Controls to WinForms
  • Improves Sample rules for custom VB6 Language replacements

gmRTL: Great Migrations Runtime Library

gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in the course of project work. Learn more about gmRTL here.

  • Updated to use Framework V4.7.2

Sample Upgrade Solutions

Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate the various upgrade features. The samples upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the Samples here.

  • Improves WPF Samples to user the new XML-Driven custom upgrade processor conventions rather than the deprecated GM Migration Utility approach.

gmStudio FAQs

Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can find all of the gmStudio FAQs on the Great Migrations portal. The followiug articles were added or updated since the last product update:

  • Support Statement: Removing a container control (e.g. vsElastic )
  • Support Statement: Unused Symbol Analysis and Reporting
  • Support Statement: Improving Type Inference for MSHTML
  • Support Statement: Sample Migration of CommonDialog to Winforms

gmBasic: Upgrade Engine

gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or VB.NET). Based on feedback from our clients and real-world modernization project work, we continuously improve gmBasic so it will help developers more easily produce cleaner and more correct upgrade results. This distribution, Version 40.44, includes many enhancements; for example:

  • Improves adjustment of Twips to Pixels in complex calculations
  • Improves RootNameSpace in C# project files
  • Improves the gmSL runtime to allow Cross-Class function calls
  • Improves Conditional Stubout for VBN
  • Improves GenericCollections migration

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 Support for GMEXEC:Script Convention for running custom GMAPI executables
  • Adds Edit/Find to the file content display box on the Settings form
  • Improves Target Code Scan Report to correctly report member rather than statement label
  • Improves performance of %ReferenceList% detokenization
  • Improves Translation Log Report for XMLERRORs and EMRROOM errors
  • Improves managing System Metalang Files from settings screen
  • Improves editing CodeSearchList and SearchTemplate
  • Improves naming convention for script templates created
  • Improves default translation scripts to use OptionalArguments=On
  • Improves hot-key handling on Task Attributes Dialog
  • Improves default button behavior on Filter Dialog
  • Improves COM dependency analysis for ASP code
  • Improves Reference information panel and Analytics Report error handling

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.

  • Adds new XML-driven execution model for custom upgrade engines developed with gmAPI

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.

  • Improves COM replacement rules for Scripting Runtime to System.IO
  • Improves COM replacement rules for CommonDialog to WinForms common Dialog controls
  • Improves COM replacement rules for Windows Common Controls to WinForms

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.

  • Various additions and refactoring
  • Adjustments to support changes in sequence of gmRTL processing

Sample Upgrade Solutions

Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate the various upgrade features. The samples upgrade solutions and results were updated to reflect the latest product improvements and conventions. Learn about the Samples here.

  • Improves samples to use OptionalArguments=on

gmStudio FAQs

Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. Several new articles where posted since the last product update. You can find all of the gmStudio FAQs on the Great Migrations portal.  Please feel free to contact us with questions anytime. 

New Support Statements

Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio.  You can find all of the gmStudio FAQs on the Great Migrations portal.

Please feel free to contact us with questions or ideas for ideas of other support statements anytime. 

PS. I know I really should do a blog post as part of my SOP for publishing new documentation.  I will be more diligent going forward.  


egmBasic: 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 automatically produce build-complete VB.NET and C# versions of a document/workflow management system comprised of 213K LOC and of a regional government license administration system comprised of 250K LOC. This distribution, Version 40.39, includes many enhancements; for example:

  • Improves migration of strings from FRX file to Designer code
  • Improves handling naming conflicts between enums and fields
  • Improves migration of type-inferred Variant-array used with empty string
  • Improves migration of logic comparing IntPtr and zero
  • Improves migration of Load control statement with a type-inferred ControlArray
  • Improves inferring the type of Object as a strongly-typed ControlArray
  • Improves migrating optional default Date parameter values
  • Improves generation of EventArgs classes in the Stub Framework
  • Improves migration of event handlers with weakly-typed parameters
  • Improves migration of OLE_HANDLE used as a method parameter
  • Improves inference of weakly-typed parameter based on Array() argument
  • Improves migration of complex conditional expressions with both bitwise and logical operations
  • Improves handling of AlignmentConstants and control.Alignment properties
  • Improves Twips to pixels migration to a Const
  • Improves recognizing types imported from external libraries used in RefactorLibraries
  • Improves csproj and vbproj generation to follow current Visual Studio conventions
  • Improves migration of Printer.KillDoc
  • Improves recognizing the type of ControlArray elements
  • Improves handling one-line With blocks using alternate statements separator
  • Improves interpreting expressions of the form Me.frmX.Controls!name
  • Improves migrating For Each ctl in Me.Controls
  • Improves handling COM APIs where there is a name clash of the library and one of its classes (SSPlitter)
  • Improves migrating Do-While where the loop control variable is declared within the body of the loop
  • Improves migrating Select-Case using a constant Select value over different constant case values
  • Improves migrating of VB4AppearanceConstants
  • Improves handling methods calls passing a ColorConstant argument to an OLE_COLOR parameter
  • Improves migrating event handlers for ControlArrays
  • Improves migration of ControlArray used as a With block variable
  • Improves migration of conditional expressions using default property
  • Improves migration of logical calculations involving enum and bool
  • Improves migration of the Implication operator (Imp)
  • Improves migration of For Each over an enumerable COM property
  • Improves migration of Get Property return values
  • Improves comparisons involving stdole.StdPicture
  • Improves migration of Debug.Print using Tab() function
  • Improves migration of Button.Default property to AcceptButton
  • Improves migrating complex logic expression involving Long, Boolean, and bitwise operation
  • Improves handling of computations using Currency and Double
  • Improves migration of recursive functions passed as an argument in the recursive call
  • Improves using refTemp for an argument passed to object! operation.

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 Visual Studio 2022 support for authoring VS022 projects and integrating with VS2022 IDE
  • Adds Analytics Unused Symbols Report
  • Adds Analytics Late Calls Report
  • Improves Iceberg Report to reflect new build-path conventions
  • Improves References Report to include IdfPath and IdfType even if the IDL contains TLI warnings
  • Improves COM Reference searches and Snapshot comparison to use TaskTag-specific folder content
  • Improves Task Removal confirmation dialog to show number of tasks selected for removal

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.

  • Improves API for Unused Symbols and Late Calls Analysis

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.

  • Improves COM replacement Scripting Runtime to System.IO rules
  • Improves ListBox/ComboBox ItemData FRX to Designer code migration script

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.

  • Improves ListBox/ComboBox ItemData Support logic
  • Adds stub methods for Printer, Help, and Control support

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 the FMStocks Web Site sample for VB.NET

Large mature systems often contain symbols that are no longer used. These may be methods that are no longer called or variables and data structures that are no longer referenced by active logic. These unused symbols are often referred to as "dead code, dead wood, Cruft". Dead code make a system "smell bad" and a form of technical debt, and it can be difficult to identify and risky to remove.  An Upgrade Project is an optimal time to deal with dead code because gmStudio can help you identify and remove it.  

Learn how in this Support Statement: Unused Symbol Analysis and Reporting

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.

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