11

オフィスの人員配置にいくつかの変更が加えられたため、C#の専門知識のレベルは急激に低下し、Java開発者が増えています。上層部がC#で記述された既存の.NETプロジェクトをJavaの世界に移動することを検討しているところまで来ています。

完全にゼロから始めるという明らかな問題は別として、この会社が.NET C#からJavaへのプロジェクトの開発を成功させるために考えられる方法は何ですか?

4

15 に答える 15

19

考慮すべき事項は次のとおりです。

  • これは大きなプロジェクトですか?はいの場合、C# に固執してみてください
  • これはコンポーネントを含む中規模のプロジェクトですか? いいえの場合は、C# を使い続けるようにしてください
  • この小さなプロジェクトは、Windows のみに展開することを意図していますか? はいの場合は、C# に固執してみてください
  • これは古いソースコードですか?はいの場合、C# に固執してみてください
  • Windows OS 固有の API を使用していますか? はいの場合、C# に固執してみてください
  • Java 対応のないサードパーティ API を使用していますか? はいの場合、C# に固執してみてください
  • 「深い」(データ バインディング、ユーザー コントロールなど) で .Net を使用しますか? はいの場合は、C# に固執してみてください
  • 移行時間は、新しい/変換された C# の人を取得するよりも受け入れられますか? いいえの場合は、C# に固執してみてください
  • プレゼンテーションを変更するJavaフレームワークを使用する場合、エンドユーザーは変更を受け入れないと思いますか? はいの場合は、C# に固執してみてください
  • コマーシャルをチェック

変換する場合:

  • コンポーネントごとに移動
  • レイヤーごとに移動
  • たくさんのテストを受けて
  • 移行を支援するツールがあるかどうかを確認します (小さな支援かもしれませんが)。
于 2009-04-11T19:36:32.340 に答える
15

Brian と Eric の意見に付け加えると、私の意見では、Java 開発者が C# を選択するのは簡単なはずです。これらは概念的に非常によく似た言語であり、面倒な移行プロセスを余儀なくされないように、Java 開発者をトレーニングして C# のスキルを習得することをお勧めします。

于 2009-04-11T19:17:31.590 に答える
5

完全な書き直しはほとんどの場合間違いであるという Joel の見解に同意します。他の投稿者の言うとおりです。C# と Java は十分に似ているため、有能な Java 開発者であれば、数週間または数か月で C# を扱えるようになるはずです。彼らが専門家になるというわけではありません。それには時間がかかりますが、プロセスをガイドできる C# 開発者がいれば問題ありません。

アプリケーションの詳細 (サイズ、アプリケーションの種類、業界など) を知らずに、このような移行が良いアイデアか悪いアイデアかについてコメントするのは困難です。

私の謙虚な意見では、C# は現在 Java よりもはるかに現代的な言語であり、Java 開発者として 10 年以上 (1.0.2 から/1.1日)。

Javaが悪いと言っているわけではありません。そうではありません。Sun には確かに雲がかかっており、近年、プラットフォームを前進させようとしない、または推進できないことを示しています。

于 2009-04-12T00:27:25.620 に答える
4

.NETプロジェクトのJavaへの変換を完了する前に、変換プロジェクトに参加していたすべてのJava開発者はC#を学習しているはずです。これで、Javaに変換する必要がなくなります(変換で生成されたすべてのJavaコードを破棄できます)。これで、JavaとC#の両方を実行できる開発チームができました。問題が解決しました。:D

于 2009-04-11T20:54:52.370 に答える
4

関連する言語に関係なく、この会社の経営陣は非常識に聞こえます。些細なアプリケーション以外の場合、適切な言語のスキルを持つ人を 1 人雇うのではなく、コード ベース全体をゼロから書き直すことは経済的に合理的でしょうか? これはよく知られた問題を抱えたビジネスですか?

既存のコードの開発期間はどれくらいですか? 始めたばっかりなら、これは理解できた。それがリリースされ、アクティブなユーザーがいる場合、それを捨てることは決して意味がありません. 適切なスキルを持つ新興企業に C# コードを寄贈した場合、彼らがあなたよりもどれだけ有利なスタートを切れるかを考えてみてください。

于 2009-04-11T20:26:41.627 に答える
2

すでに分離されているコンポーネントがある場合、またはサービス指向アーキテクチャを使用しているコンポーネントがある場合は、一度に 1 つのコンポーネントを移行し (個々のコンポーネントが書き換えられます)、同じコンポーネントを使用してコンポーネントが互いに通信できるようにすることが考えられます。相互運用可能なネットワーク プロトコル。おそらく、話しているアプリの種類によって異なります。

于 2009-04-11T19:04:50.607 に答える
2

