こんにちは、こだかです。今日はなぜかクリクリドーナツの行列は短かったです。(それでも20分待ちとの事)それは置いといて、本当に今更ですが、引き続きVBマイグレーションの話です。
当然初めに行うのは、事前の見積もりや手法の選定ですよね、ただ一口に見積もり、手法の選定と言っても様々なので、迷うところです。そこで、今回は見積もりの為のツールを紹介します。
Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Toolhttp://www.microsoft.com/downloads/details.aspx?FamilyId=10C491A2-FC67-4509-BC10-60C5C039A272&displaylang=en これは、VB6.0アプリケーションを評価するツールです。実行するとExcelに様々な分析結果が表示されます。もちろん、これだけで判断はできませんが、様々なプロジェクトを評価して、比較検討するところにこのツールの目的はあるはずです。
Code Advisor for Visual Basic 6.0https://www.microsoft.com/japan/msdn/vbasic/downloads/codeadvisor/default.aspx、あらかじめ決められたコーディング規約を確実にするためにソース コードをレビューする Visual Basic 6.0 のアドインです。 これを用いることによって、ある程度ソースの修正ボリュームが見えてくると思います。
VB6.0でよくやってしまうのが、クラスのインスタンスを生成するさいの実行時バインディングです。とても使い勝手がよかったので、僕自身かなり使用頻度が高かった記憶があります。(汗)例えば、Dim obj As ObjectSet obj =CreateObject(String型の変数)Call obj.名前共通のメソッド等と書いて変数objを使いまわしたりしてましたが、この書き方だと、アップグレードウィザードが正しく変換できません。
こんな事しないで、きちんとしたインターフェイスを間に入れてあげれば、抽象度も上がったはずなんですよね・・・と言いつつも後の祭りなので、修正する必要があります。それと、Win32APIを使用している部分は、大概修正が発生しますよね。
このように見積もった後、VB2005のアップグレードウィザードを始めとした完全移行、COM相互運用を用いた部分移行、また他ベンダーのツールを用いたマイグレーション等、いくつかの選択肢を決定する事になるでしょう。
完全移行の場合は、アップグレードウィザードを使用する場合がほとんどだと思いますが、当然手直しが発生します。ちまたでは、使えない~との声も聞きますが、でもでも、吐き出されるソースは、本当に勉強になりますよ。アップグレードウィザードの存在意義って勉強の為じゃないの?ぐらいになりますねぇ、個人的には。
次回は、COMとのInterOP(相互運用)を紹介するつもりです。
こだかたろう