6

LuceneHibernateなどのオープン ソース プロジェクトを Java から .NET に移植する方法について興味がありますか? Microsoft がリリースしたJava Language Conversion Assistant 2.0を使用するのは簡単なことですか?

4

2 に答える 2

11

残念ながら、通常、そのような大規模なプロジェクトには、はるかに多くの労力が伴います。ある言語で有効なものが別の言語では有効でない可能性があり、さらに重要なことに、ある言語に存在するものが別の言語では有効でない可能性があります。たとえば、NHibernate の移植には何年もかかりましたが、現在も移植を続けています (ただし、Linq のように常に機能を追加しています)。

通常は、クラスを 1 つずつ配置して移植し、可能な場合は最適化し、必要に応じて構造を変更します。ジェネリック、エイリアス、ボクシングなどはすべてポートで変更されます。それから、すべてを終えた後、多くの最適化がまだ残っていることがよくあります (もちろん、これはオプションです...)。おそらくそれはイベントであり、静的メソッドと拡張メソッドであり、新しい言語/プラットフォームが提供するものである可能性があります。古いものはしなかったこと。

このように考えてみてください。なぜ.Net に移植するのでしょうか。あなたは 2 つの状況のいずれかにあると言えます。1 つは仕事のために .Net の使用に行き詰まりを感じているか (ああ、ごめんなさい!)、または.Net が有利であるという理由で .Netを気に入っているということです。2 番目のカテゴリでは、 Java よりも Javaを選択したことを意味するため、移植では、最初に .Net を選択する理由となった機能を利用する必要があります。

于 2010-02-05T12:53:13.467 に答える
4

ニックが言ったように、それはそれほど単純ではありません。特に移植したいアプリケーションのアーキテクチャがそれほど優れていない場合は、コードを移植するだけではありません。移植先の言語の機能を使用したい場合、それらが正しくないと思われるために変更する可能性のある設計上の決定である場合があります。ニックが言ったことを繰り返すつもりはありませんが、次のことを付け加えたいと思います。

Joda Time を Java から .Net に移植しようとする Jon Skeet の試みである Noda Time の開発に従うことをお勧めします。Jon は実際に次のブログでその経験を記録しています。

http://noda-time.blogspot.com/

ブログ、このプロジェクトの Google グループ ページ、および Google コード プロジェクトをフォローすることをお勧めします。Google グループとコード ページへのリンクは、ブログの投稿の 1 つにあります。

于 2010-02-05T13:04:18.483 に答える