When that stalwart of facile enterprise development, Visual Basic 6, was retired by Microsoft, it left companies with a variety of problems. While many were able to immediately upgrade to Visual Basic .NET, Java, C++ and other platforms, cases remain in which VB6 was so embedded in the software infrastructure that it could not be easily changed or extricated. The old COM/DCOM connections and related infrastructure continues to function, becoming less secure and more subject to maintenance issues as the surrounding environment changes.

One problem often found in software modernization is the interconnection of legacy systems with their surrounding environment. VB6 poses some special concerns because it is both legacy and modern. It is not like mainframe COBOL systems that can be easily isolated; instead, it bears early concepts of interconnection and embedded frailties that pose challenges and security threats in an operational environment that has evolved since VB6 discontinuation.

Upgrading VB6

Upgrading VB6 systems that remain in place should be considered a priority. While the difficulties in transforming the systems are not as great as with some other coding methods, the rules of code transformation still apply. It is important to create a basis for modernization and future upgrades; this means developing a workable model of the complete architecture, and submitting it to software updates and re-factoring. While VB6 skills are relatively easy to find and nicely overlap with current Visual Basic, availability of coders is not a panacea for the transformation problem. Coders can be employed at low cost, but an automated model-based solution provides replicable results, and the possibility of automatic refactoring with verification that all code continues to perform the same functions as before.

As Windows XP continues to be retired under the advance of newer operating systems, lack of support and a new generation of equipment, VB6 becomes an increasing liability. Even with Microsoft’s “it just works” guarantee for VB6 on later OSes, operation is fraught with potential issues from the reliance on COM/DCOM. Additionally, VB6 no longer has Microsoft support since 2008, opening the way for security issues as well as problems of continuing interconnection. The problem is exacerbated by the fact that many VB6 programs rely upon older third-party software which may be obsolete and can create its own issues.

TSRI has been working on code transformation of numerous languages for many years. VB6 transformation has now been added, permitting us to undertake modernization for this code. TSRI’s fully automated modernization toolset, JANUS Studio®, has the ability to transform applications of any size from legacy languages such as VB6 to modern targets such as Visual Basic .NET, Java, C++, and C#. TSRI’s near 100% automated transformation technology can ingest more than 32 legacy software languages, and produce native, uniform, object-oriented and human-readable target code in the client’s language-of-choice. TSRI’s JANUS Studio® toolset also transforms the underlying databases and user interfaces into multi-tiered modern environments, as well as documenting and re-factoring the modernized application using the same fully automated technology and model-driven approach.

Modernization Process

TSRI employs JANUS Studio® for all transformation projects. This begins with taking the source language provided by the customer, and parsing it i to create an Abstract Syntax Tree Model (ASTM) of the legacy language, which is then transformed into an Intermediate Object Model (IOM) before being transformed into the final language. Use of this modeling format lets every code transformation take advantage of the hundreds of millions of previous lines of code that TSRI has transformed for other projects.

After code conversion is complete, JANUS Studio® transforms user interfaces and database schema to new targets such as webpages and relational databases. Finally, TSRI can use the JANUS Studio® toolset’s refactoring capability to perform both dead and redundant code elimination, as well as other specialized pattern-based refactoring according to the customer’s preference.

Code modernization is an essential part of the modern transformation of business. Older code will have numerous liabilities in integration and in remaining secure, even if the language is relatively recent. VB6 was created within a different environment at a different time. Its fundamental .COM components have long been superseded. Meanwhile, languages themselves, the programming approaches, and the surrounding IT are all evolving with the business environment. Even if the code continues to run, it is important to think of the future, and the issues that surround continuing to use legacy coding.


Stay up to date on Architecture-Driven Modernization: