16

私は現在、JSF と IceFaces を多用する Web アプリに取り組んでいます。別のプレゼンテーション レイヤーに移行することについていくつかの議論がありましたが、その議論を SO に持ち込んで、専門家がどう思うか見てみようと思いました。

さまざまな Java プレゼンテーション レイヤー テクノロジの長所と短所について、意見を述べてくれる人がいることに興味があります。1 つしか使用したことがない場合は、その理由を好きな理由または嫌いな理由を教えてください。複数の製品を使用したことがある場合は、それらが互いにどのように積み重なっていくかについての印象を教えてください。

検討中の当社の技術は次のとおりです。

  • アイスフェイス
  • JSF (IceFace なし)
  • GWT (Google Web ツールキット)
  • ウィケット
  • タペストリー

リストに欠けているものがある場合は、お知らせください。

ありがとう!

4

8 に答える 8

6

JSP 鉱山に何度もつまずいた後、しばらく Wicket を使用していたため、私の意見は Wicket に大きく偏っています。

改札の長所:

  • レイアウトとコードの真の分離。
  • サイト要素の高い再利用性を意味するコンポーネントベース。たとえば、自動ラベル付けや CSS スタイルなどすべてを備えたきれいなフォームを作成でき、コンポーネントのコンストラクターで DAO オブジェクトを変更するだけで、別のプロジェクトで完全に再利用できます。
  • Ajax、ポートレット、さまざまなフレームワークなどの優れたサポートは、一般的にすぐに使用できます。さらに重要なことに、動作するために slf4j/log4j 以外に依存するものはありません。すべてがオプションです!

ウィケットの短所:

  • 開発には一般的な事柄についていくつかの混乱があり、Wicket ジェネリックは 1.4 で大幅にクリーンアップされていますが、現在は少し混乱しています。
  • 一部のコンポーネント ( などForm.onSubmit()) では、動作を簡単に注入するために、大規模なサブクラス化または匿名メソッドのオーバーライドが必要です。これは、一部には Wicket の強力なイベントベースの設計によるものですが、残念なことに、Wicket でコードを混乱させやすいことも意味します。

ランダムな短所: (つまり、私は使用していませんが、これらは私の意見および/または私が聞いたことです)

  • GWT は JavaScript ベースで、私にはばかげているように思えます。主な問題は、JSP:s とその自動生成されたクラスをあまりにも多く思い出させてしまうことです。
  • Tapestry はマークアップとコードを適切に分離しておらず、2 つの間で簡単に検証できず、将来的に問題が発生する可能性があります。
于 2009-02-12T12:41:07.760 に答える
3

私が尋ねる最大の質問は、なぜプレゼンテーション レイヤーを変更するのかということです。これは非常に高額なコストであり、1 つのテクノロジーのメリットが他のテクノロジーよりも、変更するためのコストと同じくらい重要であることがわかります...

于 2009-02-11T20:25:20.227 に答える
2

要するに:

= JSF =

長所:

  • コンポーネント アーキテクチャ;
  • 多くのライブラリとツール。
  • やや優れた IDE サポート

短所:

  • CPU /メモリと学習曲線の両方で重い。
  • 何かが期待どおりに機能しない場合、デバッグが難しい

=ウィケット=

長所:

  • 軽量;
  • 賢明なテンプレート システム;
  • 良いチュートリアル;

短所:

  • リファレンス ドキュメントは、チュートリアルほどよく整理されておらず、深くもありません。
  • 開発チームは、特にプロジェクトを立ち上げてインキュベートしたときに、いくつかの深刻な問題を抱えていました。これにより、フレームワークの重要な側面で混乱が生じました。その時点で、このため別のフレームワークに切り替える必要がありました...
于 2009-02-12T08:34:27.230 に答える
1

私のピックはWicketです。使用済みで、再利用性に優れています。最も活発なフォーラム/メーリング リストの 1 つがあります。質問として、数分で答えられます。AJAX の優れたサポートがあります。Wicket に起因する通常の短所の 1 つは、急な学習曲線です。これらは、今では価値のない古い時代の短所の 1 つでした。

JSF: 近づかないほうがいいよ。JSF でプロジェクトを開発した別のチームは、Wicket で成功した後、Wicket に移行することを考えています。

@Megadix:あなたが言ったように、ドキュメントは最初は貧弱でしたが、それ以上ではありませんでした。Wicket の開発者によって書かれた Wicket in Action という優れた本があります。サイトで提供されているサンプル コードも、開始して学習するのに適した場所です。

于 2009-02-23T07:07:56.930 に答える
1

ストライプはどうですか?

于 2009-02-17T21:54:15.817 に答える
0

Web クライアントとは別のサービス レイヤーがあり、Web コントローラーが単に呼び出して作業を完了させるだけのものではないかと思います。

そうすれば、Web UI テクノロジーの選択をバックエンドから切り離すことができます。コントラクト ファースト Web サービスとして公開されている場合は、別のアプリで共有できます。クライアントが XML を送受信できる限り、サービスと対話できます。Flex に切り替えますか? 心配する必要はありません。それをサービスに向けて、XML 応答をレンダリングしてください。

于 2009-02-11T21:14:39.500 に答える