6

既存の Vb6.0 win ベースのアプリケーションを ac# win ベースに変換する最速の方法は何ですか?

4

6 に答える 6

9

コアとなる言語は非常に異なるため、ゼロから始めて、複雑なコード部分だけをコピーする必要があります。ゼロから始める場合は、C# のすべての機能を利用しながら、VB6 の問題にすべて対処する必要はありません。

VB6 には実際のクラスや OOP がないため、C# とは大きく異なります。また、イベント マネージャ ( SubClassing )に対する制御はほとんどありません。

したがって、ゼロから始めて、UI レイアウトをコピーし、そもそもこれを C# でどのように実装するかを考えてみると、作業が楽になります。

于 2010-02-03T09:06:19.417 に答える
8

VB.netに変換するのが一番早いと思います。この回答については、次の質問を確認してください

VB6 から VB.net への変換

ans はそれを c# に変換します。ただし、アプリケーションを再設計して簡単にすることができるため、手動で変換する方が良い選択肢になると思います。

于 2010-02-03T09:07:13.957 に答える
4

Visual Basic 6 から C# へのコードの変換は、C#への移行をサポートするArtinSoftVisual Basic Upgrade Companionなどの自動化された移行ツールを使用して行うのが最適です。

まず、VB6 から VB.NET に移行したとしても、VB.NET には C# に直接変換されない言語固有の機能がいくつかあります。したがって、VB.NET から C# へのコンバーターを使用している場合でも、これらの特殊なケースを処理する必要があります (または、それらを処理するツールを見つける必要があります)。これらには、オプションのパラメーター、AddressOf 関数、Information.Err() などの Visual Basic コンパイラ支援操作、および Try / Catch ステートメントを使用した非構造化エラー処理から構造化エラー処理を含めることができます。考慮すべきもう 1 つの点は、VB.NET コンパイラが表示するコンパイル エラーは 100 に制限されており、移行時にコンパイル エラーが非常に一般的である可能性があることです。C# に移行する場合、コンパイラや ReSharper などの他のコード分析ツールを使用すると、今後の課題をよりよく把握でき、一般的なコンパイル エラー パターンを検出するのに役立ちます。

第 2 に、ターゲット言語に直接移行することで、最初からその言語で利用可能な機能の使用に集中でき、中間の手順は必要ありません。そうしないと、1 つだけに集中できたときに、基本的に 2 つの移行を行うことになります。

第三に、renick が述べたように、移行ツールは数百または数千の問題を引き起こす可能性がありますが、これらのほとんどは比較的簡単な解決策を持っています。それらのいくつかは、検索と置換機能を使用して修正できます。商用ソリューションには、サードパーティの UI コントロールから .NET の同等のものへの移行をサポートするという追加の利点があります。

また、移行は書き換えよりもはるかに高速である可能性があります。コードを記述する必要がありますが、問題がある領域に対してのみです。

移行がオプションではないアプリケーションがあることは確かですが、移行のユースケースに適合するものにとっては、プラットフォームを切り替える非常に効果的な手段です。オプションをすぐに割り引いてはいけません。

于 2010-02-03T23:07:31.073 に答える
1

すぐに必要な場合; それなら手でクランキングしないでください-ものを逃して髪を引き裂くでしょう!

数年前にこの商品を調べてみたところ、この商品が最高だと感じました。VB6からC#に変換します。彼らにも無料トライアルがあります。

于 2010-02-03T09:42:34.840 に答える
1

総書き直し。MS には移行の支援がありますが、それは VB.Net だけだと思います。しかし、なぜ移植を検討するのでしょうか。アプリを書き直して、存続させる必要があるレガシー部分がある場合は相互運用する方がよいでしょう。そして、最良のビットのみを移行します。アプリケーションを真に改善するチャンスとしてこれを使用してください。

于 2010-02-03T09:07:28.533 に答える
0

ArtInSoft をお試しください。この会社は、VB 6 コードを直接 C# に移行します。

于 2010-05-17T02:03:53.890 に答える