Exactly 365 days ago we released VB Migration Partner 1.00, after a 8-month public beta period and 2.5 years of intense development.
A lot of things have happened in these 12 months. In spite of us being relatively unknown outside Italy, our software gained immediate popularity among VB6 developers, who had been waiting for a product like VB Migration Partner since the .NET launch in 2002, that is when they realized that the Upgrade Wizard included in Visual Studio is a little more than a toy and that other VB6-.NET conversion tools leave much to be desired.
Understandably, the only people who weren't very happy of our debut were our competitors, whose products had something to be compared with, at last.
VB Migration Partner 1.00 included several unique features that couldn't be found in any other similar tool, including those that had been on the market for 6 years, such as support for Gosub and On Goto/Gosub statements, As Any clauses and callbacks in Declare, graphic statements, and drag-and-drop. One year later our competitors are still trying to catch up and are now slowly adding some of the features that we support since our earlier beta versions.
18 months after we launched the vbmigration website and unveiled our software, VB Migration Partner is still the only conversion tool that supports granularly scoped migration pragmas and the convert-test-fix methodology, both of which are essential in complex, real-world migration projects.
However, we didn't rest for long, and in September '08 we launched VB Migration Partner 1.10, also known as the Refactoring Release. Even if apparently we just changed the minor version number, we actually re-wrote the parser and conversion engine from scratch. It was a painful but necessary step, because we needed to support important features, such as refactoring of Gosub into separate methods, type inference, conversion of On Error into Try-Catch blocks, and a rename engine to ensure compliance with .NET coding guidelines.
A few days before the official release date an important customer asked for binary compatibility of .NET DLLs with the original VB6 component, and we managed to add that, too! Binary compatibility you can migrate an N-tier application in pieces, starting with the innermost data tier, so that you can use the business and user-interface tier to test the new components. It might look as a minor detail, yet it dramatically cuts test and debug time/cost and allows you to focus on the portions of the application where the introduction of .NET and the replacement of old, non-scalable COM components has the higher benefits.
Well, I couldn't find a better way to celebrate the VB Migration Partner's birthday than by announcing that we just released version 1.11 a few hours ago!
If version 1.10 was the Refactoring release, the new version 1.11 can be dubbed as the Variant release. We rewrote the portion of the conversion engine that deals with Variant variables and extended the special VB6Variant type in our library so that it now behaves in exactly the same way as the VB6 Variant data type, including full support for Null propagation, Empty and missing values, and arrays of arrays. All the methods in the support library can now take a VB6Variant and return a VB6Variant as necessary.
Support for null propagation simplifies the conversion of database-intensive projects to VB.NET more than any other feature, but we didn't stop there. The new version 1.11 also generates better code for late-bound properties and methods, for B-string functions (e.g. LeftB and InputB), and for non-Latin alphabets. As usual, you can read all the details in the Version History.txt file, in the setup folder.