Release 0.98 has been just released

clock April 25, 2008 14:16

Yesterday we worked hard to fix a subtle bug related to project groups, plus other minor stuff related to the Data and TabStrip controls.

Today is a nationa holiday here in Italy, but our beta testers abroad can download version 0.98 and play with it during the weekend. (We know for sure that some do! )


Version 0.97 is online!

clock April 21, 2008 11:09

This is truly a milestone in our release story. We have added many new features, including support for Visual Studio 2008 and for batch migratons. A number of KB articles describe how to use these new features, for example

[HOWTO] Generate Visual Studio 2008 project

We have added many new pragmas:

PreInclude and PostInclude pragmas allow you to include a piece of VB6 code (before the parsing step) or a piece of VB.NET code (after the migration is completed); they even support recursive inclusion (an include file can contain other PreInclude and PostInclude pragmas). The PreInclude pragma can be used in a *.pragmas file and in practice allows you to have all these *.pragmas file reference the same settings stored in a centralized file.

The OutputMode pragma now supports an Uncomment mode, which allows you to includ a block of remarked out VB.NET code and have it un-remarked during the migration process. (It is a great way to include large pieces of VB.NET code in the middle of a VB6 source file.) You can find an usage example here:

[HOWTO] Exclude portions of VB6 code from the migration process and replace it with custom VB.NET statements

We changed the way we deal with Empty and Null values. In previous releases, these values were migrated to VB6Empty and VB6Null constants, and both of them were set equal to Nothing. Using constants was necessary to support Null and Empty values when they appear as default values for optional parameters, as in this statement

    Sub Test(Optional x As Variant = Null)

However, using constants didn't make it possible to map the null value to DBNull.Value, and a few beta testers complained about this. Thus we decided to map these values to Empty6 and Null6 properties, which by default are equal to Nothing and DBNull.Value, respectively, but can be changed if necessary. You can find more details in this article:

[HOWTO] Deal with Null and Empty values

Another minor improvement on previous releases: we have added the VB6Config class that gathers all the settings that you can change at runtime to fine tune the library's behavior, as explained here:

[HOWTO] Determine whether unsupported member throw an exception at runtime

[HOWTO] Ignore fatal error at runtime

The new VB6Config.FocusEventSupport lets you work around a key difference in how VB6 and VB.NET deal with LostFocus and Validate events:

[INFO] Controlling the LostFocus and Validate event sequence

We are including a new extender that allows you to create a text file containing the list of all the migration issues and warnings. It's a precious feature when you migrate multiple projects in batch mode. You can read more details in this article:

[HOWTO] Create a report with all the migration issues and warnings

We also added a few KB articles that illustrate non-obvious way to use PostProcess pragmas, for example:

[HOWTO] Modify project-level options in VB.NET programs

[HOWTO] Enforce project-level Option Strict Off settings in VB.NET programs

Last but not the least, we have fixed 35 bugs. As usual, beta tester can find the complete list in the VERSION HISTORY.TXT file.

New great features are on the way...

clock April 16, 2008 01:49

While we are still busy on release 0.97, I want to let you know in advance what we working on.

First and foremost, VB Migration Partner now supports both Visual Studio 2005 and Visual Studio 2008. You have to change a line in the beta's configuration file to enable VB2008 support, but it won't be necessary with the "real" product, because we plan to deliver two distinct versions of release 1.0, each one generating different flavors of Visual Basic projects.

Another great new feature is the support for batch migrations: you can run VB Migration Partner via a command-line tool and integrate it in your build process. If your application consists of dozens of separate projects, this feature can save you a lot of time and efforts. Even if you don't use a build process, you can automate the re-migration of the entire application by means of a plain batch file. 

We have added a tab to the Tools-Options dialog box, where you can select a default output folder for converted projects. Not really an amazing feature, yet something that is quite handy when converting a multiple-project application.

Another simple but useful feature: project GUIDs are preserved when re-migrating a project that had been migrated previously. If you wonder why this can be useful, just imagine the following scenario. You migrate projects P1 and P2 to VB.NET (separatedly), then you launch Visual Studio 2005/2008 and create a solution S1 that gathers the two project. (Creating a single solution can be useful for debugging purposes, for example.) If you find a bug in P1 you can now re-migrate it without breaking the S1 solution, because the link between a solution and its projects depends on the project's GUID stored in the *.vbproj file. Ditto for references between projects in the same solution. It's a tiny feature but a great time saver.

Finally, we have changed the Excel template used to generate assessment estimation of time/cost of the migration process. You can now use your own formulas to define how the cost grows when the number of occurrences of a given issue grows. Thanks to this new feature you can create more reasonable migration plans.

Version 0.97 is arriving in a few days. Beta testers, stay tuned! .... and thanks for your precious support in these months.