15

最近 Java デスクトップ アプリの開発を開始しましたが、経営陣から Rich Client Platform を利用するように依頼されました。私はJavaの4つ、つまり次のことを知っています。

  1. Eclipse RCP - Eclipse RCPへの www リンク
  2. Netbean RCP - Netbeans RCP Web サイト,
  3. Spring RCP -春のリッチクライアント
  4. Valkyrie RCP - Valkyrie リッチクライアント

誰かがこれらのいずれかで何らかの経験をしたことがありますか?もしそうなら、それぞれの長所と短所は何ですか?

ありがとう

4

11 に答える 11

10

はじめに - 結果だけに興味がある場合は飛ばしてください ;)
私は、JSP に非常によく似たカスタム プログラミング言語用のエディタを開発していました。まず、 NetBeans プラットフォームを使用して、論文としてエディタを実装しました。学校を卒業した後、仕事があり、同じことをEclipse RCPに実装するように求められたので、少なくともこのプロジェクト中に直面していたものについて、これら 2 つのプラットフォームを比較できます。

結果 - Netbeans プラットフォームと Eclipse RCP のどちらかを選択できるとしたら、間違いなく NetBeans プラットフォームを選択します。なんで?
優れたスクリーンキャスト、優れたチュートリアル、非常に活発でフレンドリーで役立つコミュニティ、十分に文書化されたソース コードは適切に記述され、適切なコード規則に従っています。また、いくつかの興味深いガジェット (Cookie、ルックアップ) もあります。それは単に私に合っています。

そして、Eclipse RCP が私に合わないのはなぜですか?
ドキュメンテーションは弱く、慣例や API は時々..うーん..私には奇妙すぎます :-)

/**
* Returns a description of the cursor position.
*
* @return a description of the cursor position
* @since 2.0
*/
protected String getCursorPosition() {
..
}

うーん、彼らは私をからかっているに違いないと思いました:-D この方法をどのように使用すればよいですか? またはこのように:

/**
* Returns the range of the current selection in coordinates of this viewer's document.
*
* @return a <code>Point</code> with x as the offset and y as the length of the current selection
*/
Point getSelectedRange();

属性の数とタイプは適合しますが、範囲を格納するための Point オブジェクトの理想的なデータ構造が見つかりません ;-)

Eclipse RCP には、このような驚きが数多くあります。

于 2009-05-27T13:33:26.713 に答える
7

回答するには遅すぎますが、このページにたどり着く人もいるかもしれません。

私はNetbeans RCP、1)Netbeansプラットフォームに行きます。その非常に成熟し、進化したのは、アプリケーションを開発するための「使いやすい」プラットフォームです。

2) 始めるのは非常に簡単ですが、Eclipse RCP の学習曲線はかなり急勾配です。http://netbeans.org/kb/trails/platform.htmlにアクセスすると、チュートリアルやビデオが表示されます (トップ 10 の API のビデオを見て、本を読む前にチュートリアルを試してみてください。そうすれば、コツをつかむことができます)ことを事前に)。

3) netbeans RCP に関する書籍 (netbeans RCP に関する書籍は 2 冊あると思います) は最新です (小さな変更のみで、大きな問題はありません)。一方、RCP に関するメインの本は長い間入手できませんでした (最近、つまり 2010 年 5 月に新版がリリースされました。これは、Eclipse RCP 開発者にとって非常に良いことです。私が試していたときはありませんでした)。私は新しい版を出版しない著者に苛立ちを感じます, ほとんど新しい開発者を置き去りにします. 誰もがドキュメントを読むのが好きではありません. 更新された本を出版しないことは、ほとんど技術を殺すことになります. 両方のプラットフォーム用のクックブック形式の本が見たいです。

4) Netbeans には完全に統合された GUI ビルダーがあり、これは大きな利点です。Eclipse RCP では、コードを手動で作成するか、サード パーティの GUI ビルダーを購入する必要があります。

5) Netbeans プラットフォームには、モジュール間通信用の非常に優れた Lookup API があります。日食の人たちは、この目的のために拡張ポイントを使用していると思います。しかし、一度コツをつかめば、ルックアップ API は簡単です。

