質問

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


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

役に立ちましたか?

解決

質問に答えるには本当に鍵となるアプリケーションの要件上の任意の詳細はありません。

GWTを使用するための大きな勝利は、RCPのようなものに比べて、展開の容易さです。 URLと、サーバーにコードを押して、それをバウンスし、それを一日を呼び出すよりも運用チームのために簡単に何で自分のWebブラウザを指しているよりもユーザにとって容易なものは何もありません。

限り機能として、GWTは短く出てくる大きな領域が豊富なデータの視覚化のようになります。チャート、ツリー/ノード、ネットワーク図などこのようなものは、GWTと、サーバー上のいくつかの助けが、の制限が可能ですでもGWTのような強力なツールキットで、透けて見えるし始めDHTML。一方、RCPは、あなたが欲しいものを視覚化するためのJava 2Dのフルパワーを与えます。機能のこれらの種類は、あなたに必要ではないかもしれないが、彼らはまた、アプリケーションが本当に面白くするものだ、タブ、ツリーとデータグリッドコントロールのちょうど混乱よります。

私はGWTのようなものとほぼ同じ展開の利点を有するが、RCPとパワーの同じ種類を提供し、ここ数年のためにはAdobe Flexで開発し、それは本当に強力であることがわかりきました。あなたもそれをチェックアウトする場合があります。

他のヒント

GWT は大いに役立ちますが、適切なアプリケーションと同じ柔軟性とアクセシビリティを提供するわけではありません。

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

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

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

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

アプリケーションがより頻繁にタスクを行う場合には、GWT が非常に適しています。

GWTは本当にいいですね しかし、それでも Web アプリケーションなので、時々ひどいことになります。誤ってキーを押してすべての作業とセッションが失われる可能性がある Web アプリケーションですべての作業を行いたくありません。(私のキーボードには、矢印キーの隣に無効にすることが不可能と思われるキーもあります)。その強力な機能は、RCP で実行できるほぼすべてのことを実行しますが、依然として Web ブラウザ内で実行されるため、イライラする可能性があります。

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

私たちは(パイロットプロジェクト)がプラグインEclipse用の両方のスタンドアロンRCPアプリケーションに変換した私たちは前のようにEclipseをしたくなかったので、(私たちはプラグインとしてそれを出荷したくなかった開発しましたjQueryのを使用してRIAアプリケーションにreqを、私たちはRCPへの単純な動きよりも、それは少し複雑作るいくつかのサポートのコードを追加する必要がありました)

RCPキャンプの最善の努力にもかかわらず、RIAのバージョンは(それは最初からだったにも関わらず)の開発に同じくらいの時間かかりましたし、それが実行に滑らかに見えます。

決め手は、すべてのお客様がすでにアプリケーションサーバーと更新はサーバーではなく、各クライアントに集中している持っているので、何のRIAバージョンで必要なインストールします。

がなかったということでした

RCPバージョンは、長い以来、機能性に置き去りにされています。限り我々が懸念しているとされていない、Eclipseは(Javaのため、我々は他の言語との経験がない)開発環境として罰金ですが、彼らはGUIから分割以外にIDEを置く努力が(RCP可能にするために)< em>のかなりの完成ます。

一方、jQueryのは、カスタム(おそらくそれはカスタムもののその種のために建設されたため)もののその種のために構築されたようです。アプリケーションの開発と実行の両方が非常にいいです。

リッチインターネットアプリケーションは、従来のデスクトップソフトウェアのように動作する堅牢なソフトウェアを作るための良い方法です。 RIAと1つの共通の問題は、多くの開発者は、クライアント側のコードでビジネスロジックを置く傾向があることです。 1は、実行時にクライアント側のコードを操作できるように、クライアント側のコードでビジネスロジックと状態は非常に危険です。さらに、それはハッカーがコードを調べると、クライアント側のコードや状態を操作中にのみ行われ、入力検証などの弱点を、見つけることができますホワイトボックスシステムは、あります。それが唯一のハッカーが遅くなりますが、彼を停止しないよう、難読化によってだまされてはいけません。ビリー・ホフマンは、AJAXのセキュリティについての良い本(と呼ばれる、のTA-DAA の、 "Ajaxのセキュリティ")を書いて、私はすべてのRIAの開発者のためにそれをお勧めします。

これは、RIAは、定義によって悪いという意味ではありません、あなたがやってされていないものを知っている場合は、

、あなたは安全なRIAを書くことができます(クライアント側のコードには、ビジネス・ロジック、無の状態、入力検証を[また]サーバ側などに行われます) 。 RIAドリブンこのより強固サーバを実装するフレームワークのカップル、1は、(GWTに基づく) ITミルツールキットであるがあります。そして、 ICEfacesをにも、私の知る限りでは1でなければなりません。

私の経験では、RIAのGUIは、ユーザーに最も情報を伝達するのに十分な堅牢になりがち。そここれにはいくつかの、おそらくいくつかの例外はあるが、私は今、良いものを考えることはできません。 RIAは、シッククライアント(RCP)をインストールすることなく、Webブラウザを介して誰でもアクセス可能であるという利点があります。あなたはWeb技術を介して行うことができないいくつかの特別な複雑な表示がない限り、私はRIAルートを行くのをお勧めしたい。

そのユーザーがオンラインとオフラインの両方のアプリケーションで動作するために必要なので、私が選択したRCPのために働いていた

組織(彼らは道路上にある場合など)。私はこれが今のGoogle grearsで可能であるが、歯車が大きなorganiazationが上それを主力製品をベースに十分な、本当に主流ではありません知っています。 しかし、あなたのユーザーがあなたが本当にあなたのRCPアプリケーションとサーバの間のユーザデータ/製品の更新プログラムのectの同期の手間を救うオフラインにする必要性を持っていけない場合は、RIA、この場合には移動するための方法となります。

RIA の利点の一部を備えた RCP を導入する可能性もあります。当社のクライアント向けに検討されている解決策の 1 つは (社内のスタッフのみが使用するため)、Java サーブレット経由で起動される Java アプリケーションの使用です。

確認されている利点には次のようなものがあります。

  • RIA と同様に、簡単にアップグレードできます (JAR ファイルを再デプロイするだけで、次回アプレットのあるページを参照するときにいつでも選択されます)。
  • 見た目、感触、動作、パフォーマンスはネイティブ アプリケーション、RCP によく似ています (SWT のおかげで)

確認されている弊害には次のようなものがあります。

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

このアプリケーションの性質はどのようなものです。それは、クライアントコンピュータ上で完全に実行されているべきですか?それは、ローカルに保存されたデータにアクセスする必要がありますか?あなただけのエンジンはまだ従来のコードであることと、既存のアプリのためのGUIをreplcaningしていますか?

私の重要な他には、彼女は、アプライアンスを設定するための手段として、AJAXを活用したソフトウェアアプライアンスに取り組んでいます。コンフィギュレーションに設定された機能が豊富で、RIAと非常によく整列します。同様に、Webブラウザ上でローカルにソフトウェアをインストールすることは非常に推奨されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top