私は、大量のサードパーティ製コントロールを備えた非常に大きな VB6 コード ベースを持っています。.NET に移行したい。それを書き直すことは論外です - クライアントは、同じものを得るためにお金を使うことに何の価値も見ません。組み込みのアップグレード ウィザードを使用して .NET に移行することは、基本的に初心者向けではありません。
http://www.vbmigration.com/から VB Migration Partner を試した人は いますか?
私は、大量のサードパーティ製コントロールを備えた非常に大きな VB6 コード ベースを持っています。.NET に移行したい。それを書き直すことは論外です - クライアントは、同じものを得るためにお金を使うことに何の価値も見ません。組み込みのアップグレード ウィザードを使用して .NET に移行することは、基本的に初心者向けではありません。
http://www.vbmigration.com/から VB Migration Partner を試した人は いますか?
I am the lead author of the VB Migration Partner tool (featured at www.vbmigration.com). In general we answer very quickly to all requests coming from existing or potential customers. I am sorry if found it difficult to contact us. Please try again at http://www.vbmigration.com/contactus.aspx
We do believe that our tool is capable to tackle very large VB6 applications. Actually, most of our customers are using it to migrate applications in the range 200-500K lines of code. We are currently working on a "monster app" of over 13 millions LOCs partitioned in 1200+ projects.
As RSConley suggests, any conversion tool works best if your application can be migrated and tested in parts. We support VB6 project groups (that are converted in a single operation), batch conversions, and we support integration with source code control tools. (For example, we preserve solution/project guids from previous generation, so that your SC tool knows how to deal the newly generated code.)
Finally, we are about to release version 1.11, which can generate .NET DLLs that are binary compatible with the original COM DLLs, so that you can migrate one component at the time starting with the most basic ones that are used by all others portions of your app, without having to re-compile them. (As far as we know, VB Migration Partner is the only tool with this feature.)
Francesco Balena -- VB Migration Partner Team
私はこれまで VB 移行担当者と仕事をしたことがありませんが、コード ベースを .NET に移行することは強くお勧めしません。本当に付加価値がありません。
私が大成功を収めたのは、.NET に新しい機能を追加し、VB6 アプリケーションから COM 相互運用機能を介してそれを取得したことです。これは非常に簡単で、レガシー アプリケーションで .NET を利用する良い方法です。
...私の2セント
簡単に言えば、VB6 と VB.NET (およびその結果として C#) は別個の言語ですが、関連しているということです。2 つのプラットフォームの間には、多くの微妙な違い (Integer が Int16 ではなく Int32 である) と大きな違い (グラフィックス、フォーム、および印刷エンジン) があります。これは、完全に異なるプラットフォームに変換する場合と同じように扱う必要があります。
いくつかの特定の状況を除いて、さまざまな移行ツールは努力する価値がないことがわかりました。たとえば、Crystal レポートを使用するデータベース フロント エンドです。
移住の価値について。あなたとあなたの会社だけがその決定を下すことができます。アプリケーションを PC 上で十分長く維持することは、最終的には真剣に検討する必要があります。ほとんどの場合、まったく新しいテクノロジ (たとえば、DOS から Windows への切り替え) を利用するためです。私のアプリケーションは 1985 年に開始され、20 年の歴史の中で 3 つの主要な変換がありました (ワークステーションから DOS、DOS から Windows 3.X、Windows 3.X から 32 ビット Windows およびオブジェクト指向フレームワーク)。
そして、いくつかの理由から .NET を検討しています。VB.NET は関連する言語であり、ジェネリックと継承により、ボイラープレート コードの多くを数行に圧縮することができます。よりリッチな Graphics API など。もちろん、変換がすべてに重くのしかかるという完全な頭痛の種があります。しかし、オブジェクト指向フレームワークに切り替えると、アプリケーションは COM を介していくつかの DLL にリンクされた小さな EXE になりました。アプリケーションの構造上、少しずつ変換してテストする余裕があります。
変換する場合は、VB6 でアプリケーションをリファクタリングして、部分的に変換およびテストできる構造にすることを強くお勧めします。アクティブ DLL を使用してこれを実現できます。これを一度にやろうとすると、プロジェクトの 80% はすぐに終わり、残りの 20% は地獄のようなものになるでしょう。断片的に変換することにより、すべてのステップで動作するソフトウェアが残されます。
問題はここでより完全に調査されます