6) いずれにせよ、どのプラットフォームを選択するかについての大きな設計上の決定です。Netbeans プラットフォームは私にとってはうまくいきます。うまくいかない場合があります。どちらのプラットフォームも努力が必要ですが、どちらも優れた「すぐに使える」機能を提供します。どちらも試乗してから決めましょう。

于 2010-08-04T10:48:40.763 に答える
6

JSR 296 を確認することをお勧めします。まだ完全ではありませんが、すべての Java GUI アプリケーションで本当に本当に必要な特定のコア機能を提供するためのスイート スポットに当たると思います。非常に複雑なフレームワーク。

私は JSR 296 をうまく使って中規模のアプリケーションを作成しました。このアプリのウィンドウ レイアウトには、MyDoggyを使用します(強くお勧めします)。レイアウト管理には、MiGLayout を使用します (Beyond を強くお勧めします)。データ バインディングには、JSR 295 の変更された形式を使用します (GUI バインディングに使用する JSR 295 の上に、PresentationModelに似たものを実装しました)。私は Guice を DI メカニズムとして組み込む作業を行っていますが、その作業はまだ完了していません (これまでのところ、JSR 296 であちこち調整することで「うまく機能する」と思います)。見てみましょう...永続性はここで大きなミッシングリンクです-私は現在Simple for XML永続性を評価していますが、GuiceのようなDIコンテナで動作させる際に問題が発生しています. 私はBetwixtを持っています動作していますが、Betwixt への依存関係が非常に大きいため、より合理化されたものを探しています。

Java のその他の RCP オプションに関する意見:

NetBeans: NetBeans で使用されるアプローチに対して、根本的な哲学的反論がいくつかあります (私の好みに合わない設計のアンチパターンが多すぎます)。最終的に、このフレームワークは設計上の決定を下すことを余儀なくされます。また、NetBeans を IDE として使用しない場合、使用することはほとんど不可能です (試してみましたが、Eclipse から NB に切り替えることはできませんでした)。おそらく私だけかもしれませんが、RCP フレームワークのコードを書くことは、大規模で複雑なウィザードや大量の自動生成コード、XML ファイルを使用せずに行うことができるように思われます。私は、Visual Studio によって生成された古い Visual C++ コードのトラブルシューティングに何時間も費やしてきたので、手作業でコーディングできないフレームワークには非常に懐疑的です。

Spring RCP: Spring の人々は優れた堅実な設計を持っていますが、ドキュメントは本当に非常に貧弱です。それに慣れるのはかなり難しいです (しかし、慣れてしまえば、すぐに物事を成し遂げることができます)。

Eclipse RCP: デプロイのオーバーヘッドのためだけに Eclipse を使用していません (ターゲット ユーザーによって異なります。私たちの場合、50 MB の追加のランタイムをデプロイしてもうまくいきませんでした)。アプリが重要なプラグイン機能を必要とする場合、間違いなく Equinox は素晴らしいものです (もちろん、JSR 296 で Equinox を実行したり、OSGi によって促進された Whiteboard パターンに似たデザイン パターンを使用したりすることもできます)。

于 2009-02-24T05:08:35.147 に答える
4

私はEclipseRCPの経験があり、それをお勧めします。

長所:

  • コンポーネント-コンポーネント/プルインモデルは再利用を可能にします。
  • ネイティブなUIを可能にするSWTとJFaceを使用
  • プラグ可能なビュー、エディター、およびパースペクティブにより、レイアウトが簡単に構成可能になります。
  • Eclipse拡張ポイントにより、サードパーティのAPIおよびツールの拡張と統合が容易になります。

短所:

  • 学習曲線

Eclipse RCPを選択した場合は、この本を断固として入手してください。フレームワークを使い始めたばかりの場合は非常に貴重です。http: //www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

于 2009-02-23T20:45:49.677 に答える
3

