Skip to content

Blog

09/02/2013 public release

gmBasic 10.06B9<br />[+] Added support for translation subsystems. (select subSystem="id")<br /> A subsystem is a named set of language translation rules that implement a custom migration.<br /> For example producing WPF translations is done by activating the WPF subsystem.<br />[+] VB6 forms to WPF forms feature (supports most VB6 Intrinsic controls)<br />[+] Added ControlData API to gmSL. This also supports custom control migrations such as WPF.<br />[+] Additional migration events added to gmSL (AuthorProperties, CodeReference, AdjustProperties)<br />[+] Added Refactor-HasWeakSetter for accessors that take object<br />[+] Added Refactor-Declare to deal with missing declarations in ASP<br />[+] Added Refactor-RemoveResumeNext to deal with overly complex on error resume next functions<br />[+] Simplify FRX to RESX convention to avoid issues with special characters in resx filenames.<br />[+] Improved support for support for Graphics operations including Circle and Line command B and BF options<br />[+] Improved support for upgrading VB6 FileSystem listbox controls<br />[+] Improved support for source codes and COM components that use international character sets<br />[+] Support for '-' in ASP file names.<br /><br />
MetaLang<br />[Add] lang\WPFsubSystem.gmsl -- WPF Forms Authoring (beta)<br />[change] idf\Language.std.xml <br />[change] idf\MigrationSupport.dll.xml<br />[change] idf\ReferencesAudit.dll <br />[change] lang\netControls.xml <br />[change] lang\VB7Lang.xml <br />[change] lang\VB6IDL.XML <br />[change] lang\vbcontrols.xml <br />[change] lang\OPCODES.XML <br />[change] lang\TOOLLANG.XML <br />[change] lang\enumerations.xml <br />[change] lang\auditvbi.gmsl <br />[change] lang\VBASIC.XML <br />[change] lang\authortext.gmsl <br />[change] lang\GMSLANG.XML <br /><br />
gmStudio<br />[+] Improve UI responsiveness when running long processes<br />[+] Improve user control over scrolling session log to screen<br />[+] Update References/Definitions reports to use AuditVBI.gmsl<br />[+] Added Rules Samples management to Settings form<br />[+] Simplify view menu; removed items that are handled on Settings form<br />[!] Correct issue with report selector list not showing up in Trial Mode<br />[!] correct SrcFile path in NET Build Log report for ASP includes<br />[!] correct translation switches being cleared from the task in memory<br />[!] correct report type list being empty in trial mode<br /><br />
Samples<br />[+] Rework Scantool to filesystem listbox migration<br />[+] Rework FileExplorer sample to use new IDFs and gmSL for Common Controls replacements<br /><br />
Installation<br />[R] Retire GMNI DLLs that are now handled using gmSL <br />[+] Retire ReferenceAudit.dll<br />[+] Add ASPGlobalIncludes.dll to standard distribution (preparing for new Web Samples)<br />[+] Added a template GlobalImports script to settings folder (preparing for new Web Samples)<br />[+] Added a template GlobalIncludes script to settings folder (preparing for new Web Samples)<br />[+] Update the contents of extras\RefactorLibrary with more current samples and move to support\rules

07/05/2013 public release

gmBasic
[+] V10.05: Improvements for VB6 translation correctness
[+] Improvements for ASPX/ASCX correctness
[+] Ensure gmBasic generates code to properly initialize page reference in ASCX.CS files
[+] Support for rewriting GoSub as function call
[+] Added Refactor/Declare to explicitly add missing variables
[+] Added Select LinearizeFiles=on|off to work around build cycles among ASPX folders
[+] Additional support for reporting variable scope in References reports using AuditVBI.gmsl


