6

私は、古いアプリケーションの代わりに GUI を構築しようとするプロジェクトに参加しています。機能を実際に実装する前に、Eclipse RCP (リッチ クライアント プラットフォーム) と GWT (Google ウィジェット ツールキット、リッチ インターネット アプリケーション) を使ってプロトタイピングを開始しました。RIA および RCP GUI の使用経験は? RIA を使用する意味があるのはどのような場合で、リッチ クライアントが適しているのはどのような場合ですか? 現在のRIAの可能性を考えると、ますます線引きが難しくなっています..経験はありますか?


編集:あなたの答えはすべて本当に興味深いものです。私の答えに貢献するので、それらすべてを受け入れたいと思います。かなり未解決の質問であることは認めます。だから、それぞれに賛成票を投じます。賞金があなたの間で共有されることを願っています。

4

9 に答える 9

7

質問に答える上で本当に重要なアプリケーションの要件に関する詳細はありません。

GWT を使用することの大きな利点は、RCP のようなものに比べて展開が容易であることです。ユーザーにとって Web ブラウザーで URL を指定することほど簡単なことはありません。また、運用チームにとってコードをサーバーにプッシュしてバウンスし、1 日で終了することほど簡単なことはありません。

機能に関して言えば、GWT が不足する大きな領域は、より豊富なデータの視覚化 (チャート、ツリー/ノード、ネットワーク ダイアグラムなど) です。これは、GWT とサーバー上のいくつかのヘルプで可能ですが、DHTML の制限が始まります。 GWT のような強力なツールキットを使用しても、透けて見えます。一方、RCP を使用すると、Java 2D のすべての機能を利用して、必要なものを視覚化できます。これらの種類の機能は必要ないかもしれませんが、タブ、ツリー、およびデータ グリッド コントロールの混乱以上に、アプリケーションを本当に興味深いものにするものでもあります。

私は Adob​​e Flex を使用して数年間開発を行ってきましたが、これは非常に強力で、GWT のようなものと多かれ少なかれ同じデプロイメントの利点を持ちながら、RCP と同じ種類の機能を提供していることに気づきました。あなたもそれをチェックしたいかもしれません。

于 2009-04-20T07:03:52.477 に答える
7

GWT は長い道のりを歩んできましたが、適切なアプリケーションと同じ柔軟性とアクセシビリティを提供しているとは言えません。

GWT アプリケーションは実際のアプリケーションでできることのほとんどすべてを実行できますが、RCP が最適なツールであることを示す多くの要因があります。

  • 繰り返し作業
  • たくさんのインプット
  • 長いセッション
  • 繰り返されるタスク
  • 編集またはプレゼンテーション用のカスタム ウィジェット。
  • 異なるデータを持つ複数のウィンドウ。
  • よく使う操作のクイックキー
  • 迅速な対応。
  • 本物のメニューバー、クールバー。
  • タスクバーで見つけやすい適切なウィンドウ。
  • めったに使用しない操作のコンテキスト メニュー
  • 限られた (または既知の) ユーザー数。
  • 大規模または複雑なアニメーションまたはリアルタイムの更新。

アプリケーションに複数のビューとエディターを備えたワークベンチが必要であると思われる場合は、選択肢が与えられます。

RCP とワークベンチの操作はそれほど簡単ではありませんが、複数のビュー/エディターなどを使用して、より「自由」でオープンな作業モデルからアプリケーションが恩恵を受ける場合は、多くのことを無料で得ることができます。

アプリケーションがより不定期のタスク用である場合、GWT は非常に優れています。

GWT は非常に優れていますが、それでもやはり Web アプリケーションであり、それがうまくいかない場合もあります。誤ってキーを押してすべての作業とセッションを失う可能性がある Web アプリケーションですべての作業を行いたくありません。(私のキーボードには、矢印キーの横にキーがあり、無効にできないようです)。RCP で実行できるほとんどすべてのことを実行できるほど強力ですが、Web ブラウザー内で実行されているため、イライラする可能性があります。

