1

私はかなり古いVisualBasic(.net 1.1)プロジェクトを持っており、これを今も開発を続けたいと思っていますが、Visual BasicではなくC#で開発しています。それをC#に変換する方法はありますか?私は2つのオプションを考えることができます:

  1. オンラインで入手可能なソースコードコンバーターを使用する(ただし、ほとんどの場合失敗し、プロジェクトは大規模です)
  2. コンパイルしてC#に逆コンパイルします(コメントとプラグママークは失われますが)

この変換を行うための推奨される方法は何ですか?

4

3 に答える 3

3

.NETが.NET1.1からかなり大幅に変更されたことを考えると、特に、さまざまなタスクへのアプローチ方法を変更するライブラリなどがたくさんあります。もう一度やり直したいと思います。すでに.NETのバージョンと言語を変更していることを考えると、直接移植を取得するためだけでも多くの作業を行うことになります...したがって、既存のプロジェクトから学んだ経験を取り入れて、それを投資してみませんか。新しいものを作成することに?

(私はジョエルの書き直しに関するブログ投稿を知っていますが、別の言語に変換して疑似書き直しが必要だとすでに決めている場合は、とにかくその苦痛の一部は避けられないと思います。)

于 2012-09-16T18:25:47.943 に答える
1

適切に作成されたVB1.1の場合、オンラインコンバーターは適切な仕事をする必要があります。プロジェクトのファイルをバッチ変換してから、手動でスキミングして明らかなエラーを探します。

オンラインコンバーターは、.NETのより新しいバージョンで導入された機能を窒息させる傾向があります(正当な理由-これらの機能は、コンパイル中のはるかに基本的なコード変換をもたらします。つまり、言語をより困難にします)。

/編集:しかし、Jonの言うことにはメリットがあります。.NET1.1はまったく異なり、多くの点で現代の.NETより劣っています。自動変換は、現代の言語とCLR機能をコードに採用するのに役立ちません。

于 2012-09-16T18:25:57.630 に答える
0

Jon Skeet が言及した Joel の投稿を読み直したところ、彼のアドバイスを参考にしてください。古い VB.NET プロジェクトを参照する新しい C# プロジェクトを作成し、コードを古いプロジェクトから新しいプロジェクトに、一度に 1 クラスずつ少しずつ移動します。何かを変更する必要があるたびに、関連するコードを古いプロジェクトから新しいプロジェクトに移動します。

これにはいくつかの利点があります。

  1. 機能していて変更する必要のない古いコードはそのままにしておくことができます。
  2. プログラムを実行する前に、数週間または数か月の退屈なコード変換を完全に書き直すために必要なオーバーヘッドはありません。
于 2012-09-17T15:48:40.680 に答える