New KB articles about version 1.34

clock October 17, 2011 12:55

As explained in my previous post, VB Migration Partner 1.34 is a major update that contains many great features that make the most powerful VB6 converter on the market even more powerful.

If you are using the new version to re-migrate VB6 projects that have been instrumented with pragmas - in other words, you are adopting our convert-test-fix methodology - the notes that follow aren't really pertinent to you. On the other hand, if you plan to simply replace the current version of CodeArchitects.VBLibrary DLL with the new version there are a few things you should know.

  • we have changed the way the ImageList control is implemented, and this change may affect existing (migrated) forms. You can read more in this article
  • If you take advantage of the new CodeArchitects.VBPowerPack DLL - for example by copying it into VB Migration Partner's setup folder - you should consider that a few VB6 objects will be rendered by means of objects exposed by this new DLL, namely: the CommonDialog, Line, and Shape controls, the Printer object, and the Printers collection. The objects in this DLL are fully .NET classes that have no dependency on COM, however they are slightly less compatible with VB6 than the objects used by VB Migration Partner v.1.33 (that are still available in the main CodeArchitects.VBLibrary support library). Please read this article before deciding whether to use the new objects.

VB Migration Partner 1.34 introduces many new features that can greatly improve the behavior of your migrated projects. For example:

  • The new VB6Config.UseExCompositeStyle boolean property allows you to leverage a little-known feature of .NET forms and eliminate the flickering you may see when loading or resizing a form that contains many controls. (The flickering is especially apparent if the form has a background image). This article explains how and when to use this property.
  • The new VB6Config.DBCSSupport boolean property can be set to true to improve support for DBCS strings. This is especially useful for Japanese users. (Don't set this property to True unless necessary, because it would slightly reduce exection speed of some string functions.)
  • If the new VB6Config.UseVBPowerPack boolean prooperty is set to True, then the PrintForm method internally uses the PrintForm class defined in Microsoft VB PowerPacks. In some cases this setting delivers better results. Of course, if you assign True to this property the Microsoft.VisualBasic.PowerPacks.dll file must be installed on the end user's computer.
  • The VB6Form, VB6PictureBox, and VB6UserControl classes now expose the DoubleBuffered property. If you set this property to True - in the Properties window at design-time or programmatically via code - applications that perform massive graphic operations will run remarkably faster, up to a factor of 8x! The speed improvement is especially noticable for graphic methods that run inside the Paint event handler.
  • The CommandButton, CheckBox, and OptionButton controls now expose a boolean property named UseTextAlignment. If you set this property to True - in the Properties window at design-time or programmatically via code - then you can supercede the standard VB6-styled text alignment and precisely align the caption by means of the .NET TextAlignment property.
  • A new migration INFO message is generated for all Variant and Object variables whose type has been inferred into a more specific type. Thanks to this new message you can quickly check that VB Migration Partner inferred the correct type.

VB Migration Partner 1.34 has also fixed a few minor bugs and further improved the compatibility with VB6 in many areas.


[MAJOR UPDATE] Announcing VB Migration Partner 1.34

clock October 6, 2011 09:27


Many months have passed since the last VB Migration Partner release (1.33), but surely we haven't been lazy in the meantime. As a matter of fact, the upcoming version 1.34 is filled with great and exciting new features. Don't let the "minor release number" fool you: this is a major upgrade that will make your migrations easier and faster than ever!

First and foremost, version 1.34 officially includes ADOLibrary, the revolutionary .NET library that makes the transition from ADODB to ADO.NET a child play. A will illustrate all the features of this library in a forthcoming post, but for now let me say that ADOLibrary fully supports forwardonly-readonly server-side cursors and client-side cursors with batch optimistic updates. Unlike other vendors in this market, when we say "fully support" we really mean it! In fact, we support all Connection and Recordset events and even rarely used dynamic properties such as Update Criteria or Unique Table. On top of that, we even offer nearly complete support for server-side SQL Server keyset cursors, a feature that only VB Migration Partner can offer! You must see it to believe!

Next comes the support for all the features of Microsoft VB PowerPacks. Starting with version 1.34 migrated apps can use the Printer, Line, and Shape classes defined in this Microsoft library. Foir the highest compatibility with VB6 printing, in previous version the Printer class and the Print common dialog was implemented by means of a small COM DLL. Now all dependencies on COM can be removed and your migrated projects are fully native .NET apps. (For backward compatibility the PowerPack support must be explicitly enabled.)

We have tremendously improved and optimized graphic operations, by using double-buffering and other expert-level programming techniques. While our competitors have just began to introduce limited support for a few graphic operations, the new release of VB Migration Partner is 8-10x faster than its predecessors. We even support the DrawMode property for Line methods, which means that you can do rubber-banding graphics (something that not even plain GDI+ offers).

If you like forms that load fast and without flickering (who doesn't?), you'll be delighted to take advantage of a new feature of the VB6Form class, which uses an advanced and little-known feature of .NET forms to reduce load time and flickering of forms with tons of controls, that is the kind of forms that abound in VB6 projects and that "standard" .NET apps display so slowly. You don't have to be a Windows Forms guru to use this new feature, though: just set a configuration variable and then forget about it!

We have significantly improved VB6 functional equivalence in just too many areas to mention here. Just an example: you can now read and write binary and random files that contain complexed and nested Type...End Type records, dynamic and static arrays, standard and fixed-length strings, etc. and still preserve full compatibility with VB6 binary files In other words, you can exchange binary data with legacy VB6 apps without any need to convert it. This means saving DAYS of programming if you do the conversion manually or with another conversion tool...

Version 1.34 will be available in a few hours. As usual, existing customers will be automatically notified of the new version the next time they launch VB Migration Partner. For more info about new features, changes and bug fixes, have a look at the VERSION HISTORY.TXT file.


Lecture on VB6 migration at MS Wester Europe ALM Partner Summit, Madrid

clock October 5, 2011 15:07

Next Tuesday (Oct 11) I am giving a speech at the Microsoft Western Europe ALM Partner Summit, Madrid. The topic is of course VB6-to-.NET migration and the title of the session is VB6-to--NET Migration:Myths, Truths, and Real-World Experiences.

If you are there, please pass by and say hi.