現在、Spring RCP アプリケーションを開発しています。ドキュメンテーションは確かに貧弱ですが、ブログやフォーラムには十分な量の情報があります。フレームワークに慣れていない場合は、Spring の基本を学ぶだけで十分です。VLDocking などの Spring ライブラリとの統合も優れています。

ユース ケースがスタンドアロンの Java デスクトップ アプリケーションを開発する場合、Spring Rich は素晴らしいと思います。つまり、モジュールを配布してオンラインで更新する必要がなければ、ほとんどのニーズを満たすはずです。

于 2010-05-25T13:04:24.613 に答える
1

私のエンドユーザーの観点から。

他の 2 つよりも Eclipse で多くの実装を見てきました。実際、私は Netbeans の実装については知っていましたが、実際に手にしたことはありませんでした。

春から、初めて聞きました。

私の答えは間違いなく超 10,000 フィートのビューですが、業界がどちらか一方を使用することについて持っていた好みを何らかの形で反映しています。

また、差はプラットフォームが利用可能になった時間に比例します。Java Swing が 1.3 で抱えていた問題を解決するために、Eclipse が SWT を作成したことを思い出してください。

Netbeans は JVM の改善によって非常に恩恵を受けており、現在では非常に高速に動作します。

Spring は (他の 2 つに比べて) まだ若いですが、いつものように、新しいことは前者から学び、使いやすい可能性があります。

これは、これら 2 つのプラットフォームの Eclipse RCP と Netbeans RCP に関する記事です。役に立つかもしれません

http://blogs.oracle.com/geertjan/entry/eclipse_platform_vs_netbeans_platform

于 2009-02-23T20:19:17.823 に答える
1

もちろん、それはすべて、提供したいアプリケーションとサービスの種類、およびターゲット環境によって異なります。しかし、OSGi を開発および展開プラットフォームとしてお勧めすることもできます。基盤となるアーキテクチャと仕様は、非常によく開発され、実証されています。

Eclipse RCP のほかに、Apache Felix ( http://felix.apache.org ) と Knopflerfish ( http://www.knopflerfish.org ) に目を向ける必要があります。これらは (より小さい) オープン ソース OSGi フレームワークの実装です。

于 2009-03-09T14:02:11.013 に答える
1

Netbeans RCP は優れています。それは何年にもわたって長い道のりを歩んできました。これは、多くの人が使用して理解している、より堅牢なテクノロジ (「Swing」) を使用しています。Eclipse RCP (具体的には SWT) は私を混乱させました。

于 2014-02-12T14:53:47.100 に答える
1

それらを明示的に使用したことはありませんが、Eclipse RCP の一部を使用しました。具体的には、Eclipse OSGi ランタイム (Equinox) といくつかの一般的なユーティリティを使用してきましたが、非常に満足しています。OSGi と連携するのは素晴らしいことです。Eclipse RCP を (私が使用するよりも多く) 使用する大規模な契約を結んでいる友人が何人かいますが、彼らはそれを絶賛しています。

私のプロジェクトに大量のレガシー Swing が含まれていない場合、Eclipse RCP が最初の選択肢になります。OSGi はとても楽しいものです。(Springもそれを使用していると思いますが、チェックしていません)

于 2009-02-23T20:27:04.217 に答える
0

Eclipse RCP にはプラグイン メカニズムが用意されているため、後で展開時に新しい機能を追加できます。また、更新メカニズムを介して、ユーザーの介入なしにシステムを変更できます。開発段階では、Eclipse RCP は、パースペクティブ、ビュー、エディター、コマンド、およびアクション メカニズムを備えた高速で堅牢な基盤を提供します。プロジェクトで、さまざまなツールバーとメニュー (およびカスタム コンテキスト メニュー) を備えたさまざまなウィンドウが必要な場合は、Eclipse RCP を使用することをお勧めします。私は Netbeans Platform のビデオをチェックして Helloworld プロジェクトを実行するだけですが、遅くてぎこちないようです :) 起動まで 40 秒 (再起動なしでアプリケーションをリロードできます) vogella.de は、次のチュートリアルの優れたコレクションです。エクリプスRCP

于 2009-04-06T15:20:34.767 に答える