大量のテストがあることを確認してください。そのような移行は、最も予想外の場所に影響を与えるからです。

于 2009-04-11T19:10:33.133 に答える
1

これを行うことにした場合は、シナリオをウォーターフォール変換から段階的な移行に変更するため、基本的に同じアプリケーションに C# と Java を混在させることができるハイブリッド アプローチの恩恵を受ける可能性が高くなります。ここで私は2つの可能性を知っています:

1) .NET ランタイムで Java コードを実行できるikvm ( http://www.ikvm.net/ )。これにより、Java コードから C# コードを呼び出すことができ、その逆も可能です。その後、C# コードの開発を凍結し、機能するアプリケーションを維持しながら、改訂された機能を Java 部分にゆっくりと追加できます。

2) .NET バイトコードを Java バイトコードにコンパイルできるMainsoft ( http://dev.mainsoft.com/Default.aspx?tabid=130 )。無料のエントリーバージョンがあります。私はこの製品の経験はありませんが、Java しか利用できない私たちのプラットフォームで大々的に広告を出しています。

于 2009-04-12T23:53:54.600 に答える
1

経営陣に証明するには、常に ROI と数値の観点から話す必要があります。これらのアプリケーションを移動すると、膨大な時間と QA リソースが必要になること、また他のプロジェクトや新しい開発が重要視されているために優先順位が下げられた場合、後回しにされてしまう可能性があることを示してください。

タイムライン、ROI、関連する作業、関連するお金などを彼らに示したとき、私は成功しました.

つまり、実際のポイントに来て、Java 開発者は、Microsoft の技術に対する基本的な精神的ブロックがない限り、C# をサポートできると思います。

于 2009-04-11T19:48:23.667 に答える
1

C# から Java へのコード変換を支援する Net2Java をご覧ください完璧であるとは思えませんが、互換性のないフレームワーク呼び出しや言語機能のねじれを解決するために、タスクから多くの単調な作業を取り除く 1 つの方法です。

それが完了したら、タスクは他の大規模な移行プロジェクトと同様に、テスト、テスト、およびテストを繰り返します。ユニットテスト、システム統合テスト、そしてエンドユーザーテスト。単体テストとは別に、元のアプリケーションで使用したこれらのテストを既に配置しておく必要があります。それらは引き続き関連します。

于 2009-04-11T19:48:33.387 に答える
1

本番環境に .Net または Java アプリケーションが増えていますか。.Net サーバーとアプリケーションにすでにかなりの投資をしている場合は、Java 開発者の中に .Net に移行するボランティアを募ってみませんか? 言語と構文は非常に似ているため、難しいのはフレームワークを学習することです。UI 開発にすべての時間を費やさない限り、フレームワークを学習することはそれほど難しくありません。

私たちのオフィスには、必要に応じて Java と .Net の間を行き来する非常に優れた開発者が多数います。

于 2009-04-11T19:16:50.983 に答える
0

私は Java の専門家ではありませんが、C# のファンでありながら Java コードを扱った経験から、考えられる頭痛の種のいくつかを以下に示します。

  • ジェネリックは、Java と C# で異なる方法で実装されます。
  • Java と C# では、ボックス化/ボックス化解除の動作が異なります
  • Java クラスの命名規則 + 多くの C# 生成コード
  • 文字列の処理 (つまり、Unicode/ASCII の問題) は、移植される Java/C# コードの品質によっては問題になる可能性があります。

個人的には、ゼロから書くことは悪い考えではないと思います。すでに動作するアーキテクチャがあるためです。

于 2009-04-11T19:37:12.273 に答える
0

移住を拒否するという考えを誰も提案しなかったことに少し驚いています。

私は、C# 開発者が Java への切り替えを強いられる (またはその逆) とは思いません (銃で脅された場合はそうなるかもしれません)。少なくとも 1 つのテクノロジー スタックを習得するには、多くの時間、運動、情熱が必要です。新しいテクノロジーを一夜にして始めて、同じ品質を提供できると期待することはできません。

移行を開始するように言われるまで、個人的には気にしません。その時点で、私はマネージャーに、私は .NET の専門家であり、別のテクノロジに切り替えるつもりはないと伝えました。

技術的な側面に関して言えば、異なるのは言語の構文ではなく、ライブラリとその機能です。もちろん、.NET 3.5 のすべての最新機能が広範囲に使用されている場合、言語の違いが実際の課題となります。

これは確かに面白い方法です。アプリケーションを .NET から Java に移行することに決めただけです。面倒なことを知らない人がいる...

于 2009-04-11T20:17:22.023 に答える
0

jni4net - opensource bridgeを使用できますか? または私が知っている他のオプションのリスト。

于 2010-12-14T00:09:40.367 に答える