Skip to content

Blog

gmStudio Release News: Wednesday, 20-December-2023

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

Section titled “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

Section titled “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

Section titled “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 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 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

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

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

gmStudio Release News: Friday, 18-August-2023

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

Section titled “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

Section titled “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

Section titled “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 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 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.

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”

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

gmStudio Release News: Monday, 30-May-2023

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

Section titled “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

Section titled “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

Section titled “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 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 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

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.

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

gmStudio Release News: Monday, 27-March-2023

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

Section titled “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

Section titled “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

Section titled “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 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 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

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

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.

gmStudio Release News: Sunday, 11-December-2022

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

Section titled “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

Section titled “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

Section titled “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 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 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

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