<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Great Migrations | Blog</title><description/><link>https://www.greatmigrations.com/</link><language>en</language><item><title>gmStudio Release News: Wednesday, 03-December-2025</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-03-december-2025/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-03-december-2025/</guid><pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;modernization-podcast-video-series&quot;&gt;Modernization Podcast Video Series&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Here is our third episode in a series of Podcast videos covering software modernization topics. This episode, &lt;strong&gt;Translation Mythbusters&lt;/strong&gt;, takes on the question: should we Convert or Rewrite and challenges common misconceptions about the role and value of using legacy code and translation tools as part of a modernization strategy. Watch and listen &lt;a href=&quot;https://youtu.be/uPDkKEeQyXU&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 to help developers produce cleaner, more correct results and to successfully manage and complete large-scale upgrade projects. Most recently, this includes enhancements relating to the work of upgrading a  large VB6/ASP/COM/.NET payment processing application comprising 700 active pages backed by a 50K LOC VB6 service component library. The distribution, Version 50.27, includes several other important additions and improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds support for recognizing and translating symbols declared in server-side Javascript (JScript) in ASP to C# or VB.NET&lt;/li&gt;
&lt;li&gt;Adds a new FindDynamics command that may be used to assist with migrating late-bound object.member references to custom interfaces rather than using dynamic casts&lt;/li&gt;
&lt;li&gt;Improves Form migrations so that DefInstance support is authored only for forms, MDI forms, and other Designer-based types that need it&lt;/li&gt;
&lt;li&gt;Adds Migrate DefInstance=on|off to allow explicitly adding DefInstance support for a form when the requirement is not automatically detected&lt;/li&gt;
&lt;li&gt;Improves migration of complex error handling/goto sequences to try-catch&lt;/li&gt;
&lt;li&gt;Improves detecting the need to retain weak typing for variant when a variant parameter is assigned to an enum&lt;/li&gt;
&lt;li&gt;Improves handling statements that invoke a default member in an object instantiation statement (e.g., Set obj = (new Class)(args))&lt;/li&gt;
&lt;li&gt;Improves migration of Array function to string[] when the arguments to Array are a mixed set of types&lt;/li&gt;
&lt;li&gt;Improves the migration of VB6 Line control to gmRTL.GUI.LineControl&lt;/li&gt;
&lt;li&gt;Improves migration of string variable assigned to a void method&lt;/li&gt;
&lt;li&gt;Improves translation of huge numeric literals (longlong quantities)&lt;/li&gt;
&lt;li&gt;Improves translating VBScript With blocks in ASP code&lt;/li&gt;
&lt;li&gt;Improves translating ASP sites having multiple same-named VBScript classes&lt;/li&gt;
&lt;li&gt;Improves migration of conditional expressions comparing variant to empty string&lt;/li&gt;
&lt;li&gt;Improves handling files with UTF-8 encoding and BOM&lt;/li&gt;
&lt;li&gt;Improves logic to automatically increase code storage space when needed&lt;/li&gt;
&lt;li&gt;Improves migration of ZOrder statements&lt;/li&gt;
&lt;li&gt;Improves migration of complex conditionals involving integers and relational operations&lt;/li&gt;
&lt;li&gt;Improves handling foreign class references&lt;/li&gt;
&lt;li&gt;Improves support for Response.LCID in ASP translations&lt;/li&gt;
&lt;li&gt;Improves authoring COM interface descriptions for read-only properties&lt;/li&gt;
&lt;li&gt;Improves migration of intrinsic controls so that the property defaults more closely follow VS designer conventions&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Powered by gmBasic, gmStudio is a platform for analyzing code and developing custom VB6/ASP/COM-to-.NET upgrade solutions. We continuously add functionality to gmStudio and make it easier to use. This distribution includes several enhancements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves Validate Source operation to allow for upgrade tasks with no translation script&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: A .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 external migration tools with gmStudio. We maintain and improve gmAPI and related components to keep them in sync with the platform and to add new features. gmAPI is central to our platform and gmAPI dlls are used to implement several advanced features: analytics reports, shared files consolidation, custom coding style, support framework generation, migration to WPF, and more.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;advanced-metrics-reporting&quot;&gt;Advanced Metrics Reporting&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advanced reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these reporting services to keep them in sync with the model schema and to add new features. See &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmstudio-user-guide/reporting/semantic-model-reports&quot;&gt;Semantic Reports&lt;/a&gt; for more information.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 code that you may modify to fit your unique requirements. The sample rules have been updated to reflect the latest product improvements and conventions. See also additions and changes in the &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/resources/gmstudio-extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tabctl32.ocx.Wrapper.Transform.gmsl: Updated TabControl migration to be compatible with LineControl migration&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more maintainable translations. We continuously improve this framework through real-world project work. Learn more about gmRTL &lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate various upgrade features. The sample upgrade solutions and results have been updated to reflect the latest product improvements and conventions. Learn about the Samples &lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves FMStocks samples to demonstrate just-in-time GlobalSettings integration&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-documentation&quot;&gt;gmStudio Documentation&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. The following articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/client-list/vb6-asp/government-agency-electoral-register-system-vb6-asp&quot;&gt;New Case Study: Government Agency Electoral Register System&lt;/a&gt;, a 1.4M LOC three-tier VB6/ASP/COM/COM+ application&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/client-list/vb6-asp/designbuilder-software-building-performance-simulation-vb6&quot;&gt;New Case Study: DesignBuilder Software — Building Performance Simulation&lt;/a&gt;, a 500K VB6/COM application&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmniintroduction/gmniruntime/gmnicodestyle&quot;&gt;Updated CodeStyle documentation&lt;/a&gt;: added discussion of the RemoveNameSpaces command; improved clarity and consistency&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Modernization Podcast Video Series Episode 3: Translation Myth Busters</title><link>https://www.greatmigrations.com/blog/modernization-podcast-video-series-ep-3/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/modernization-podcast-video-series-ep-3/</guid><pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Here is our third episode in a series of Podcast videos covering software modernization topics. This episode, &lt;strong&gt;Translation Myth Busters,&lt;/strong&gt; takes on the question: should we Convert or Rewrite and challenges common misconceptions about the role and value of using legacy code and translation tools as part of a modernization strategy.&lt;/p&gt;
&lt;iframe width=&quot;400&quot; height=&quot;300&quot; src=&quot;https://www.youtube.com/embed/uPDkKEeQyXU&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;</content:encoded></item><item><title>Modernization Podcast Video Series Episode 2: Setting Modernization Project Scope and Budget</title><link>https://www.greatmigrations.com/blog/modernization-podcast-video-series-ep-2-setting/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/modernization-podcast-video-series-ep-2-setting/</guid><pubDate>Thu, 25 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Here is our second episode in a series of Podcast videos covering software modernization topics. &lt;br&gt;
This episode discusses how to go about &lt;strong&gt;Setting Modernization Project Scope and Budget&lt;/strong&gt;. &lt;br&gt;&lt;/p&gt;
&lt;iframe width=&quot;400&quot; height=&quot;300&quot; src=&quot;https://www.youtube.com/embed/oPvQ61YwzSA&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;</content:encoded></item><item><title>gmStudio Release News: Sunday, 10-August-2025</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-sunday-10-august-2025/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-sunday-10-august-2025/</guid><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;modernization-podcast-video-series&quot;&gt;Modernization Podcast Video Series&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Here is our second episode in a series of Podcast videos covering software modernization topics. &lt;br&gt;
This episode discusses how to go about &lt;strong&gt;Setting Modernization Project Scope and Budget&lt;/strong&gt;. &lt;br&gt;
Watch and listen &lt;a href=&quot;https://youtu.be/oPvQ61YwzSA&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 to help developers produce cleaner, more correct results and to successfully manage and complete large-scale upgrade projects. Most recently, this work includes changes to automatically produce a functionally correct C# translation of a three-tier enterprise application comprising 101 interrelated VBP files, referencing 1.4M total LOC in 1,566 code files, and using 29 third-party COM libraries. The distribution,&lt;strong&gt;Version 50.20&lt;/strong&gt;, includes several important enhancements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds the RuntimeLibrary feature for generating a custom support framework as an initial COM replacement. Previously, the support framework code was limited to mocking COM APIs; now it can mock .NET target APIs.&lt;/li&gt;
&lt;li&gt;Adds Compile/Fix@MethodScope to allow more precise pre-editing of source prior to translation.&lt;/li&gt;
&lt;li&gt;Adds a generalized high-performance transformation engine that improves performance and simplifies the specification of more complex forms of deep semantic translation.&lt;/li&gt;
&lt;li&gt;Adds support for &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmplintroduction/gmplcommandstatements/gmplregistrystatement&quot;&gt;Registry@Type=Prefix&lt;/a&gt; to allow adding user-defined code attribute blocks before specified declarations.&lt;/li&gt;
&lt;li&gt;Improves migration of TabIndex and TabStop for VB6 intrinsic controls.&lt;/li&gt;
&lt;li&gt;Improves handling of currency literals.&lt;/li&gt;
&lt;li&gt;Improves ASP translations.&lt;/li&gt;
&lt;li&gt;Improves translation of enum expressions used as optional parameter defaults.&lt;/li&gt;
&lt;li&gt;Improves Twips-to-Pixels adjustments for more complex UI layout calculations.&lt;/li&gt;
&lt;li&gt;Improves indenting of code added using Fix/ReplaceFile.&lt;/li&gt;
&lt;li&gt;Corrects unexpected use of null rather than DBNull.Value when comparing to Null.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Powered by gmBasic, gmStudio is a platform for analyzing code and developing custom VB6/ASP/COM-to-.NET upgrade solutions. We continuously add functionality to gmStudio and make it easier to use. This distribution includes several enhancements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves performance and relevance of results displayed for User Settings.&lt;/li&gt;
&lt;li&gt;Improves performance and relevance of results displayed for User Content Search.&lt;/li&gt;
&lt;li&gt;Adds MemType and LocMemb to specify the source control in Source Scan of GUI code.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: A .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 external migration tools with gmStudio. We maintain and improve gmAPI and related components to keep them in sync with the platform and to add new features.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds CodeStyle ClassDisposal to support calling Dispose on specified classes.&lt;/li&gt;
&lt;li&gt;Adds a gmAPI implementation of the TabDlg migration.&lt;/li&gt;
&lt;li&gt;Adds a gmAPI implementation of the MSComCtlLib migration.&lt;/li&gt;
&lt;li&gt;Adds a gmAPI implementation of the Scripting migration.&lt;/li&gt;
&lt;li&gt;Improves CodeStyle VerticalLists smart line breaker to optionally suppress line breaking on commas.&lt;/li&gt;
&lt;li&gt;Improves the gmSL-to-gmAPI translator and gmSL/gmAPI unit tests.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;advanced-metrics-reporting&quot;&gt;Advanced Metrics Reporting&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advanced reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these reporting services to keep them in sync with the model schema and to add new features. See &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmstudio-user-guide/reporting/semantic-model-reports&quot;&gt;Semantic Reports&lt;/a&gt; for more information.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 code that you may modify to fit your unique requirements. The sample rules have been updated to reflect the latest product improvements and conventions. See also additions and changes in the &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/resources/gmstudio-extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CodeStyle.std.xml: adds samples for VerticalLists, ClassDisposal, RemoveNameSpaces, and RemoveUserNamespaces&lt;/li&gt;
&lt;li&gt;mig.vb7lang.xml: adds various language operation customizations&lt;/li&gt;
&lt;li&gt;mscomctl.ocx.WinForms.Refactor.xml: updates for treeview&lt;/li&gt;
&lt;li&gt;Scrrun.dll.SystemIO.Refactor.xml: updates for FileSystem.GetExtensionName&lt;/li&gt;
&lt;li&gt;Tabctl32.ocx.Wrapper.Transform.gmsl: adds comments for clarity and update calling Character.Substr&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework through real-world project work. Learn more about gmRTL&lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds new classes and interfaces for improved exception handling of VB6-style exceptions.&lt;/li&gt;
&lt;li&gt;Adds a new BusinessSettings class to manage application settings.&lt;/li&gt;
&lt;li&gt;Adds a new framework to assist with emulating VB6’s tab key navigation.&lt;/li&gt;
&lt;li&gt;Improves CheckedListBox and ComboBoxEx item selection and state management.&lt;/li&gt;
&lt;li&gt;Improves the ControlHelper class with new methods for managing control properties.&lt;/li&gt;
&lt;li&gt;Improves registry management, logging.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes several sample VB6/ASP upgrade solutions that illustrate various upgrade features. The sample upgrade solutions and results have been updated to reflect the latest product improvements and conventions. Learn about the Samples &lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can find &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal&lt;/a&gt;. The following “Support Statement” articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmplintroduction/gmplcommandstatements/gmplfixstatement&quot;&gt;Fix Statement Reference&lt;/a&gt;: added details regarding the new MethodScope attribute.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmplintroduction/gmplcommandstatements/gmplregistrystatement&quot;&gt;Registry Statement Reference&lt;/a&gt;: added details regarding the new type=“Prefix” option.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/business-topics/translation-myth-busters&quot;&gt;Translation Mythbusters Article&lt;/a&gt;: updated discussion on strategic objectives.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/spaces/GMG/history/1575813/Upgrade+Assessment+Instructions&quot;&gt;Upgrade Assessment Instructions Article&lt;/a&gt;: added details regarding use of Trial with large code bases and stressed the importance of gathering COM information/files.&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>gmStudio Release News: Tuesday, 8-April-2025</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-tuesday-8-april-2025/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-tuesday-8-april-2025/</guid><pubDate>Tue, 08 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 that produce more functionally correct translations of a Voter Roll Management System. This three-tier enterprise application is comprised of 101 inter-related VBP files referencing 1.4M total LOC in 1,566 code files and using 29 third-party COM libraries. In addition, important improvements were made in the ASP translation capability. The distribution,&lt;strong&gt;Version 50.14&lt;/strong&gt;, has several important enhancements.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves translation of complex ASP tags having embedded conditional logic&lt;/li&gt;
&lt;li&gt;Improves translation of statements that invoke event handlers&lt;/li&gt;
&lt;li&gt;Improves string array declarations and initializations&lt;/li&gt;
&lt;li&gt;Improves translation of OptionButton.Checked = true&lt;/li&gt;
&lt;li&gt;Improves translation of OptionButton.Click event&lt;/li&gt;
&lt;li&gt;Improves translation of CheckBox.Click event&lt;/li&gt;
&lt;li&gt;Improves diagnostic messages when a ByRef parameter of a user-defined event migrates to ByVal&lt;/li&gt;
&lt;li&gt;Improves diagnostic messages when an explicit Optional ByRef parameter migrates to ByVal&lt;/li&gt;
&lt;li&gt;Improves consistency of UPGRADE_INFO messages&lt;/li&gt;
&lt;li&gt;Improves consistency of using Status=“NotImplemented” rather than Status=“delete” for incompatible VB6 Control properties&lt;/li&gt;
&lt;li&gt;Improves Refactor/Remove to allow also removing orphaned comments when removing a subprogram&lt;/li&gt;
&lt;li&gt;Corrects system hang when an empty OldBlock is used in a Replace command&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Corrects Location Name in XML Search results&lt;/li&gt;
&lt;li&gt;Improves handling of Search Peek Window size&lt;/li&gt;
&lt;li&gt;Add Task Comment and Description to Project Metrics report&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 external migration tools with gmStudio. We maintain and improve gmAPI and related components to keep them in sync with the platform and add new features.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves implementation of custom CodeStyle extension&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;advanced-metrics-reporting&quot;&gt;Advanced Metrics Reporting&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advance reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these advanced reporting services to keep them in sync with the model schema and add new features. See &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmstudio-user-guide/reporting/semantic-model-reports&quot;&gt;Semantic Reports&lt;/a&gt; for more information.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/resources/gmstudio-extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves the migration of Common Dialog to WinForms (comdlg32.ocx.Wrapper.Refactor.xml)&lt;/li&gt;
&lt;li&gt;Improves migration of COM+ to System.EnterpriseServices (Comsvcs.dll.Refactor.xml)&lt;/li&gt;
&lt;li&gt;Improves rules for setting the default parent class for stub controls authored in the support framework (Environment.std.xml)&lt;/li&gt;
&lt;li&gt;Improves examples directing custom migration of VB6 language operations (mig.vb7lang.xml)&lt;/li&gt;
&lt;li&gt;Improves migration of Windows Common Control 2 to WinForms (mscomct2.ocx.WinForms.gmsl/xml)&lt;/li&gt;
&lt;li&gt;Improves migration of Windows Common Control to WinForms (mscomctl.ocx.WinForms.gmsl/xml)&lt;/li&gt;
&lt;li&gt;Improves migration of MSXML2 to System.Xml (msxml6.dll.Refactor.xml)&lt;/li&gt;
&lt;li&gt;Improves migration of RichTextBox to WinForms (richtx32.ocx.WinForms.Refactor.xml)&lt;/li&gt;
&lt;li&gt;Improves migration of Scripting to &lt;a href=&quot;http://System.IO&quot;&gt;http://System.IO&lt;/a&gt; (Scrrun.dll.SystemIO.Refactor.xml)&lt;/li&gt;
&lt;li&gt;Improves the migration of TabDialog to WinForms (TABCTL32.OCX.Wrapper.Refactor.xml)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in real-world project work. Learn more about gmRTL&lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves gmRTL.Core.OrderedDictionary&lt;/li&gt;
&lt;li&gt;Adds gmRTL.Core.COMPlus mock classes for running COM+ components outside of MTS&lt;/li&gt;
&lt;li&gt;Adds gmRTL.Core.ErrorHandling.SimpleResumeNext&lt;/li&gt;
&lt;li&gt;Adds gmRTL.Core.GLog classes for process logging&lt;/li&gt;
&lt;li&gt;Adds gmRTL.Core.ArrayHelper services to allow deep initialization of stucts containing strings&lt;/li&gt;
&lt;li&gt;Adds gmRTL.Core.ConversionHelper.ToVal to more closely emulate the Val function&lt;/li&gt;
&lt;li&gt;Improves gmRTL.Core.InteractionHelper.Shell function&lt;/li&gt;
&lt;li&gt;Adds gmRT.GUI.CheckedListBox control&lt;/li&gt;
&lt;li&gt;Adds gmRT.GUI.ComboBoxEx control&lt;/li&gt;
&lt;li&gt;Adds gmRT.GUI.OleControl control&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can find &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt; The following “Support Statement” articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;By Tool or By Hand: Comparing Upgrade Methodologies&lt;/li&gt;
&lt;li&gt;Custom COM Replacement&lt;/li&gt;
&lt;li&gt;Setting Modernization Project Scope and Budget&lt;/li&gt;
&lt;li&gt;Support Statement: Overcome the Limits of AI for Large Scale Software Modernization&lt;/li&gt;
&lt;li&gt;Support Statement: Surface Pattern Syntax&lt;/li&gt;
&lt;li&gt;Translation Myth Busters&lt;/li&gt;
&lt;li&gt;gmStudio Command Line&lt;/li&gt;
&lt;li&gt;gmStudio User Guide&lt;/li&gt;
&lt;li&gt;gmplRegistryStatement&lt;/li&gt;
&lt;li&gt;gmplRemoveStatement&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Modernization Podcast Video Series Episode 1: Using AI in software modernization</title><link>https://www.greatmigrations.com/blog/modernization-podcast-video-series-ep-1-using-ai/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/modernization-podcast-video-series-ep-1-using-ai/</guid><pubDate>Tue, 08 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Announcing a series of PODCast Videos covering the software modernization topics. This first episode discusses how to &lt;strong&gt;get more migration for your money by using AI tools&lt;/strong&gt; in your software modernization projects. &lt;br&gt;&lt;/p&gt;
&lt;br&gt;
&lt;iframe width=&quot;400&quot; height=&quot;300&quot; src=&quot;https://www.youtube.com/embed/4I5YKVsJkEY&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;Read more here &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-overcome-limits-ai-large-scale&quot;&gt;Support Statement: Overcome the Limits of AI for Large Scale Software Modernization&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>gmStudio Release News: January 2025 Updates</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-tuesday-7-january-2025/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-tuesday-7-january-2025/</guid><pubDate>Wed, 08 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or &lt;a href=&quot;http://VB.NET&quot;&gt;http://VB.NET&lt;/a&gt; ). 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 an enterprise-level financial management system for security and alarm companies. This large desktop application is comprised of 185 inter-related VBP files referencing 1.2M total LOC in 2,696 code files (including 682 ActiveReports Designers) and using 72 third-party COM libraries. The distribution,&lt;strong&gt;Version 50.10&lt;/strong&gt;, has several important enhancements.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds Registry type=BaseType to alter how VB6 intrinsic types are recognized&lt;/li&gt;
&lt;li&gt;Adds Registry type=LibType to facilitate migrating a COM API types are recognized&lt;/li&gt;
&lt;li&gt;Improves migration of custom designer files (*.dsr) such as ActiveReports&lt;/li&gt;
&lt;li&gt;Improves recognizing the type of ControlArray elements&lt;/li&gt;
&lt;li&gt;Improves indenting of translations modified by Fix@FileFilter&lt;/li&gt;
&lt;li&gt;Improves the migration of App object operations and the App type&lt;/li&gt;
&lt;li&gt;Improved consistency of the inferred array parameters and corresponding arguments&lt;/li&gt;
&lt;li&gt;Improves handling string literals containing control characters&lt;/li&gt;
&lt;li&gt;Improves resolution of late-bound object/default property references&lt;/li&gt;
&lt;li&gt;Improves relational operations between Twips and strings&lt;/li&gt;
&lt;li&gt;Improves handling ListBox.Item and ComboBox.ItemData&lt;/li&gt;
&lt;li&gt;Improves migrating vbEmpty to null&lt;/li&gt;
&lt;li&gt;Improves migrating assignments of a class instance to an implemented interface&lt;/li&gt;
&lt;li&gt;Improves Refactor/Rename to allow renaming a VBP’s internal name&lt;/li&gt;
&lt;li&gt;Improves recognition of classes requiring IEnumerable support&lt;/li&gt;
&lt;li&gt;Improves logic to provide an enum entry from a quantity that may be null&lt;/li&gt;
&lt;li&gt;Improves Generic Collections to make adjustment for zero-based indexing when index quantity is a enum&lt;/li&gt;
&lt;li&gt;Improves behavior of Fix/Replace with MatchBlock=on&lt;/li&gt;
&lt;li&gt;Improves conventions for Array initialization and assignments&lt;/li&gt;
&lt;li&gt;Improves OutputPath conventions in .NET project template&lt;/li&gt;
&lt;li&gt;Improves DefineConstants conventions in .NET project template&lt;/li&gt;
&lt;li&gt;Improves ByRef optimizations for array parameters&lt;/li&gt;
&lt;li&gt;Improves migration of foreach with ControlArrays&lt;/li&gt;
&lt;li&gt;Improves type inference to retain weak typing when variable is used with an IsNull operation&lt;/li&gt;
&lt;li&gt;Improves handling of status=“delete” to suppress unwanted operations from the translations.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds FinalEdit element to ScriptRules to be inserted after the Output@Status=Close element. Typically this is used for top-level Fix@FileFilter operations to make changes to the translation outputs after they are written to disk.&lt;/li&gt;
&lt;li&gt;Adds LogTranTime setting to application configuration to suppress or allow logging the total elapsed translation time in translation logs&lt;/li&gt;
&lt;li&gt;Improves user experience for running and viewing Metalang Audit Report&lt;/li&gt;
&lt;li&gt;Improves Task Filter Dialog resize behavior&lt;/li&gt;
&lt;li&gt;Improves Translation Status checking to report WARN when there is a ScriptRule warning&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 external migration tools with gmStudio. We maintain and improve gmAPI and related components to keep them in sync with the platform and add new features.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves the CodeStyle Namespaces commands to allow specifying an alias for “using-qualified” naming&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;advanced-metrics-reporting&quot;&gt;Advanced Metrics Reporting&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advance reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these advanced reporting services to keep them in sync with the model schema and add new features. See&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmstudio-user-guide/reporting/semantic-model-reports&quot;&gt;Semantic Reports&lt;/a&gt;for more information.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/resources/gmstudio-extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves rules to set the default parent class for stub controls authored in the support framework&lt;/li&gt;
&lt;li&gt;Improves the analytics reporting script template&lt;/li&gt;
&lt;li&gt;Improves the Common Dialog migration rules&lt;/li&gt;
&lt;li&gt;Improves the MS Word to Interop rules&lt;/li&gt;
&lt;li&gt;Improves the Tab Dialog (TabCtl32.ocx) rules&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in during project work. Learn more about gmRTL&lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improved Generic Collections OrderedDictionary.InsertBefore method&lt;/li&gt;
&lt;li&gt;Improves App Class Implementation to be instance based&lt;/li&gt;
&lt;li&gt;Improves Error Handling to Exception Handling compatibility support&lt;/li&gt;
&lt;li&gt;Improves String to Date Conversion&lt;/li&gt;
&lt;li&gt;Improves CreateObject logic to get along with System Enterprise Services&lt;/li&gt;
&lt;li&gt;Adds ControlHelper.KeyOfValue to assist with migrating Control.Index&lt;/li&gt;
&lt;li&gt;Removes unnecessary using statements&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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&lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can find&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt;The following “Support Statement” articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updates Support Statement: Steps for Developing an ASP Site Upgrade&lt;/li&gt;
&lt;li&gt;Adds Support Statement: Building gmStudio Extensions using gmAPI and .NET&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>gmStudio Release News: Tuesday, 17-Sept-2024</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-tuesday-17-sept-2024/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-tuesday-17-sept-2024/</guid><pubDate>Tue, 17 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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. This distribution,&lt;strong&gt;Version 50.05&lt;/strong&gt;, has several important enhancements.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves the &lt;strong&gt;Translator as a Service (TaaS)&lt;/strong&gt; capabilities enabling developers to build and integrate their own custom upgrade features&lt;/li&gt;
&lt;li&gt;Adds MoveToTop migration for moving nested local variable declarations to the top of enclosing method&lt;/li&gt;
&lt;li&gt;Improves logic that infers array order (i.e., 1D, 2D, etc)&lt;/li&gt;
&lt;li&gt;Improves handling optional arguments for all methods in libraries having ImplicitByref=on&lt;/li&gt;
&lt;li&gt;Improves SharedFiles consolidation for Forms other complex scenarios&lt;/li&gt;
&lt;li&gt;Improves type inference for ControlArray elements&lt;/li&gt;
&lt;li&gt;Improves FixType for variants containing ControlArrays&lt;/li&gt;
&lt;li&gt;Improves support for conditional compilation&lt;/li&gt;
&lt;li&gt;Improves support for GoSub&lt;/li&gt;
&lt;li&gt;Improves support for Enum entries initialized with VB6 functions&lt;/li&gt;
&lt;li&gt;Improves support for array declarations dimensioned with enum entries&lt;/li&gt;
&lt;li&gt;Improves support for constants initialized by other constants&lt;/li&gt;
&lt;li&gt;Improves support for VB6’s archaic file IO formatting&lt;/li&gt;
&lt;li&gt;Improves translating Redim Preserve for 2D arrays&lt;/li&gt;
&lt;li&gt;Improves translating code using variables and arrays of type Byte&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds option to use Standard Search terms for Source Scan on the Reporting control panel&lt;/li&gt;
&lt;li&gt;Adds Semantic Declarations Report to the Reports menu&lt;/li&gt;
&lt;li&gt;Adds option to use a user-defined VS Solution File Generator&lt;/li&gt;
&lt;li&gt;Improves VS Solution File Generator to allow more flexible format and structure of GenerateSolution.txt files&lt;/li&gt;
&lt;li&gt;Improves transition to Reporting-Only mode when Trial license is not valid&lt;/li&gt;
&lt;li&gt;Improves updating .NET Build status for custom tasks&lt;/li&gt;
&lt;li&gt;Improves ScriptRules error reporting&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 external migration tools with gmStudio. We maintain and improve gmAPI and related components to keep them in sync with the platform and add new features.&lt;/p&gt;
&lt;p&gt;In this release we introduce an innovative approach for gmAPI integration. The new approach allows .NET developers to define custom features and activate them with user-defined statements in translation scripts. When detecting a user-defined statement, gmBasic will delegate processing to the designated extension DLL. Extension DLLs may use .NET code and gmAPI to automate services that access information in the semantic translation model. The user code may inspect and alter the information model, edit source and generated code, and integrate external information and processes. The new approach seamlessly extends gmBasic making it easier to use custom processing with gmStudio and it also allows much easier debugging extension code in Visual Studio.&lt;/p&gt;
&lt;p&gt;We updated many of gmStudio’s advanced features to use the new approach.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shared Files Reporting and Consolidation (gmPL_gmSharedFiles.dll)&lt;/li&gt;
&lt;li&gt;Custom Coding Style Transformations (gmPL_gmCodeStyle.dll).&lt;/li&gt;
&lt;li&gt;VB6 to WPF Migration (gmPL_WpfSubSystem.dll)&lt;/li&gt;
&lt;li&gt;Global Support Framework Generation (gmPL_gmGlobalStubs.dll).&lt;/li&gt;
&lt;li&gt;Global Analysis and Reporting (gmPL_gmGlobal.dll)&lt;/li&gt;
&lt;li&gt;Advanced Metrics Reporting (gmPL_Search.dll)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;advanced-metrics-reporting&quot;&gt;Advanced Metrics Reporting&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The gmStudio platform includes advanced reporting services that allow you to gather extremely detailed information about your legacy system. The advance reports include Symbol Tables, Symbol References, Symbol Definitions, Model Audits, and more. We maintain and enhance these advanced reporting services to keep them in sync with the model schema and add new features. See &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmstudio-user-guide/reporting/semantic-model-reports&quot;&gt;Semantic Reports&lt;/a&gt; for more information.&lt;br&gt;
In this release, gmMetrics.exe has been replaced by gmPL_Search.dll. gmBasic.exe automatically engages the services of gmPL_Search.dll to handle advanced reporting commands in gmPL scripts.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds the Semantic Declarations Report; currently this report provides details on Implements statements in the source code&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/resources/gmstudio-extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves rules to migrate the Windows Common Controls to WinForms controls&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. We continuously improve this framework in during project work. Learn more about gmRTL &lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updates all Samples to target VS2022 and Framework V4.8.1&lt;/li&gt;
&lt;li&gt;Updates WPF Samples to use gmPL_WpfSubSystem.dll rather than gmPL_WpfSubSystem.exe&lt;/li&gt;
&lt;li&gt;Updates FileExplorer sample to demonstrate additional upgrade requirements and use the latest API mapping rules&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can find &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt; The following “Support Statement” articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds Support Statement: Overcome the Limits of AI for Large Scale Software Modernization&lt;/li&gt;
&lt;li&gt;Adds Support Statement: Partial Translations&lt;/li&gt;
&lt;li&gt;Updates Support Statement: gmSL to move a variable declaration&lt;/li&gt;
&lt;li&gt;Updates Support Statement: Override a routine in authortext.gmsl&lt;/li&gt;
&lt;li&gt;Updates Support Statement: Stub Replacement&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>gmStudio Release News: Monday, 22-April-2024</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-monday-22-april-2024/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-monday-22-april-2024/</guid><pubDate>Mon, 22 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmBasic is a computer language processor that reads, interprets, and rewrites VB6/ASP/COM systems for the .NET platform (using C# or &lt;a href=&quot;http://VB.NET&quot;&gt;http://VB.NET&lt;/a&gt; ). 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. This distribution, &lt;strong&gt;Version 40.68&lt;/strong&gt;, focused on enhancing some of the &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmapiintroduction&quot;&gt;gmAPI-powered&lt;/a&gt; utilities that ship with gmStudio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-statement-consolidating-shared-code-files&quot;&gt;Shared Files Consolidation&lt;/a&gt; utility to handle forms, and more complex code file consolidation requirements&lt;/li&gt;
&lt;li&gt;Improves &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/technical-topics/special-migrations/strongly-typed-generic-collections&quot;&gt;Generic Collections&lt;/a&gt; migration utility&lt;/li&gt;
&lt;li&gt;Improves &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmniintroduction/gmniruntime/gmnicodestyle&quot;&gt;Custom CodeStyle&lt;/a&gt; utility to support using-qualified naming conventions rather than fully-qualified naming conventions&lt;/li&gt;
&lt;li&gt;Improves &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmniintroduction/gmniruntime/gmnicodestyle&quot;&gt;Custom CodeStyle&lt;/a&gt; utility to support more intelligent reformatting of long-lines&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, it includes many enhancements in general translation cabapilities; for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves Ole Control layout properties to use Twips to Pixels adjustments&lt;/li&gt;
&lt;li&gt;Improves handling DefLng and related DefType statements&lt;/li&gt;
&lt;li&gt;Improves migrating of PropertyBag Color Properties&lt;/li&gt;
&lt;li&gt;Improves the Support Framework generation feature&lt;/li&gt;
&lt;li&gt;Improves ArrayToValue.csh code should use index 0&lt;/li&gt;
&lt;li&gt;Improves Control.CausesValidation property and Validate Event&lt;/li&gt;
&lt;li&gt;Improves SavePicture migration&lt;/li&gt;
&lt;li&gt;Improves Reauthoring overloaded methods&lt;/li&gt;
&lt;li&gt;Improves record of edits, errors, and warnings in translation log&lt;/li&gt;
&lt;li&gt;Improves migration of COM controls&lt;/li&gt;
&lt;li&gt;Improves migration of array assignments&lt;/li&gt;
&lt;li&gt;Improves default framework to be v4.8.1 for VS2022&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds Edit ScriptRules File operation to References context menu&lt;/li&gt;
&lt;li&gt;Adds Compare Files operation to Search Results context menu&lt;/li&gt;
&lt;li&gt;Adds support for matching and reporting XPath locations when searching XML files&lt;/li&gt;
&lt;li&gt;Improves batch processing to rebuild the VB6 project associated with an upgrade task&lt;/li&gt;
&lt;li&gt;Improves All Logs Report to restrict results to selected project task(s)&lt;/li&gt;
&lt;li&gt;Improves file filter behavior on Configuration form&lt;/li&gt;
&lt;li&gt;Improves .NET Build report operation to also update NetBlds and NetSize fields in the task list&lt;/li&gt;
&lt;li&gt;Improves global support framework generation script template&lt;/li&gt;
&lt;li&gt;Improves default User Commands Batch processing script template&lt;/li&gt;
&lt;li&gt;Improves the set of default scan patterns used for language compatibility reporting&lt;/li&gt;
&lt;li&gt;Changes the default VS Version for new projects to VS2022&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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. gmAPI is used to implement special purpose utilities in the gmStudio distribution and is updated to improve these utilities and to follow the latest conventions of the gmBasic platform.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-statement-consolidating-shared-code-files&quot;&gt;Shared Files Consolidation&lt;/a&gt; utility to handle forms, and more complex code file consolidation requirements&lt;/li&gt;
&lt;li&gt;Improves &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/technical-topics/special-migrations/strongly-typed-generic-collections&quot;&gt;Generic Collections&lt;/a&gt; migration utility&lt;/li&gt;
&lt;li&gt;Improves &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmniintroduction/gmniruntime/gmnicodestyle&quot;&gt;Custom CodeStyle&lt;/a&gt; utility to support using-qualified naming conventions rather than fully-qualified naming conventions&lt;/li&gt;
&lt;li&gt;Improves &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/gmbasic-language-reference/gmniintroduction/gmniruntime/gmnicodestyle&quot;&gt;Custom CodeStyle&lt;/a&gt; utility to support more intelligent reformatting of long-lines&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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&lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds example metalang rules to migrate PictureBox to gmRTL.GUI.PictureBox&lt;/li&gt;
&lt;li&gt;Improves StubBaseClass rules in Environment.std.xml&lt;/li&gt;
&lt;li&gt;Improves rules to migrate MSGrid.Grid to WinForms&lt;/li&gt;
&lt;li&gt;Improves rules to migrate various Windows Common Controls to WinForms controls&lt;/li&gt;
&lt;li&gt;Improves rules to migrate Scripting Runtime to &lt;a href=&quot;http://System.IO&quot;&gt;http://System.IO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Improves rules to migrate TabDlg.SSTab runtime to WinForms.TabControl&lt;/li&gt;
&lt;li&gt;Improves rules to migrate various Threed Controls to WinForms controls&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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&lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves support for ComboBox.Clear&lt;/li&gt;
&lt;li&gt;Improves support for Array.Copy&lt;/li&gt;
&lt;li&gt;Improves File System List Controls&lt;/li&gt;
&lt;li&gt;Adds Ole Control&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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&lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updates all Samples to target VS2022 and Framework V4.8.1&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learning and using gmStudio. You can find&lt;a href=&quot;https://portal.greatmigrations.com/display/GMG/Great+Migrations+FAQs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt;The following “Support Statement” articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds Support Statement: How many programmers?&lt;/li&gt;
&lt;li&gt;Updates Support Statement: Consolidating Shared Code Files&lt;/li&gt;
&lt;li&gt;Updates Support Statement: gmStudio Licenses&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>gmStudio Release News: Wednesday, 20-December-2023</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-wednesday-20-december-2023/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-wednesday-20-december-2023/</guid><pubDate>Thu, 21 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;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&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;An ERP for the Sleep Products Industry comprised of 1 VBP referencing 445K LOC in 459 files and using 40 COM libraries&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This distribution, &lt;strong&gt;Version 40.59&lt;/strong&gt;, includes many enhancements; for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updates distribution to use 64-bit build for all system binaries&lt;/li&gt;
&lt;li&gt;Improves name conflict resolution&lt;/li&gt;
&lt;li&gt;Improves array type and rank inference&lt;/li&gt;
&lt;li&gt;Improves type inference&lt;/li&gt;
&lt;li&gt;Improves handling large numeric quantities in the form property bag code&lt;/li&gt;
&lt;li&gt;Improves handling calculations to adjust for Twips to Pixels&lt;/li&gt;
&lt;li&gt;Improves handling complex date calculations&lt;/li&gt;
&lt;li&gt;Improves handling calculations using Byte quantities&lt;/li&gt;
&lt;li&gt;Improves handling Picture types&lt;/li&gt;
&lt;li&gt;Improves handling PopupMenu&lt;/li&gt;
&lt;li&gt;Improves handling file IO using Get command&lt;/li&gt;
&lt;li&gt;Improves handling arrays in user-defined types&lt;/li&gt;
&lt;li&gt;Improves handling Response.CodePage in ASP&lt;/li&gt;
&lt;li&gt;Improves handling Collection.Ubound and Collection.Lbound for control arrays&lt;/li&gt;
&lt;li&gt;Improves handling complex conditional markup in ASP&lt;/li&gt;
&lt;li&gt;Improves handling complex formatting in ASP&lt;/li&gt;
&lt;li&gt;Adds Select.TargetFramework to allow setting the .NET Framework at the system level&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves the VS Solution File Generator to allow Folders to occur multiple times&lt;/li&gt;
&lt;li&gt;Improves the .NET Build Log Report to update Last Message with build results in the Task list&lt;/li&gt;
&lt;li&gt;Adds Line Pragma support to ScriptRules command processor&lt;/li&gt;
&lt;li&gt;Adds Language Compatibility items for the standard Source Scan Report&lt;/li&gt;
&lt;li&gt;Corrects issue with validation of Migration Project name&lt;/li&gt;
&lt;li&gt;Corrects issue with refresh double-loading the left-side file in the side-by-side viewer&lt;/li&gt;
&lt;li&gt;Updates analytics reports to use gmMetrics executable rather than internal API&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updates to use 64-bit builds&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updates to use 64-bit builds&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves Environment.std.xml StubBaseClass rules&lt;/li&gt;
&lt;li&gt;Improves GRID32.ocx to WinForms rules&lt;/li&gt;
&lt;li&gt;Improves mscomct2.ocx to Winforms rules&lt;/li&gt;
&lt;li&gt;Improves mscomctl.ocx to WinForms rules&lt;/li&gt;
&lt;li&gt;Improves TABCTL32.OCX to Wrapper rules&lt;/li&gt;
&lt;li&gt;Improves THREED32.ocx to WinForms rules&lt;/li&gt;
&lt;li&gt;Adds mig.vb7lang_PictureBox.xml to demonstrate migrating to a custom PictureBox&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds GUI.ControlHelper.UIndex/LIndex to support ControlArray.Ubound/Lbound&lt;/li&gt;
&lt;li&gt;Adds Core.WinFormsExtensions.Move(Control)&lt;/li&gt;
&lt;li&gt;Improves Core.FormatHelper.DateTime to strings&lt;/li&gt;
&lt;li&gt;Improves Core.ConversionHelper.DateTime.toStr&lt;/li&gt;
&lt;li&gt;Improves Core.ConversionHelper.toDateTime for TimeSpan&lt;/li&gt;
&lt;li&gt;Improves Core.FileSystemHelper.Dir operation&lt;/li&gt;
&lt;li&gt;Improves GUI.Frame border behavior&lt;/li&gt;
&lt;li&gt;Improves WPF.DirListBox to use generic event handlers&lt;/li&gt;
&lt;li&gt;Improves WPF.DriveListBox to use generic event handlers&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updates all Samples to target VS2022 and Framework V4.8&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learning and using gmStudio. You can find &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Great+Migrations+FAQs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt; The followiug “Support Statement” articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds Support Statement: Surface Pattern Syntax&lt;/li&gt;
&lt;li&gt;Adds Support Statement: What does migStatus=“external” stand for&lt;/li&gt;
&lt;li&gt;Updates Support Statement: Generating a Global Stub Framework&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>gmStudio Release News: Friday, 18-August-2023</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-friday-18-august-2023/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-friday-18-august-2023/</guid><pubDate>Fri, 18 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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, &lt;strong&gt;Version 40.53&lt;/strong&gt;, includes many enhancements; for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds Migrate@Default for modifying the default member for COM classes&lt;/li&gt;
&lt;li&gt;Adds migration of LockRange and UnlockRange&lt;/li&gt;
&lt;li&gt;Adds support for DefObj statement&lt;/li&gt;
&lt;li&gt;Corrects problem with event hookups in designer code; adds SpecializedHookup=on migration attribute for events (See this &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-using-specializedhookup-when&quot;&gt;Support Statement&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Increases limit for storing User-Defined event information&lt;/li&gt;
&lt;li&gt;Improves consistency between interfaces and implementing classes&lt;/li&gt;
&lt;li&gt;Improves translation of bitwise logic using Color quantities&lt;/li&gt;
&lt;li&gt;Improves handling FormShowConstants enum&lt;/li&gt;
&lt;li&gt;Improves handling vbTriState enum&lt;/li&gt;
&lt;li&gt;Improves resolution of User-Defined-Types defined in multiple places&lt;/li&gt;
&lt;li&gt;Improves resolution of enums defined in multiple places&lt;/li&gt;
&lt;li&gt;Improves migration of local const Color&lt;/li&gt;
&lt;li&gt;Improves migration of mixed type IIf&lt;/li&gt;
&lt;li&gt;Improves migration of Menu.WindowList&lt;/li&gt;
&lt;li&gt;Improves migration of array properties used with indexed expressions&lt;/li&gt;
&lt;li&gt;Improves migration of variables typed using type indicator characters&lt;/li&gt;
&lt;li&gt;Improves handling ByRef parameters in user-defined events&lt;/li&gt;
&lt;li&gt;Improves handling of the ! operator&lt;/li&gt;
&lt;li&gt;Improves handling of const initialized to an enum&lt;/li&gt;
&lt;li&gt;Improves handling is operator used with Controls and Components&lt;/li&gt;
&lt;li&gt;Improves handling of CDate(Empty)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves Side-By-Side Viewer to use the target language of the selected task when selecting for the translated file&lt;/li&gt;
&lt;li&gt;Improves Source Search unique files criteria to be case-insensitive&lt;/li&gt;
&lt;li&gt;Improves adds Reference satus to the Metrics Summary Report&lt;/li&gt;
&lt;li&gt;Corrects member name shown in Source Search report for ASP code&lt;/li&gt;
&lt;li&gt;Improves error reporting for RESX data generation process&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves Environment.std.xml StubBaseClass rules&lt;/li&gt;
&lt;li&gt;Adds ListControls_ItemData.gmsl&lt;/li&gt;
&lt;li&gt;Improves VB6 language translation overrides sample (mig.vb7lang.xml)&lt;/li&gt;
&lt;li&gt;Improves Windows Common Controls (mscomct2.ocx) rules&lt;/li&gt;
&lt;li&gt;Improves Windows Common Controls (mscomctl.ocx) rules&lt;/li&gt;
&lt;li&gt;Improves MSOutline Control (msoutl32.ocx) rules&lt;/li&gt;
&lt;li&gt;Improves RichTextBox (richtx32.ocx) rules&lt;/li&gt;
&lt;li&gt;Improves Scripting (scrrun.dll) rules&lt;/li&gt;
&lt;li&gt;Improves Standard.Rules.xml sample&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves FileExplorer sample to demonstrate use of SpecializedHookup=“on”&lt;/li&gt;
&lt;li&gt;Improves VBScan sample to demonstrate use of SpecializedHookup=“on”&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learning and using gmStudio. You can find &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Great+Migrations+FAQs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt; The followiug “Support Statement” articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using gmSL to determine if an optional argument was omitted&lt;/li&gt;
&lt;li&gt;ListView.Add example of using gmSL to map COM to .NET&lt;/li&gt;
&lt;li&gt;Generating a Global Stub Framework&lt;/li&gt;
&lt;li&gt;How does gmStudio run builds?&lt;/li&gt;
&lt;li&gt;Unused Symbol Analysis and Reporting&lt;/li&gt;
&lt;li&gt;Removing Code&lt;/li&gt;
&lt;li&gt;Translation Challenges&lt;/li&gt;
&lt;li&gt;Setting Scope for an ASP Site Upgrade&lt;/li&gt;
&lt;li&gt;MigrationSupport (gmRTL) Source Code&lt;/li&gt;
&lt;li&gt;What does migStatus=“external” stand for&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>gmStudio Release News: Monday, 30-May-2023</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-monday-30-may-2023/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-monday-30-may-2023/</guid><pubDate>Tue, 30 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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, &lt;strong&gt;Version 40.49&lt;/strong&gt;, includes enhancements; for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves migration of user-defined events to use sender/EventArgs conventions&lt;/li&gt;
&lt;li&gt;Improves migration of multi-type code using conditional typing based on the typeof operator&lt;/li&gt;
&lt;li&gt;Adds more type inference for symbols declared as Object&lt;/li&gt;
&lt;li&gt;Adds Refactor/Remove for Events&lt;/li&gt;
&lt;li&gt;Improves GoSub refactoring&lt;/li&gt;
&lt;li&gt;Begins work on a 64bit distribution (coming soon)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves Net Build Log Report to update last message field for each Task&lt;/li&gt;
&lt;li&gt;Improve License handling when ASP LOC=0&lt;/li&gt;
&lt;li&gt;Improves Specification Code Generator set UserCmds.cmd file to writable&lt;/li&gt;
&lt;li&gt;Improves VisualSolution Generator to support nested folders&lt;/li&gt;
&lt;li&gt;Improves parsing .NET Build Log when parallel build is in effect&lt;/li&gt;
&lt;li&gt;Improves member location reported by Target Code Scan and .NET Build Log Reports (VB.NET)&lt;/li&gt;
&lt;li&gt;Improves search by preventing accidentally searching for blanks&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves implementation of the custom CodeStyle capability to use new XML-driven gmAPI conventions&lt;/li&gt;
&lt;li&gt;Improves implementation of the WPF migration capability to use new XML-driven gmAPI conventions&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves COM replacement rules for Scripting Runtime to System.IO&lt;/li&gt;
&lt;li&gt;Improves COM replacement rules for CommonDialog to WinForms common Dialog controls&lt;/li&gt;
&lt;li&gt;Improves COM replacement rules for Windows Common Controls to WinForms&lt;/li&gt;
&lt;li&gt;Improves Sample rules for custom VB6 Language replacements&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-runtime-library&quot;&gt;gmRTL: Great Migrations Runtime Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated to use Framework V4.7.2&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves WPF Samples to user the new XML-Driven custom upgrade processor conventions rather than the deprecated GM Migration Utility approach.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio. You can find &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Great+Migrations+FAQs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt; The followiug articles were added or updated since the last product update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support Statement: Removing a container control (e.g. vsElastic )&lt;/li&gt;
&lt;li&gt;Support Statement: Unused Symbol Analysis and Reporting&lt;/li&gt;
&lt;li&gt;Support Statement: Improving Type Inference for MSHTML&lt;/li&gt;
&lt;li&gt;Support Statement: Sample Migration of CommonDialog to Winforms&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>gmStudio Release News: Monday, 27-March-2023</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-monday-27-march-2023/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-monday-27-march-2023/</guid><pubDate>Mon, 27 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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, &lt;strong&gt;Version 40.44&lt;/strong&gt;, includes many enhancements; for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves adjustment of Twips to Pixels in complex calculations&lt;/li&gt;
&lt;li&gt;Improves RootNameSpace in C# project files&lt;/li&gt;
&lt;li&gt;Improves the &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmSLIntroduction&quot;&gt;gmSL&lt;/a&gt; runtime to allow Cross-Class function calls&lt;/li&gt;
&lt;li&gt;Improves Conditional Stubout for VBN&lt;/li&gt;
&lt;li&gt;Improves GenericCollections migration&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds Support for GMEXEC:Script Convention for running custom GMAPI executables&lt;/li&gt;
&lt;li&gt;Adds Edit/Find to the file content display box on the Settings form&lt;/li&gt;
&lt;li&gt;Improves Target Code Scan Report to correctly report member rather than statement label&lt;/li&gt;
&lt;li&gt;Improves performance of %ReferenceList% detokenization&lt;/li&gt;
&lt;li&gt;Improves Translation Log Report for XMLERRORs and EMRROOM errors&lt;/li&gt;
&lt;li&gt;Improves managing System Metalang Files from settings screen&lt;/li&gt;
&lt;li&gt;Improves editing CodeSearchList and SearchTemplate&lt;/li&gt;
&lt;li&gt;Improves naming convention for script templates created&lt;/li&gt;
&lt;li&gt;Improves default translation scripts to use OptionalArguments=On&lt;/li&gt;
&lt;li&gt;Improves hot-key handling on Task Attributes Dialog&lt;/li&gt;
&lt;li&gt;Improves default button behavior on Filter Dialog&lt;/li&gt;
&lt;li&gt;Improves COM dependency analysis for ASP code&lt;/li&gt;
&lt;li&gt;Improves Reference information panel and Analytics Report error handling&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds new XML-driven execution model for custom upgrade engines developed with gmAPI&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves COM replacement rules for Scripting Runtime to System.IO&lt;/li&gt;
&lt;li&gt;Improves COM replacement rules for CommonDialog to WinForms common Dialog controls&lt;/li&gt;
&lt;li&gt;Improves COM replacement rules for Windows Common Controls to WinForms&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-run-time-library&quot;&gt;gmRTL: Great Migrations Run Time Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. Learn more about gmRTL &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Various additions and refactoring&lt;/li&gt;
&lt;li&gt;Adjustments to support changes in sequence of gmRTL processing&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves samples to use OptionalArguments=on&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-faqs&quot;&gt;gmStudio FAQs&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Great+Migrations+FAQs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt;  Please feel free to contact us with questions anytime.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support Statement: &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-upgrading-com-component-property&quot;&gt;Upgrading a COM Component property to a WinForms Static property&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support Statement: &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-statement-dealing-with-twips-to-pixels&quot;&gt;Dealing with Twips to Pixels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support Statement: &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-statement-globalsettings-enhancements&quot;&gt;GlobalSettings enhancements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>New Support Statements</title><link>https://www.greatmigrations.com/blog/new-support-statements/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/new-support-statements/</guid><pubDate>Mon, 27 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Great Migrations publishes FAQ articles and other information to help teams learn and use gmStudio.  You can find &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Great+Migrations+FAQs&quot;&gt;all of the gmStudio FAQs on the Great Migrations portal.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support Statement: &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Support+Statement%3A+Upgrading+a+COM+Component+property+to+a+WinForms+Static+property&quot;&gt;Upgrading a COM Component property to a WinForms Static property&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support Statement: &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Support+Statement%3A+Dealing+with+Twips+to+Pixels&quot;&gt;Dealing with Twips to Pixels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support Statement: &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Support+Statement%3A+GlobalSettings+enhancements&quot;&gt;GlobalSettings enhancements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please feel free to contact us with questions or ideas for ideas of other support statements anytime.&lt;/p&gt;
&lt;p&gt;PS. I know I really should do a blog post as part of my SOP for publishing new documentation.  I will be more diligent going forward.&lt;/p&gt;
&lt;br&gt;</content:encoded></item><item><title>gmStudio Release News: Sunday, 11-December-2022</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-sunday-11-december-2022/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-sunday-11-december-2022/</guid><pubDate>Sun, 11 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;egmbasic-upgrade-engine&quot;&gt;egmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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, &lt;strong&gt;Version 40.39&lt;/strong&gt;, includes many enhancements; for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves migration of strings from FRX file to Designer code&lt;/li&gt;
&lt;li&gt;Improves handling naming conflicts between enums and fields&lt;/li&gt;
&lt;li&gt;Improves migration of type-inferred Variant-array used with empty string&lt;/li&gt;
&lt;li&gt;Improves migration of logic comparing IntPtr and zero&lt;/li&gt;
&lt;li&gt;Improves migration of Load control statement with a type-inferred ControlArray&lt;/li&gt;
&lt;li&gt;Improves inferring the type of Object as a strongly-typed ControlArray&lt;/li&gt;
&lt;li&gt;Improves migrating optional default Date parameter values&lt;/li&gt;
&lt;li&gt;Improves generation of EventArgs classes in the Stub Framework&lt;/li&gt;
&lt;li&gt;Improves migration of event handlers with weakly-typed parameters&lt;/li&gt;
&lt;li&gt;Improves migration of OLE_HANDLE used as a method parameter&lt;/li&gt;
&lt;li&gt;Improves inference of weakly-typed parameter based on Array() argument&lt;/li&gt;
&lt;li&gt;Improves migration of complex conditional expressions with both bitwise and logical operations&lt;/li&gt;
&lt;li&gt;Improves handling of AlignmentConstants and control.Alignment properties&lt;/li&gt;
&lt;li&gt;Improves Twips to pixels migration to a Const&lt;/li&gt;
&lt;li&gt;Improves recognizing types imported from external libraries used in RefactorLibraries&lt;/li&gt;
&lt;li&gt;Improves csproj and vbproj generation to follow current Visual Studio conventions&lt;/li&gt;
&lt;li&gt;Improves migration of Printer.KillDoc&lt;/li&gt;
&lt;li&gt;Improves recognizing the type of ControlArray elements&lt;/li&gt;
&lt;li&gt;Improves handling one-line With blocks using alternate statements separator&lt;/li&gt;
&lt;li&gt;Improves interpreting expressions of the form Me.frmX.Controls!name&lt;/li&gt;
&lt;li&gt;Improves migrating For Each ctl in Me.Controls&lt;/li&gt;
&lt;li&gt;Improves handling COM APIs where there is a name clash of the library and one of its classes (SSPlitter)&lt;/li&gt;
&lt;li&gt;Improves migrating Do-While where the loop control variable is declared within the body of the loop&lt;/li&gt;
&lt;li&gt;Improves migrating Select-Case using a constant Select value over different constant case values&lt;/li&gt;
&lt;li&gt;Improves migrating of VB4AppearanceConstants&lt;/li&gt;
&lt;li&gt;Improves handling methods calls passing a ColorConstant argument to an OLE_COLOR parameter&lt;/li&gt;
&lt;li&gt;Improves migrating event handlers for ControlArrays&lt;/li&gt;
&lt;li&gt;Improves migration of ControlArray used as a With block variable&lt;/li&gt;
&lt;li&gt;Improves migration of conditional expressions using default property&lt;/li&gt;
&lt;li&gt;Improves migration of logical calculations involving enum and bool&lt;/li&gt;
&lt;li&gt;Improves migration of the Implication operator (Imp)&lt;/li&gt;
&lt;li&gt;Improves migration of For Each over an enumerable COM property&lt;/li&gt;
&lt;li&gt;Improves migration of Get Property return values&lt;/li&gt;
&lt;li&gt;Improves comparisons involving stdole.StdPicture&lt;/li&gt;
&lt;li&gt;Improves migration of Debug.Print using Tab() function&lt;/li&gt;
&lt;li&gt;Improves migration of Button.Default property to AcceptButton&lt;/li&gt;
&lt;li&gt;Improves migrating complex logic expression involving Long, Boolean, and bitwise operation&lt;/li&gt;
&lt;li&gt;Improves handling of computations using Currency and Double&lt;/li&gt;
&lt;li&gt;Improves migration of recursive functions passed as an argument in the recursive call&lt;/li&gt;
&lt;li&gt;Improves using refTemp for an argument passed to object! operation.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds &lt;strong&gt;Visual Studio 2022 support&lt;/strong&gt; for authoring VS022 projects and integrating with VS2022 IDE&lt;/li&gt;
&lt;li&gt;Adds Analytics &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Semantic+Model+Reports#SemanticModelReports-UnusedSymbols&quot;&gt;&lt;strong&gt;Unused Symbols Report&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Adds Analytics &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Semantic+Model+Reports#SemanticModelReports-LateCalls&quot;&gt;&lt;strong&gt;Late Calls Report&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Improves &lt;strong&gt;Iceberg Report&lt;/strong&gt; to reflect new build-path conventions&lt;/li&gt;
&lt;li&gt;Improves References Report to include IdfPath and IdfType even if the IDL contains TLI warnings&lt;/li&gt;
&lt;li&gt;Improves COM Reference searches and Snapshot comparison to use TaskTag-specific folder content&lt;/li&gt;
&lt;li&gt;Improves Task Removal confirmation dialog to show number of tasks selected for removal&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves API for Unused Symbols and Late Calls Analysis&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves COM replacement Scripting Runtime to System.IO rules&lt;/li&gt;
&lt;li&gt;Improves ListBox/ComboBox ItemData FRX to Designer code migration script&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-run-time-library&quot;&gt;gmRTL: Great Migrations Run Time Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. Learn more about gmRTL &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves ListBox/ComboBox ItemData Support logic&lt;/li&gt;
&lt;li&gt;Adds stub methods for Printer, Help, and Control support&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves the FMStocks Web Site sample for VB.NET&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>New Reports: Unused Symbols and Late Calls</title><link>https://www.greatmigrations.com/blog/new-reports-unused-symbols-and-late-calls/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/new-reports-unused-symbols-and-late-calls/</guid><pubDate>Sun, 11 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Large mature systems often contain symbols that are no longer used. These may be methods that are no longer called or variables and data structures that are no longer referenced by active logic. These unused symbols are often referred to as “dead code, dead wood, &lt;a href=&quot;https://en.wikipedia.org/wiki/Cruft&quot;&gt;Cruft&lt;/a&gt;”. Dead code make a system “&lt;a href=&quot;https://en.wikipedia.org/wiki/Code_smell&quot;&gt;smell bad&lt;/a&gt;” and a form of &lt;a href=&quot;https://en.wikipedia.org/wiki/Technical_debt&quot;&gt;technical debt&lt;/a&gt;, and it can be difficult to identify and risky to remove.  An Upgrade Project is an optimal time to deal with dead code because gmStudio can help you identify and remove it.&lt;/p&gt;
&lt;p&gt;Learn how in this &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-unused-symbol-analysis-and-reporting&quot;&gt;Support Statement: Unused Symbol Analysis and Reporting&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>gmStudio Release News: Monday, 10-October-2022</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-monday-10-october-2022/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-monday-10-october-2022/</guid><pubDate>Mon, 10 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmBasic is a code transformation engine that reads, interprets, and rewrites VB6/ASP/COM systems to one of the .NET languages (C# or VB.NET). Based on feedback from our clients and migration projects in the field, we are continuously improving gmBasic so as to help developers more easily produce cleaner and more correct upgrade results. Most recently, this work includes general improvements needed to produce build-complete C# code for a Retail ERP system having 1.2M LOC organized into 73 inter-related VBPs, and to produce build-complete VB.NET code for a Construction Project Management System having 800K LOC organized into 31 inter-related VBPs. The release also includes&lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-unused-symbol-analysis-and-reporting&quot;&gt;a sophisticated new utility, gmGlobal, that can automate the process of identifying dead code.&lt;/a&gt; This major distribution, &lt;strong&gt;Version 40.34&lt;/strong&gt;, includes many enhancements; for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves inference of array rank when a undimensioned variant is used as an array&lt;/li&gt;
&lt;li&gt;Improves migration of Object inferred as Form used with For Each&lt;/li&gt;
&lt;li&gt;Improves migration of the VB6 intrinsic Input function to a Generic method&lt;/li&gt;
&lt;li&gt;Improves overall correctness of results when using the &lt;strong&gt;Shared Files consolidation&lt;/strong&gt; capability&lt;/li&gt;
&lt;li&gt;Improves overall correctness of results when using the &lt;strong&gt;Optional Arguments&lt;/strong&gt; capability&lt;/li&gt;
&lt;li&gt;Improves declaration of stub controls that override Name property&lt;/li&gt;
&lt;li&gt;Improves the Global Stub framework for systems that use Implements commands&lt;/li&gt;
&lt;li&gt;Improves assembly references added for GlobalStubs translations&lt;/li&gt;
&lt;li&gt;Improves avoiding a name clash between external class name and module field&lt;/li&gt;
&lt;li&gt;Improves ability to recognize methods called like properties&lt;/li&gt;
&lt;li&gt;Improves stub framework generation to allow implementing multiple interfaces (VB.NET)&lt;/li&gt;
&lt;li&gt;Improves stubbing Readonly properties (VB.NET)&lt;/li&gt;
&lt;li&gt;Improves handling of date literal assigned to const (VB.NET)&lt;/li&gt;
&lt;li&gt;Improves handling of operations that involve a late-bound implicit default property&lt;/li&gt;
&lt;li&gt;Improves the behavior of Refactor/Remove&lt;/li&gt;
&lt;li&gt;Improves migration of array properties&lt;/li&gt;
&lt;li&gt;Improves handling name clash between method and one of its parameters&lt;/li&gt;
&lt;li&gt;Improves vbCrLf used as an optional parameter default (VB.NET)&lt;/li&gt;
&lt;li&gt;Improves translation of late bound reference to a collection item&lt;/li&gt;
&lt;li&gt;Improves handling of codes declaring symbols that clash with VB.NET reserved words&lt;/li&gt;
&lt;li&gt;Improves handling migration of GoSub in methods declaring optional parameters&lt;/li&gt;
&lt;li&gt;Improves logic to detect implicit conversions that must be made explicit (VB.NET)&lt;/li&gt;
&lt;li&gt;Improves logic to make default property reference explicit for a Select Case (VB.NET)&lt;/li&gt;
&lt;li&gt;Improves detecting and reporting undeclared identifiers&lt;/li&gt;
&lt;li&gt;Improves initializing const symbols using an enum entry&lt;/li&gt;
&lt;li&gt;Improves reference tracking to allow for &lt;strong&gt;Unused symbol analysis&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Improves &lt;strong&gt;csproj and vbproj content&lt;/strong&gt; to follow current Visual Studio conventions&lt;/li&gt;
&lt;li&gt;Improves processing more &lt;strong&gt;HTML5&lt;/strong&gt; tags in ASP translations&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Changes Trial License limits; increases duration to 30 days; lowers LOC limits: VB6=5,000 LOC, ASP=2,500 LOC&lt;/li&gt;
&lt;li&gt;Adds Source Member to .NET Build Log Report and Target Code Scan Report for VB.NET translation tasks&lt;/li&gt;
&lt;li&gt;Adds Translation Audit as a new type of report&lt;/li&gt;
&lt;li&gt;Improves IDL generator to allow reporting hidden coclasses&lt;/li&gt;
&lt;li&gt;Improves Target Code Scan to report TaskTag rather than File extension in the LocType field&lt;/li&gt;
&lt;li&gt;Improves Ctrl-C handling to follow control having focus&lt;/li&gt;
&lt;li&gt;Improves Task-list Hot-Key handling&lt;/li&gt;
&lt;li&gt;Adds Alt-G as hotkey to Generate and Open VS Solution file&lt;/li&gt;
&lt;li&gt;Improves All IDF Scan to search all IDF folders&lt;/li&gt;
&lt;li&gt;Corrects issue where malformed XML attributes in ScriptRules file caused gmStudio to hang or crash&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gmAPI was extended and used to implement &lt;a href=&quot;https://www.greatmigrations.com/docs/docs/articles-and-whitepapers/great-migrations-faqs/support-unused-symbol-analysis-and-reporting&quot;&gt;gmGlobal, a utility that identifies and reports unused symbols across multiple inter-related VBPs&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Adds several low-level functions to support reference analysis&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds more detailed symbol usage data to Semantic Audit Reports&lt;/li&gt;
&lt;li&gt;Improves accuracy of References Report&lt;/li&gt;
&lt;li&gt;Improves accuracy of Definitions Report&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves Environment.std.xml with additional StubBaseClass entries&lt;/li&gt;
&lt;li&gt;Adds sample gmGlobalIncludes.gmsl and gmGlobalIncludes.xml to Global Includes analysis&lt;/li&gt;
&lt;li&gt;Adds MSCAL.ocx.WinForms.Refactor.xml&lt;/li&gt;
&lt;li&gt;Adds MSWORD.OLB.Interop.Refactor.xml&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-run-time-library&quot;&gt;gmRTL: Great Migrations Run Time Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. Learn more about gmRTL &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds gmRTL.GUI.PictureBoxExtended control to support drawing graphics on a PictureBox&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>gmStudio Release News: Tuesday, 05-July-2022</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-tuesday-05-july-2022/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-tuesday-05-july-2022/</guid><pubDate>Tue, 05 Jul 2022 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmBasic is a code transformation engine that reads, interprets, and rewrites VB6/ASP/COM systems to one of the .NET languages (C# or VB.NET). Based on feedback from our clients and migration projects in the field, we are continuously improving gmBasic so as to help users more easily produce cleaner and more correct results. Most recently, this work includes general improvements needed to produce build-complete C# and VB.NET code based for several enterprise systems containing over 2M LOC organized into dozens of inter-related VBPs. This major distribution, &lt;strong&gt;Version 40.30&lt;/strong&gt;, includes several enhancements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds support for specifying a base class for controls in the stub framework&lt;/li&gt;
&lt;li&gt;Improves the quality of translations for systems of many inter-related VBPs&lt;/li&gt;
&lt;li&gt;Improves handling numeric const values declared with type indicator character&lt;/li&gt;
&lt;li&gt;Improves expression of VB File IO Operations: LOF, Seek, FileCopy&lt;/li&gt;
&lt;li&gt;Improves handling of parameters declared As Any&lt;/li&gt;
&lt;li&gt;Improves handling of name clashes between global symbols&lt;/li&gt;
&lt;li&gt;Improves handling of PictureBox.Image.Set&lt;/li&gt;
&lt;li&gt;Improves type inference for variants used as arrays&lt;/li&gt;
&lt;li&gt;Improves inferring the number of dimensions for array parameters&lt;/li&gt;
&lt;li&gt;Improves handling undeclared variables when archaic typing directives (e.g. DefInt) are in use&lt;/li&gt;
&lt;li&gt;Improves handling Select-Case with byte compared to enum entry&lt;/li&gt;
&lt;li&gt;Improves translation for integer division for VB.NET&lt;/li&gt;
&lt;li&gt;Improves conversion of string to double for VB.NET&lt;/li&gt;
&lt;li&gt;Improves GoSub migration to support references to local const variables&lt;/li&gt;
&lt;li&gt;Improves GoSub migration when subroutines are refactored out of functions for VB.NET&lt;/li&gt;
&lt;li&gt;Improves handling of comments in ASP translations&lt;/li&gt;
&lt;li&gt;Improves migrating parameterized properties&lt;/li&gt;
&lt;li&gt;Improves migrating enumerations in COM libraries&lt;/li&gt;
&lt;li&gt;Improves migrating methods with optional arguments&lt;/li&gt;
&lt;li&gt;Improves migrating Select Case Is… with Date variables&lt;/li&gt;
&lt;li&gt;Improves migrating VB.Line geometry from Twips to pixels in designer code&lt;/li&gt;
&lt;li&gt;Improves handling of interfaces when generating translation for a system of inter-related VBPs&lt;/li&gt;
&lt;li&gt;Improves handling of custom events and event handlers when generating translation for a system of inter-related VBPs&lt;/li&gt;
&lt;li&gt;Improved migration of On Error handling to try-catch&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds Reset Filter item to Toolbar Filter button&lt;/li&gt;
&lt;li&gt;Adds Line Pragma (%LN%) to ScriptRule pre-processor and editor integration&lt;/li&gt;
&lt;li&gt;Adds option to create a starter for a hand-coded IDF (e.g. for when IDF cannot be generated from COM)&lt;/li&gt;
&lt;li&gt;Improves handling of Task List context menu hotkeys when task list does not have focus&lt;/li&gt;
&lt;li&gt;Improves handling of Task Filtering hotkeys&lt;/li&gt;
&lt;li&gt;Improves conventions for using custom tools with gmStudio project tasks&lt;/li&gt;
&lt;li&gt;Improves logic for merging ScriptRule elements into the translation script in the order they are defined in the ScriptRules file&lt;/li&gt;
&lt;li&gt;Improves user folder scan by suppressing matches in CodeScanList.txt&lt;/li&gt;
&lt;li&gt;Improves Source Metrics Report to include DSX report data&lt;/li&gt;
&lt;li&gt;Improves Side-by-Side Viewer to include DSX report data&lt;/li&gt;
&lt;li&gt;Improves IDF generator to handle typedefs for auto properties in IDL for interop assemblies&lt;/li&gt;
&lt;li&gt;Improves Title of the Side-by-Side Viewer panels&lt;/li&gt;
&lt;li&gt;Improves Information Panel grid data cache/refresh behavior&lt;/li&gt;
&lt;li&gt;Improves Side-by-Side viewer for use with VBScript classes&lt;/li&gt;
&lt;li&gt;Improves .NET Build Log reporting performance and editor integration&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds option to generate System Metalanguage Information File Audit&lt;/li&gt;
&lt;li&gt;Improves the quality of reference location reporting for ASP systems&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds sample Environment.std.xml to the gmStudio standard distribution&lt;/li&gt;
&lt;li&gt;Adds sample rules for setting the base class for classes in the stub dependency framework&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-run-time-library&quot;&gt;gmRTL: Great Migrations Run Time Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. gmRTL namespace and class structure conventions will replace the legacy RTL conventions in the next gmStudio release. The old conventions (MigrationSupport, MigrationSupportUI, etc.) will be deprecated, but still available as custom migration options. Learn more about gmRTL &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>gmStudio Release News: Saturday, 05-March-2022</title><link>https://www.greatmigrations.com/blog/gmstudio-release-news-saturday-05-march-2022/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/gmstudio-release-news-saturday-05-march-2022/</guid><pubDate>Sat, 05 Mar 2022 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;gmbasic-upgrade-engine&quot;&gt;gmBasic: Upgrade Engine&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmBasic is a code transformation tool that reads, interprets, and rewrites VB6/ASP/COM systems to one of the .NET languages (C# or VB.NET). Based on feedback from our clients and migration projects in the field, we are continuously improving gmBasic so as to help users more easily produce cleaner and more correct results. Most recently, this work includes general improvements needed to produce build-complete C# code for a Construction ERP product. This system is 31 inter-related VB6 project components containing 820K LOC organized into 1,125 code files and supported by 46 external COM libraries. This distribution, &lt;strong&gt;Version 40.25&lt;/strong&gt;, includes several enhancements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves handling the default member operator, ’!’&lt;/li&gt;
&lt;li&gt;Improves handling inferring implicit references to default members&lt;/li&gt;
&lt;li&gt;Improves handling of logic using ControlArrays&lt;/li&gt;
&lt;li&gt;Improves handling recognizing references to unqualified global enumeration entries&lt;/li&gt;
&lt;li&gt;Improves handling numeric literals using exponential notation&lt;/li&gt;
&lt;li&gt;Improves handling of numeric values using hexadecimal notation in IDL to IDF&lt;/li&gt;
&lt;li&gt;Improves parsing ASP attribute values containing complex VBScript logic&lt;/li&gt;
&lt;li&gt;Improves migration of a local method to a custom call pattern&lt;/li&gt;
&lt;li&gt;Improves migration of VBP information to AssemblyInfo content&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-upgrade-solution-development-environment&quot;&gt;gmStudio: Upgrade Solution Development Environment&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves logic that maintains the Workspace runtime folder&lt;/li&gt;
&lt;li&gt;Improves performance of .NET Build Log Report and the associated listing in the UI&lt;/li&gt;
&lt;li&gt;Improves IDL/IDF handling of const = Infinity&lt;/li&gt;
&lt;li&gt;Improves spawning a process without console logging&lt;/li&gt;
&lt;li&gt;Improves ScriptRule command to allow script variables in the id attribute&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmapi-a-net-api-for-developing-advanced-upgrade-solutions&quot;&gt;gmAPI: a .NET API for Developing Advanced Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmmetrics-advanced-metrics-reporting-tool&quot;&gt;gmMetrics: Advanced Metrics Reporting tool&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;gmstudio-extensions&quot;&gt;gmStudio Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/gmStudio+Extensions&quot;&gt;gmStudio Extensions Repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds MSCAL.ocx.WinForms.Refactor.xml&lt;/li&gt;
&lt;li&gt;Improves GM.MSCAL.OCX.xml&lt;/li&gt;
&lt;li&gt;Improves mscomctl.ocx.WinForms.Transform.gmsl&lt;/li&gt;
&lt;li&gt;Improves scrrun.dll.Transform.gmsl&lt;/li&gt;
&lt;li&gt;Improves StubControlBaseClass.Rules.xml&lt;/li&gt;
&lt;li&gt;Improves StubControlBaseClass.xml&lt;/li&gt;
&lt;li&gt;Improves wpfSubsystem.gmsl&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;gmrtl-great-migrations-run-time-library&quot;&gt;gmRTL: Great Migrations Run Time Library&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;gmRTL is a sample runtime library that contains classes allowing for more readable translations. gmRTL namespace and class structure conventions will replace the legacy RTL conventions in the next gmStudio release. The old conventions (MigrationSupport, MigrationSupportUI, etc.) will be deprecated, but still available as custom migration options. Learn more about gmRTL &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Runtime+Library+Requirements+and+Support&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improves gmRTL.GUI.ControlHelper.GetDrawStyle/SetDrawStyle.style&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;sample-upgrade-solutions&quot;&gt;Sample Upgrade Solutions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;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 &lt;a href=&quot;https://greatmigrations.atlassian.net/wiki/display/GMG/Samples&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>VB6/COM Still declining in popularity</title><link>https://www.greatmigrations.com/blog/vb6-com-still-declining-in-popularity/</link><guid isPermaLink="true">https://www.greatmigrations.com/blog/vb6-com-still-declining-in-popularity/</guid><pubDate>Wed, 12 Jan 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I just had a customer ask me about the future of COM support on Windows.  Here is how I responded&lt;/p&gt;
&lt;hr&gt;
&lt;br&gt;
&lt;p&gt;Someone mentioned they had heard the VB6 runtime will not be supported beyond Windows10 (2025?).  I could not find any official word on that.  But I know there is no support statement for VB6 on Windows 11 — but that is not an official Windows release yet, so…&lt;/p&gt;
&lt;p&gt;One thing: COM is a typically 32-bit technology and special steps are needed to work on 64-bit.  On 64bit, which is what most Windows installations are running any more, COM must run in a 32-bit emulation.  Maybe you have noticed VB6 COM references need to be to files in the SysWOW64 folder, not the System32 folder…&lt;/p&gt;
&lt;p&gt;Bottom line, VB6 and COM may be officially supported by Microsoft, but they are not mainstream anymore.  As time goes on, you are more likely to run into difficult issues with them; you will find yourself in troubled waters, in a boat by yourself without a paddle… And more importantly, all VB6 programmers will eventually leave the labor pool.  Organizations still running VB6 will have no one to go to for help when they have technical problems.  Organizations may choose to bear that risk and continue to put out VB6/COM compatibility fires as they come up, &lt;strong&gt;or they can upgrade their systems and join the much larger community of .NET/C# developers on a vital, well-supported platform.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To give you an idea about the level of interest in VB6 vs C# here are some relevant metrics:&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Google Search (June 2021)&lt;/p&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Search String&lt;/th&gt;&lt;th&gt;Results&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;”VB6 Programming”&lt;/td&gt;&lt;td&gt;14,500&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;”C# Programming”&lt;/td&gt;&lt;td&gt;2,270,000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;”VB.NET Programming”&lt;/td&gt;&lt;td&gt;175,000&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;br&gt;
&lt;p&gt;GitHub (Jan 2022)&lt;/p&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Search String (based on file extension)&lt;/th&gt;&lt;th&gt;Results&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;VBP &lt;a href=&quot;https://github.com/search?q=extension%3Avbp&amp;#x26;type=Code&quot;&gt;https://github.com/search?q=extension%3Avbp&amp;#x26;type=Code&lt;/a&gt;&lt;/td&gt;&lt;td&gt;260,579&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CSPROJ &lt;a href=&quot;https://github.com/search?q=extension%3Acsproj&amp;#x26;type=Code&quot;&gt;https://github.com/search?q=extension%3Acsproj&amp;#x26;type=Code&lt;/a&gt;&lt;/td&gt;&lt;td&gt;7,223,451&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VBPROJ &lt;a href=&quot;https://github.com/search?q=extension%3Avbproj&amp;#x26;type=Code&quot;&gt;https://github.com/search?q=extension%3Avbproj&amp;#x26;type=Code&lt;/a&gt;&lt;/td&gt;&lt;td&gt;185,686&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;Here are some details on VB6 support from Microsoft.  &lt;br&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy&quot;&gt;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy&lt;/a&gt;&lt;/p&gt;







&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;br&gt;&lt;/th&gt;&lt;th&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy&quot;&gt;Support Statement for Visual Basic 6.0&lt;/a&gt;&lt;br&gt;&lt;br&gt;Visual Basic 6.0 Support Policy&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://docs.microsoft.com&quot;&gt;http://docs.microsoft.com&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;/table&gt;</content:encoded></item></channel></rss>