Blog

Blog

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

gmBasic: Upgrade Engine

gmBasic is a code transformation tool that reads, interprets, and rewrites VB6/ASP/COM systems to one of the .NET languages (C# or VB.NET). Based on feedback from our clients and migration projects in the field, we are continuously improving gmBasic so as to help users more easily produce cleaner and more correct results. Most recently this work included the general improvements needed to produce build-complete C# code for a 1.8M LOC electonic medical records application and improvements for the migration of error handling . This distribution, Version 31.04, includes several enhancements:

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

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment for analyzing code and developing custom VB6/ASP/COM to .NET upgrade solutions. We are continuously adding functionality to gmStudio and making it easier to use. This distribution includes several enhancements:

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

gmslAPI: a .NET API for Developing Advanced Upgrade Solutions

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

Sample Upgrade Rules

gmStudio ships with a collection of sample upgrade rules that can be used to add custom features to your upgrade solution. These XML documents and gmSL scripts are distributed as source that you may modify to fit your unique requirements. The sample rules were updated to reflect the latest product improvements and conventions. See also additions and changes in gmStudio Extensions Repository.

  • Improves Tab Control Migration to preserve zOrder of contained controls
  • Improves Tab Control Migration to set SizeMode to account base on Style if needed
  • Adds sample for vsFlexLib.vsFlexArray migration to WinForms.DataGridView

Sample Upgrade Solutions

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

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

The Dec-2019 Release introduces a change in how some of the samples do COM API upgrades.

In prior releases, the deep migration work in the samples was partially done by DLLs developed using our C-based API (gmNI).  gmNI is not available for typical gmStudio users, and we wanted to rework the samples using our scripting language, gmSL. In addition, prior releases of the samples used custom COM Interface Description Files (IDFs). The custom IDFs are a convenient way to map a COM API to its .NET replacement, but they have some disadvantages from a tooling and maintainability perspective. In this release, we are going to use Refactor files to specify mapping COM APIs to their .NET replacement. In some cases, the mappings also include instructions to load gmSL scripts that perform deep migration.  The gmSL scripts that are distributed as text files with the tool and the samples and they may be extended and altered by users to meet their specific upgrade needs.  Note: the COM upgrade techniques demonstrated in the samples are general capabilities that may be applied to any COM API.   Additional examples of COM upgrade rules are published on the gmStudio Extensions page. 

Deep Migration: An upgrade requiring advanced transformations such as adding or removing logic and choosing from different replacement types and coding patterns. Deep migration goes beyond the surface migrations and alterations which can be specified with refactoring attributes on various COM API elements in an IDF.

The gmNI DLLs, ScrrunMigration.dll and MscomctlMigration.dll, are no longer distributed with gmStudio. Please apply the new approach using gmSL scripts as illustrated in the latest samples. Contact Great Migrations if you require assistance.


ScanTool Sample Changes

The ScanTool sample includes several COM API replacements. One of these, Scrrun to System.IO, requires a number of deep migrations:

* Replacing FileSystemObject operations with calls to static functions
* Migrating TextStream instances and calls to one of several .NET Streams based on usage

In prior releases of the sample, the Scripting to System.IO migration was done using a custom IDF and an associated gmNI DLL: GM.scrrun.dll.xml and ScrrunMigration.dll. These migration assets were activated using the following commands in the translation script:

<Registry type="libname" source="scrrun.dll" target="GM.scrrun.dll" />
<Registry type="idfstatus" source="GM.scrrun.dll" target="migrate" />

and in the custom IDF:

<Refactor id="[GM.scrrun.dll]" dllName="ScrrunMigration.dll" event="scrrun" >

Starting with the Dec-2019 Release, we are doing the Scripting to System.IO migration with a COM Refactor IDF file and an associated gmSL script: Refactor.Scrrun.dll.xml and Transform.Scrrun.gmsl. These migration assets are activated using the following command in the translation script:

<Registry type="MigFile" source="scrrun.dll" target="Refactor.scrrun.dll" />

and in the custom Refactor IDF File:

<gmSL NameSpace="scrrun" class="Transform" Source="Transform.Scrrun.gmsl" />

This change has several advantages:

  • The Refactor IDF file contains just the rules used to map Scripting to System.IO rather than intermingling the full description of the COM API with modifications to drive the migration. We believe this change makes it easier to see and modify the mappings. The Refactor IDF file works hand in hand with the standard generated IDF file making the transition from a standard to custom translation smoother.
  • The dynamic migration is done using a gmSL script rather than a pre-compiled DLL. This makes the deep migrations open to extension and modification by gmStudio users. Note: gmSL works very precisely with low-level operations in the compiled model of the VB6/COM code. gmSL can automate very difficult transformations, but the problems and solutions are in the details.

The following files are used to direct the COM migrations for the ScanTool sample:

  • Scrrun.Refactor.xml: COM API elements adjustments for scrrun.dll to System.IO and Specialized Collections.OrderedDictionary
  • Scrrun.Transform.xml: Scrrun.Transform Class implementing transformations for various scrrun.dll API references
  • Mscomctl.Refactor.xml: COM API mapping for Windows Common Controls to WinForms Controls
  • Mscomctl.ServiceMethods.gmsl: MScomCtl.ServiceMethods class implementing service extensions that alter the processing done by the core tool at specific points in the upgrade process
  • Mscomctl.MigCode.gmsl: MScomCtl.MigCode class implementing dynamic code generation logic for MScomctl API controls
  • Mscomctl.Transform.gmsl: MScomCtl.Transform class implementing transformations for various Mscomctl API references

 Additional examples of these files and other COM upgrade rules are published on the gmStudio Extensions page. 

Other Samples

These changes also impact the FileExplorer, FMStocks, and WPFScanTool samples.


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 173K LOC statistical-process-control-reporting application and major improvements to migration rules conventions. This distribution, Version 31.00, includes several enhancements:

  • Corrects fixed-size array declarations in VB.NET.
  • Improves support for implementing COM API replacements using Migrate command files and gmSL Scripts
  • Improves migration of Property.Let statements
  • Improves migration of DisplayStyleConstants and DrawModeConstants
  • Improves migration of local references to default properties

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment for analyzing code and developing custom VB6/ASP/COM to .NET upgrade solutions. We are continuously adding functionality to gmStudio and making it easier to use. This distribution includes several enhancements:

  • Updates gmStudio with gmBasic V31.00
  • Adds support for creating generic VB6 starter codes and gmStudio projects for testing specific translation scenarios
  • Adds File/New menu as context menu to New toolbar button
  • Adds option to display Upgrade Task fields with red/yellow/green color for ERROR/WARNING/SUCCESS status
  • Adds COM IDL files as a Search Source
  • Modifies Alternate Field Layout
  • Improves highlighting Task List items
  • Improves Search Results to allow sorting of numeric columns in natural numeric order
  • Improves Visual Studio Solution File Project list to allow %UserFolder% variable in project path
  • Improves performance of pre-processing large translation scripts
  • Improves adding new tasks to a project
  • Improves Translation Log Reports
  • Improves organization of File and Help Menus
  • Improves appearance of Fonts in high DPI environments

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

  • Scrrun.Refactor.xml – Adds COM API mapping for scrrun.dll to System.IO and Specialized Collections.OrderedDictionry
  • Scrrun.Transform.xml – Adds Scrrun.Transform Class implementing transformations for various scrrun.dll API references
  • Mscomctl.Refactor.xml – Adds COM API mapping for Windows Common Controls to WinForms Controls
  • Mscomctl.Transform.gmsl – Adds MScomCtl.Transform class implementing transformations for various Mscomctl API references
  • Mscomctl.MigCode.gmsl -- Adds MScomCtl.MigCode class implementing dynamic code generation logic for MScomctl API controls
  • Mscomctl.ServiceMethods.gmsl – Adds MScomCtl.ServiceMethods class implementing service extensions that alter the processing done by the core tool at specific points in the upgrade process
  • UserCmd.std.cmd – Improves Testing logic

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.

  • FileExplorer – Adds ListView Columns Sorting example to this sample
  • FileExplorer – Adds ListView Item Selection example to this sample
  • Batch Script – Adds logic to run Analytics Definitions Reports to the sample batch script
  • Changes to using Refactor IDF files rather than Custom IDF files for deep migrations
  • Changes to using gmSL scripts rather than gmNI DLLs for deep migrations
    Learn more on this Blog Post.

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

  • Adds support for dimensioned types as collection values in the GenericCollections Migration extension
  • Adds support for migrating a boolean to an enum
  • Adds support for extending an API by adding an enumeration at the library level
  • Adds support for using Refactor/Remove with Enums and Consts symbols
  • Improves default interface description files to migrate COM short to .NET integer
  • Improves support for changing the number of arguments when migrating a method
  • Corrects issue with handling arguments containing '#' character
  • Improves handling whitespace and complex markup when upgrading ASP
  • Improves handling name collisions between the Form and a method within the same Form
  • Improves %nP Pattern Token replacement conventions
  • Improves handling to ControlArray.Ubound operations
  • Improves handling conditional expressions comparing Date and Int(Date)
  • Improves handling division expressions using Twips quantities

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment for creating high-performance, 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 using a gmProj-specific Project List file when generating a Visual Studio Solution file
  • Adds support for specifying and using folders to organize projects when generating a Visual Studio Solution file
  • Adds Generate Solution File option to Tools Menu
  • Adds Edit Solution File Project List File option to Tools Menu
  • Adds support for passing Project Type (VB6 or ASP) into script templates
  • Adds support for PostAuthor elements in ScriptRules file
  • Improves Member Location reported in Source Scan for matches in the General code block
  • Improves displaying Functional Test Log in Information Panel
  • Improves reporting REPLACEFILE messages in Translation Log Report
  • Improves section headers in the All Logs Report
  • Improves searching Migration Set Report results
  • Improves adding multiple VBPs from a VBG file or a simple text file listing of VBP paths
  • Improves Search Results reporting to allow reporting regular expression group matching anywhere in the report record using %rec%[n] place holder in Search Report Template
  • Improves Search list results handling of "not found" case
  • Improves ScriptRules logging in the actual translation script
  • Improves the GUI Scan report with support for Designer file data
  • Improves the Side-by-Side Viewer with support for Designer file data
  • Improves References Report to include coclass/class used as parameter
  • Improves reporting Properties on References Report and Definitions Report

gmslAPI: a .NET API for Developing Advanced Upgrade Solutions

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

  • Improves References report to include coclass/class used as parameter
  • Improves reporting properties on References Report and Definitions Report

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 Windows Common Controls to WinForms Rules
  • Implements ListControls.gmsl without using DataStore classes
  • Improves Functional Test batch processing sample
  • Improves Instructions in the Search Report Template sample
  • Adds more controls to StubControlBaseClass.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 were updated to reflect the latest product improvements and conventions.

  • Adds ListView Columns Sorting example to FileExplorer sample
  • Adds logic to run Analytics Definitions Reports to sample batch script

gmBasic: Upgrade Engine

gmBasic is a code transformation tool that 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. This distribution, Version 30.92, includes several enhancements:

  • Corrects problems with translating VBScript comments within ASP String Literals
  • Improves preservation of horizontal and vertical whitespace in ASP translations
  • Improves support for more operation while under trial license
  • Adds use of libtype=Internal in a migration rules file to suppress stub assembly references
  • Improves support for DataField and DataSource properties while generating a global stub framework
  • Improves recognition of various VB6 Intrinsic functions
  • Improves recognition of an custom instance of the ErrorObject
  • Simplify metalanguage information for VB6 File System ListBox controls

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment for creating high-performance, 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 Help/Extensions to display gmStudio Extensions Repository https://portal.greatmigrations.com/display/GMG/gmStudio+Extensions
  • Improves detecting and using of different versions of VS2017 for .NET build operations
  • Improves Definitions Report to indicate which subprograms are event Handlers
  • Improves ScriptRules command to allow additional script variables in FileName attribute value
  • Improves handling nested conditions in ScriptRules elements
  • Improves ScriptRules logging and error handling
  • Improves hot-key handling for Task Reset operation
  • Improves Find dialogue behavior in the Side-by-Side Form
  • Improves Translation Log Reporting
  • Improves Member named in Source Scan Report for matches found in a file's General section
  • Improves File Peek Report when starting from first record of a file

gmslAPI: a .NET API for Developing Advanced Upgrade Solutions

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

  • Corrects issue with WPF startup when the VB6 had a startup form
  • Improves general handling of controls for XAML generation
  • Improves Definitions Report to indicate which SubPrograms event Handlers

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.

  • Adds gmStudio Extensions Repository https://portal.greatmigrations.com/display/GMG/gmStudio+Extensions. Automatic Tool integration coming in a future release
  • Improves default VB6 Issues list to check for control validation handlers
  • Improves samples rules to inherit a stronger base control when generating COM stub control classes
  • Improves sample script for adding instrumentation to VB6 codes
  • Improves sample batch script for automating gmStudio from command line
  • Improves sample batch script for testing translation results
  • Improves sample migration rules for COM: MSComCtl.ocx, Scrrun.dll

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 WPF Samples to use local gmSL scripts rather than system scripts

gmBasic: Upgrade Engine

gmBasic is a code transformation tool that 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. This distribution, Version 30.89, includes several enhancements:

  • Improves the general ability to produce accurate, build-complete .NET (C# and VB.NET) systems from ASP sites (most recently making enhancements needed to upgrade a large e-mail marketing system with over 1000 pages and almost 300 #includes.)
  • Improves the general ability to produce accurate, build-complete .NET (C# and VB.NET) systems from VB6 applications (most recently making enhancements needed to upgrade a structural engineering application (130K LOC) and a reinsurance application (120K LOC).)
  • Adds Refactor\Fixtype@status=dynamic to allow translating with a strong type but authoring the code to use type dynamic
  • Adds Registry@type=MigFile to allow associating a Migration File with a COM interface file
  • Improves handling pages with deeply nested and inter-dependent #include files in ASP
  • Improves handling user defined VBScript class named "Collection" in ASP
  • Improves handling const in ASP
  • Improves handling arrays used in foreach
  • Improves type inference when variable is declared and initialized on same line of code
  • Improves handling to intrinsic RegExp API for ASP
  • Improves handling parameters to VB6's file Open statement
  • Improves handling parameters to DrawMode property
  • Improves handling parameters to Scale method
  • Improves handling the Call keyword

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment for creating high-performance, 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 Peek Reporting mode for inspecting content surrounding a search result
  • Improves Search reporting when using a Report file as a search source
  • Improves System Configuration Search to include application templates folder as a search source
  • Improves integration of file edit operation with Search results
  • Improves integration of Side-by-Side viewer with Search results
  • Improves display of .NET files in Side-by-Side viewer when one source file becomes many .NET files
  • Improves translation log report details for warning messages
  • Improves Reference Report by reporting declaring form/control containing control references
  • Improves license checks in ScriptRules files
  • Improves accuracy of Members Report for ASP

gmslAPI: a .NET API for Developing Advanced Upgrade Solutions

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

  • Improves Reference Report by reporting declaring form/control containing control references
  • Corrects Reference Report to avoid exception when a reference occurs in a very long source line

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.

  • Improves CodeScanList.txt: additional entries in preset list of Potential VB6 Issues

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.

gmBasic: Upgrade Engine

gmBasic is a code transformation tool that 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. This distribution, Version 30.84, includes several enhancements:

  • Improves the general ability to produce accurate, build-complete .NET (C# and VB.NET) systems from ASP sites (most recently making enhancements needed to upgrade a large e-mail marketing system with over 1000 pages and almost 300 #includes.)
  • Improves handling the ASPErrorObject
  • Improves handling VB6 codes with very long Conditional Compilation settings in the VBP file

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment for creating high-performance, 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 Search Reporting to allow searching ASP site code based on the list of files processed by the translator
  • Improves Search Reporting to allow using gmStudio Report files as a search source
  • Improves Definitions Report to report immediate parent of each defined symbol
  • Improves Definitions Report to report a Handler attribute for Subprograms that are event handlers
  • Improves handling projects that reference missing source files
  • Improves handling deployment reporting
  • Adds support for showing columns keys rather than descriptions in the Search Reports results
  • Adds support for reporting Processed File messages in the Translation Log report
  • Improves working with project content located on a UNC path
  • Adds support for suppressing session logging by setting Max Session Lines to 0

gmslAPI: a .NET API for Developing Advanced Upgrade Solutions

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

  • Improves Definitions Report to report immediate parent of each defined symbol; This is helpful for analysing sub program parameters
  • Improves Definitions Report to report a Handler attribute to Subprograms that are event handlers

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.

  • Improves CodeScanList.txt: additional entries in preset list of Potential VB6 Issues

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.

gmBasic: Upgrade Engine

gmBasic is a code transformation tool that 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. This distribution, Version 30.82, includes several enhancements:

  • Improves the general ability to produce accurate, build-complete .NET (C# and VB.NET) systems from VB6 code (most recently making enhancements needed to upgrade a large ERP system with 326 VBPs referencing 1,369 code files containing 1.3M LOC and 50 third-party-COM components)
  • Improves migration of PropertyBag and PropertyPage
  • Improves support for using Debug Build Configuration
  • Improves support for VBScript classes in ASP translations
  • Improves support for ASPErr Object in ASP translations
  • Improves translation of DragOver and DragDrop events
  • Improves diagnostic reporting for migrating implicit conversions and Type Inference operations
  • Improves translation of LoadResPicture function
  • Corrects issue with Event/Method Name Clash when BuildFile=global
  • Improves handling IIf  when return values have different types.
  • Improves Naming convention for same-named ASP pages
  • Improves handling "New class.member" references in ASP
  • Improves handling ScaleModeConstants enumeration
  • Improves handling Arrays declared using type-indicator characters
  • Improves recognizing properties of Global Multiuse classes
  • Improves migrating complex IIf expressions

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment for creating high-performance, 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 Source Search performance by using multi-threaded logic
  • Improves Side-by-Side Viewer to allow manually selecting files displayed
  • Improves handling of ASP with VBScript classes on the the Side-by-Side form
  • Improves behavior of Reporting Only mode when project exceeds license limits
  • Improves handling regex expression errors on Search panel

gmslAPI: a .NET API for Developing Advanced Upgrade Solutions

Powered by gmBasic, gmslAPI is a .NET API for automating the gmBasic upgrade engine and accessing the semantic models produced by our unique linguistic compilation technology. gmslAPI also includes classes to facilitate the integration and management of complex upgrade rules in 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.

  • Improves CodeScanList.txt for translation audit reporting
  • Improves GlobalStubs.xml for generating global stub framework

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.

gmBasic: Upgrade Engine

gmBasic is a code transformation tool that 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. This distribution, Version 30.80, includes several enhancements:

  • Improves handling statement continuation
  • Improves handling missing code files
  • Improves handling assigning a string quantity to a Font property
  • Improves several details in VB.NET translations

gmStudio: Upgrade Solution Development Environment

Powered by gmBasic, gmStudio is a development environment for creating high-performance, 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 reporting user-defined type and class references in the Analytics References Report
  • Improves handling file references for sub-modules within COM libraries
  • Improve status reporting for VB6 Build test
  • Improves Startup Splash Screen to display a unique build ID

gmslAPI: a .NET API for Developing Advanced Upgrade Solutions

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

  • Improves coverage and detail in the Reference and Definitions reporting APIs

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.

  • Improves WPF Migration to handle Startup with Main function rather than a startup Form
  • Improves sample script for automating gmStudio from the command line

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.