VB Migration Partner とは

VB6で作られた ビジネスアプリケーションを.NETFramework Platformへ変換するのは、時間と多くの費用が掛かる上に、間違いやすい傾向がある仕事です。

そしてその作業にはVB6 と.NETとの微妙な違いを熟知した、深い知識が要求されます。

従来の自動変換ツールは便利でしたが、プロセスを簡素化して、コスト削減を実現するには不十分でした。

当然ながら、多くのソフトウェア会社は、そのアプリケーションをVB.NETへ移行することを見送るか、または自動変換ツールを使わずにVB.NETへマイグレーションを行っています。

VB Migration Partner - Main window

VB Migration Partnerはこれらの点に関して、他のツールに対してアドバンテージを持っています。

VB Migration Partnerは、著名なVBとVB.NET専門家チームによって作成された革新的なVB6変換ツールです。

それは、すべての主なVB6の特徴とコントロールをサポートします。

そして他の自動変換ツールによって生産されたものより、少ないコンパイルエラーとランタイムエラーでVB.NETへのマイグレーションを実現します。

任意に選んだ何百ものオープンソースアプリケーションに対して、VB Migration Partnerによって行った変換テストでは、1000ステートメントのうち999を正しく変換することが確認できました。

VB Migration Partnerは、高度なコード解析と分析エンジンで構成され、.NET Framework世界において直接的な構造を持たないVB6プロジェクトグループを操作でき、コード生成モジュールと強力なリファクタリングモジュールによりVB.NETコードを生成します。

そのVB.NETコードは、熟練の.NET開発者によって書かれたコードの品質にも対抗できるものです。

さらに、開発者は、生成されたVB.NETコードをカスタマイズでき、オリジナルのVB6プロジェクトと同期したまま変換されたアプリケーションの動作を改善することができます。

それは、我々の提案する変換→テスト→修正というサイクルにより実現されます。

このような機能を持ちながら、VB Migration Partnerは、Visual Studio2005 のアップグレードウィザードより8倍速いのです。

VB Migration Partner - Metrics

移行作業の終わりに、VB Migration Partnerは正確なレポートを作成します。

その成果物は、詳細なコード測定基準と全体のまたは平均的な測定指標、最大または平均的な制御構造の深さや、コード中のコメント比率を結果としてレポートします。

このレポートは、現実的な見積もりとして移行プロセス全体に掛かる時間と費用をMicrosoft Excelにて出力することができます。

詳細

VB Migration Partnerの優れたパフォーマンスは、3つの要因によるものです。

まず第1に、state-of-the-art parserは一般的に、自動的に変換することが不可能であるとみなされている言語構築を正しく変換できます。

  • プロジェクトグループ( .vbg )に対応
  • VB.NETに存在しないGosub、On Goto、On Gosub keywardsなどにも対応
  • 動的な配列 ( LBound < > 0 ) に対応
  • インスタンス自動再作成に対応
  • early-bound、late-boundの両方に対応
  • 固定長の文字列に対応
  • DeclareのAs Anyパラメータに対応
  • ユーザコントロール、MTS/COM+コンポーネント、などに対応

第2に、advanced code generation engineは、コード分析と再生技術を使用した高品質なVB.NET を生成します。

  • ガーベージコレクトを効率的に行うコードを実装します。
  • 配列や”As New”オブジェクトを含んだTypeブロックを自動的に初期化するコードを生成します。
  • Option Explicitが有効でない場合、暗黙的に宣言された変数を定義します。
  • 可能であれば、旧来のエラーハンドリング(On Errorステートメント)を、構造化された例外処理(Try-Catchステートメント)に変換します。
  • 可能であれば、GoSubキーワードを分割されたメソッド呼出に変換します。
  • 参照渡し(ByRef)パラメータを検出し、それを値渡し(by-value)として安全に利用することもできます。(要求があった場合、ByValキーワードを自動的に挿入することが出来ます。)AndAlsoキーワードで置き換えられる場合、ネストされたブロックを一つに統合できます。
  • ほかにも、Exit Function(またはPropety)はReturn ステートメントに置き換えることができ、また、変数の初期化を変数宣言に統合します。(初期化を統合した変数宣言の例 Dim k As Integer = 1)
  • 使用していないConst、Declareステートメントを任意に削除すると共に、使用していないメンバと使用されないコードを通知することが出来ます。
  • VB6のリソースファイルをMy.Resources.Xxxという形式で移行します

第3に、完全装備のsupport libraryはVB6とVB.NETの違いを劇的に削減します。