MetaLang
[Change] idf\asplang.gmsl
[Change] idf\ASPLANG.XML
[Change] idf\MigrationSupport.dll.xml
[Change] lang\AspAuthor.gmsl
[Change] lang\auditvbi.gmsl
[Change] lang\authortext.gmsl
[Change] lang\enumerations.xml
[Change] lang\GMSLANG.XML
[Change] lang\OPCODES.XML
[Change] lang\ReferenceReports.xml
[Change] lang\TOOLLANG.XML
[Change] lang\VB6IDL.XML
[Change] lang\VBASIC.XML
[Change] lang\vbcontrols.xml


gmStudio
[+] Added UI support for VS2012 (beta)
[+] Improved TypeLib resolution from explicit script reference
[ ! ] Fixed TypeLib resolution from ProgID on Win64
[ ! ] Fixed undercounting GUI Lines in ASP by one in Code Structure Report
[ * ] UI Support for COM Replacements (Rules Management - pre-release requires Special license)

06/04/2013 public release


gmBasic
[+] 10.05B6 Various ASP/VB6 compiler improvements

MetaLang
[Change] lang\VB7Lang.xml default Setting to ExceptionHandling=Simple
[Change] lang\authortext.gmsl MigrationSupport naming changes
[Change] lang\VB6IDL.XML MigrationSupport naming changes
[Change] lang\VBASIC.XML MigrationSupport naming changes
[Change] lang\VBconstants.XML MigrationSupport naming changes
[Change] lang\VBcontrols.XML MigrationSupport naming changes

[Change] idf\asplang.xml additions
[Change] idf\Language.std.xml MigrationSupport naming changes
[Change] idf\mig.stdole2.tlb.xml MigrationSupport naming changes
[Change] idf\MigrationSupport.dll.xml MigrationSupport naming changes

gmStudio (Configuration Date = 6/04/13 22:48:01)
[+] Add Activate Project Specific config file feature to Settings form
[+] Improve Handling of VBPs that reference missing files
[+] Change Default Setting to ExceptionHandling=Simple
[+] Improve refresh of Details panel after logged operations
[+] Turn off translation log redirection when ShowSessionLog=false or MaxSessionLines==0
[+] Rename interop folder to runtime folder, also adding script variable %RuntimeFolder%
[!] Correct problem with Reference report libDesc field when library helpstring=""
[R] Standardize build platform to x86 (required for TLI implementation)
[R] Remove some dead codes

MigrationSupport
[+] Rename Lib class to Utils
[+] Add features to Utils class and to the UI and DataLib namespaces

05/12/2013 public release

gmBasic
[+] 10.05B3
[+] Additional gmSL improvemetns
[+] Various base VB6 translation improvements: collections
[+] Various base ASP translation improvements


Metalang
[Change] lang\VB7Lang.xml
[Change] lang\authortext.gmsl
[Change] lang\GMSLANG.XML
[Change] lang\OPCODES.XML

gmStudio
[+] Include *.gmsl files in User and Lang search reports
[!] Correct filtering on task filter on multiple fields

gmStudioPlugin (beta)
[!] Correct form resize issue

VB6, Windows 8, and beyond!!

This blog is mainly about the future of Windows and VB6. According to this Microsoft article VB6 is supported up to Windows 8.

What does Microsoft mean by “supported”?

Section titled “What does Microsoft mean by “supported”?”

“The Visual Basic team is committed to “It Just Works” compatibility for Visual Basic 6.0 …“1 Visual Basic 6.0 IDE has not had extended support since 2008. Support is split into three categories 2. Mainstream Support, Extended Support, and custom support. During the lifecycle of support, the type of support switches over time in phases. Mainstream support includes full support, such as the current release of Visual Studio. When a product switches over to extended support, hotfixes (unless purchased within 90 days of mainstream support ending), No-charge incident support, Warranty claims, Design changes, and feature requests are no longer offered. Extended support is provided for a maximum of 5 years after mainstream support ends. *“Microsoft offers custom support relationships that go beyond the Extended Support phase. These custom support relationships may include assisted support and hotfix support, and may extend beyond 10 years from the date a product becomes generally available.”3*Support is basically categorical fixes based on the phase of the product lifecycle.