Java Webstart を使用して RCP アプリケーションをデプロイできることに注意してください。

于 2009-04-21T11:57:48.033 に答える
3

私の経験では、RIA GUI はほとんどの情報をユーザーに伝えるのに十分堅牢である傾向があります。これにはおそらくいくつかの例外がありますが、今のところ良いものは思いつきません。RIA には、シック クライアント (RCP) をインストールしなくても、Web ブラウザーを介して誰でもアクセスできるという利点があります。Web テクノロジでは実行できない特別な複雑な表示がない限り、RIA ルートを使用することをお勧めします。

于 2009-04-14T21:00:38.070 に答える
3

リッチ インターネット アプリケーションは、従来のデスクトップ ソフトウェアのように機能する堅牢なソフトウェアを作成するための優れた方法です。RIA に関する一般的な問題の 1 つは、多くの開発者がクライアント側のコードにビジネス ロジックを配置する傾向があることです。クライアント側コードのビジネス ロジックと状態は、実行時にクライアント側コードを操作できるため、非常に安全ではありません。さらに、これはホワイトボックス システムであり、ハッカーがコードを調べて、クライアント側コードでのみ行われる入力検証や状態の操作などの弱点を見つけることができます。難読化に惑わされないでください。ハッカーの動きを遅くするだけで、止めることはできません。Billy Hoffman は AJAX セキュリティ (「 ta-daa」、「Ajax セキュリティ」と呼ばれる) に関する優れた本を書いており、すべての RIA 開発者にこの本をお勧めします。

これは、RIA が本質的に悪いという意味ではありません。自分が何をしているのかを知っていれば、安全な RIA を書くことができます (クライアント側のコードにビジネス ロジックがない、状態がない、サーバー側で行われる入力の検証など)。このより安全なサーバー駆動型 RIA を実装するフレームワークがいくつかあります。1 つはIT Mill ツールキット(GWT ベース) で、私の知る限りではICEFacesもその 1 つです。

于 2009-04-20T13:34:32.630 に答える
1

私が働いていた組織は、ユーザーがオンラインとオフラインの両方で (外出中などに) アプリケーションを操作する必要があったため、RCP を選択しました。私はこれが現在Google grearsで可能であることを知っていますが、Gearsは、大きな組織が主力製品をベースにするのに十分なほど主流ではありません. しかし、ユーザーがオフラインになる必要がない場合は、rcp アプリとサーバー間でユーザー データや製品の更新などを同期する手間を省くことができます。この場合、RIA が適しています。

于 2009-04-21T01:49:13.597 に答える
1

また、RIA のいくつかの利点を備えた RCP を展開する可能性もあります。クライアント (社内のスタッフのみが使用) のために調査している 1 つのソリューションは、Java サーブレットを介して起動される Java アプリケーションの使用です。

特定されたいくつかの利点は次のとおりです。

  • RIA と同じように簡単にアップグレードできます (JAR ファイルを再デプロイするだけで、次にアプレットでページを参照するときに選択されます)。
  • RCP によく似た (SWT のおかげで) ネイティブ アプリケーションのように見え、感じ、動作し、実行します。

特定されたいくつかの不利益は次のとおりです。

  • ユーザーのコンピューターには、Java プラグインがインストールされている必要があります。
  • アプリケーションは、ユーザーのプラグインと互換性のあるバージョンの Java で開発する必要があります (ただし、クライアントはスタッフのコンピューターにインストールする最小バージョンを要求できます)。RetroWeaver ツールは役に立ちますが、私はあまり経験がありません。
  • ユーザーは Web ブラウザーを開いたままにしておく必要があります。そうしないと、アプリケーションが終了します。
于 2009-04-23T09:26:10.127 に答える
0

このアプリケーションの性質は何ですか。クライアント コンピューター上で完全に実行する必要がありますか? ローカルに保存されたデータにアクセスする必要がありますか? エンジンがまだレガシー コードのままで、既存のアプリの GUI を置き換えているだけですか?

于 2009-04-18T10:41:44.497 に答える