それは、変換されたアプリケーションが意図的に動作し、高度なVB6の特徴をサポートしていることを保証します。

Migrated VB6 Sample: Mp3 Player

  • VB6 ToolBoxの中のおよそ60以上のコントロールをサポートします(OLEコンテイナーとリピーターを除く)
  • Languageオブジェクトコレクション(App、Screen、Forms、Printer、Clipboard、PropertyBag、etc.)
  • ほぼ全てのコントロールプロパティ、メソッド、イベント
  • コントロール配列、メニューと3rdパーティコントロール配列を含む
  • 基本図形、ユーザー定義によるスケールモードの設定
  • コンテキストメニュー、ヘルプファイルのサポート
  • DAO、RDO、ADOデータ接続コントロール、ADO.Recordset、DataEnvironment、ADO consumer classes、ADOデータソースとして動くユーザーコントロール
  • Runtimeにおける新しいコントロール、コントロール配列もしくはControlsAdd メソッド(VBControlExtenderObjectをサポートしたものを含む)の生成
  • 自動もしくは手動によるOLE drag-and-drop

VB Migration Partner - Insert Pragma window

他のツールと異なり、VB Migration PartnerはカスタマイズやPragmasにより、意図したとおりに変換の微調整ができます。

Migration Pragmasは、特別な機能です。

Pragmasは、オリジナルのVB6アプリケーションに追加したり、変換ステップ作業中に、どのようにコードを取り扱うのかを変換エンジンに指示することができます。

例えば、ArrayBounds Pragma は、どのようにノンゼロLBound配列が変換されるかに作用します。

また、AutoNew Pragmaは、どのように自動インスタンス変数が表現されるかに作用します。

SetType とChangeType Pragmas は、変数のタイプを変更することを可能にしています。

VB Migration Partnerは、直面している複雑な移行プロジェクトを解決する為に、60以上の異なったPragmas をサポートします。

VB Migration PartnerのIDEは、それぞれのPragmaの要旨をダイアログボックスを使って説明し、新しいPragmaの挿入を誘導します。

慎重に選択されたPragmasは、ランタイムエラーも編集もないVB.NETアプリケーションを作ります。

編集とランタイムエラーの削減に加えて、複雑な移行イニシアティブを管理する上で鍵となる特徴であるPragmasは変換→テスト→修正サイクルで進みます。

大規模なビジネス企業のアプリケーションは、移行プロセスが並行して行われている間、通常にメンテナンスとアップグレードを必要とします。

VB Migration Partnerは、アプリケーションを変換し、その結果をテストして、編集とランタイムエラーを除去するPragmaを追加するためVB6コードに戻ります。

そしてそれは、VB.NETコードが意図したとおりに動作するまで変換を再試行します。

デベロッパーはシングルソースベースで作業をします。

よって、VB6 と.NETバージョンは、新機能がVB.NETコードに追加されるまで同期します。

VB Migration Partnerは、巨大な企業レベルのプロジェクトにも十分に対応し効果を発揮します。

それはバッチ移行プロセスをサポートして、数十か数百のDLLで分けられるアプリケーションを容易に扱うことができます。

また、Visual Source Safe とMicrosoft Team Systemを含むソースコードコントロールツールもサポートします。

最後になりますが重要なこととして、VB Migration Partnerは、コードを作成する方法全てにおいて、拡張オブジェクトモデルにより完全にカスタマイズできます。(例えば、どのようにコントロールを変換するかを決めます。)

上記よりも詳細な情報が必要な場合、 もし、VB Migration Partnerが移行ツールとして最適と思われるならば、詳細情報について、ウェブサイト上の次のセクションをご覧ください。

追加のサポートが必要でしたら、こちらをお薦めします。

  • FAQページを御参照ください。ここでは、ベータテスターより上がった問題に対する回答が含まれています。
  • 移行作業についての秘訣や、VBMPリリースバージョン情報が得られる、ニュースレターを購読してください。
  • ブログにてVB Migration Partnerについての情報が記載されているので御参照ください。

VB6 移行問題について詳しくない方は、VB6 から VB.NET への移行について最良のガイドラインや他のコード移行ツールに関する記事があります。

リンクより御参照ください。

我々は、.NET FrameWorkにアプリケーションを変換することを望んでいるVB6開発者のために、さらに多くのリソースと共同運営のフォーラムを追加する計画をしています。

その他お問合せにつきましては、メニューのお問い合せよりお問い合わせください。