Certain runtime files are still in extended support. The list of these can be found here as well as a list of known unsupported COM libraries. Runtimes that are not supported by Microsoft are 3rd party components. Over the years software companies have merged, sold, closed doors, moved on, but a handful still support their COM components. Knowing which ones are still supported and maintaining that support can take a lot of effort. The Visual Basic 6.0 IDE has had no mainstream support since 2005 and has not enjoyed mainstream support on a Windows OS since Windows 20004. The Visual Basic 6.0 IDE is the only product that can be used to build VB6 systems. The forms editor and compiler are highly guarded proprietary technologies and if they fail in your environment, your VB6 application maintenance and development work will come to a standstill.

Is “supported” good enough for an Enterprise application?

Section titled “Is “supported” good enough for an Enterprise application?”

VB6 Enterprise applications are built heavily on COM libraries. When VB6 was booming in the programming industry, COM libraries were the answers to all your needs. Pop in a new COM library and you have a new solution to some problem. Custom controls were easy to find and readily available for use. As a result, we have very large applications tightly coupled with these COM libraries. Should an Enterprise application still rely on COM components that are no longer supported? What if a security hole is found? Since 3rd party COM libraries are not supported by Microsoft, who knows when they will no longer even run in Windows. Microsoft takes a mainstream approach when moving their products. COM libraries are no longer in their path.

Windows 7 was a very nice release of Windows. The Windows XP of its time, it brings a beautiful look to a very stable sub system. Performance and flexibility are in high marks for this version of Windows. Windows 8 however, is a different animal altogether. Microsoft is pushing their interfaces to a more mobile platform. Azure, Silverlight, Cloud Services, WPF, and other web-based technologies are on Microsoft’s forefront. Windows 8 even has a web style coding behind their touch user interface. When Windows 8 was released Microsoft attempted to remove the start button from the taskbar and the desktop interface altogether. As Microsoft moves forward with their OS development we can only see their path leading away from the classic desktop application format. This path spells the end of VB6 desktop applications in the future.

What would a current VB6 team look like in 10, 20, 30 years from now?

Section titled “What would a current VB6 team look like in 10, 20, 30 years from now?”

Most people think about the technology as the only resource that will expire. There is more to the equation.

Quoted from Support Search VS6

Products ReleasedLifecycle Start DateMainstream Support End DateExtended Support End Date
Visual Basic 6.0 Enterprise Edition1/27/19993/31/20054/8/2008
Visual Basic 6.0 Standard Edition1/27/19993/31/20054/8/2008

Based on these dates, the training of new developers would have started to fade out right after 3/31/2005. At the time of this blog that would be over 7 years ago. The most senior VB6 developer would have 14 years of experience (not including VB4 and VB5). Even developers that started on VB6 around 2005 would have more than likely switched over to another language soon after. The point is that if VB6 is able to be ran for 30 more years, a company’s programming team might not be here to use it. A team of VB6 programmers currently would have 7-20 years of VB experience. In 10 years that team would range from 17-30 years of experience. In 20 years that team would range from 27-40 years of experience, and at around 30 years of experience that team would mostly be retired or moved on. Mathematically the team is going to become very small, or non existent within 20 years. Some might think that 20 years is a long time to wait, and that the application will be upgraded by then, but they need to remember a few things. VB6 is now a set pillar in time as technology goes. As OS advancements and coding language/tool advancements take place VB6 teams will become more and more left behind in the newer world of technologies. Consider that the longer they wait, the harder it will be to upgrade their application to today’s technology.

Eventually, either by the natural progression of technology or by developer resources dwindling over time, companies will need to move away from VB6. The typical solutions for moving away from VB6 are to buy an off-the-shelf solution, hand code a new app, or migrate your business code. Whatever the needs are, gmStudio and Great Migrations can assist in merging old and new applications. The migration from VB6 should happen sooner than later, because one day, you will have no choice and no time to migrate. The gmStudio trial can be found here.