Skip to content

Blog

gmStudio Release News: Tuesday, 09-February-2021

gmBasic is a code transformation tool that reads, interprets, and rewrites VB6/ASP/COM systems to one of the .NET languages (C# or VB.NET). Based on feedback from our clients and migration projects in the field, we are continuously improving gmBasic so as to help users more easily produce cleaner and more correct results. Most recently, this work included the general improvements needed to produce build-complete C# code for an Manufacturing Reporting System. This system is an ASP web site organized in 123 web page files that reference 26 #include files. The site also depends on 8 COM libraries. This distribution, Version 31.25, includes several enhancements:

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

gmStudio: Upgrade Solution Development Environment

Section titled “gmStudio: Upgrade Solution Development Environment”

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

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

gmAPI: a .NET API for Developing Advanced Upgrade Solutions

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

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

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

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

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

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

gmStudio Release News: Wednesday, 11-November-2020

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

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

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 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

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

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

gmStudio Release News: Wednesday, 02-September-2020

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 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

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

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

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

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

VB6 Hangs In there! (and hangs around beyond its welcome)

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.


Download: