Analyze a Legacy Visual Basic Project With VBDepend
Visual Basic 6 was one of the most popular tools for the development of custom vertical applications, especially in-house programs, and many of those old workhorses are still in use. But Microsoft ceased producing Visual Basic 6 in 2002 and placed it in Unsupported status in 2008. With the original developers often long gone, it can be difficult to maintain VB6 apps or migrate them to newer versions of the language. VBDepend is a utility that will perform extensive analysis on VB6 projects, showing full maps of code dependencies and highlighting areas where the code is likely to be broken or unmaintainable.
Setting up VBDepend is simple: Create a VBDepend project, then point it at a VB6 code base that you wish to analyze. When VBDepend is done with the analysis--which can take anywhere from seconds to minutes, depending on your system and the size of your code--you can begin to examine the many reports and views. Drilling through the mountain of raw data to find the information you most need can be a daunting task, especially in the demo version, which imposes some significant limits. For example, you can click only seven times on the Dependency Matrix before it resets itself to its default state. The visual dependency graph cannot be zoomed, making large graphs unreadable. Opening source code from within VBDepend is disabled. These demo limitations make it hard to evaluate VBDepend. The full version removes these limits, of course, and thus makes functional many features (such as the visual dependency graph) that are useful only for the most trivial cases in the demo.
If the large number of graphs and reports is insufficient, VBDepend offers Code Query Language (CQL), which has SQL-like syntax and can be used to extract specific information from your code. A number of queries are predefined, but editable, and you can see the results of the query immediately as you edit it. Anyone who knows SQL will quickly be able to find almost anything in their code, from functions with too many parameters to inconsistent naming conventions.
I experienced a few stability issues in my testing. The most severe, a bug with 64-bit Windows, has been fixed, but there were other bugs that were not easily replicable. Some quirkiness can be forgiven in freeware or small utilities, but in a $679 program aimed at corporate IT departments, the bar must be higher.
Bottom line? This is not a cheap program, and the demo is not useful even for the noncommercial or open-source projects it claims to be intended for. However, the tools it provides for code analysis are powerful and flexible, and if maintaining or converting legacy VB6 projects is a significant task for you or your business, investigating VBDepend is likely to be worth the time spent--just test it thoroughly before committing to purchase.