JSF2とTap5を比較した最新の記事はありますか?私が見つけたように見えるのは、JSF1.2とTap4を比較することだけです。
T5またはJSF2の経験があり、どちらか一方を伝道する時間がある人はいますか?
HibernateとmySqlに加えて、Javaで迅速に開発するためのフレームワークを探しています。
他のフレームワークの売り込みも受け入れられましたが、JSF2とT5が現在私たちのトップピックです。
JSF2とTap5を比較した最新の記事はありますか?私が見つけたように見えるのは、JSF1.2とTap4を比較することだけです。
T5またはJSF2の経験があり、どちらか一方を伝道する時間がある人はいますか?
HibernateとmySqlに加えて、Javaで迅速に開発するためのフレームワークを探しています。
他のフレームワークの売り込みも受け入れられましたが、JSF2とT5が現在私たちのトップピックです。
ここ数年、私は主に Tapestry 5 を使ってきました。伝道はしませんが。優れた Web フレームワークを選択することは、確かに良い考えですが、通常、主要な問題ではありません。
私の頭の上からの良いことと悪いことのリスト:
Tapestry 5 の初期学習曲線はかなり急勾配です。魔法とメタプログラミングがいたるところで起こっています。構成よりも慣習をやり過ぎていると主張することができます。
シンプルなことはとても簡単にできますが、難しいことはタペストリー 5 がどのように機能するかを詳細に理解する必要があり、理解していないと (まだ) 難しい場合があります。
ライブクラスのリロードが大好きです。T5 コンポーネントまたはテンプレートで何かを変更すると、すぐに表示されます。アプリが多くのことを行い、Jetty で起動するのに 30 秒以上かかる場合に非常に便利です。
Tapestry は動的なページ構造をサポートしていません。これは通常は問題になりませんが、コンポーネントを個別に配置できるポータル ソリューションを開発している場合は、Tapestry を使用しないでください。Tapestry は静的構造用で、非常にうまく処理できます。
タペストリーには美しい URL があります。package/page/${param1}/${param2} ...
Tapestry は適切な HTTP 動詞を使用して処理を行います。リンクは GET、フォーム送信は POST、post-redirect-get パターンが標準です。
Tapestry のコミュニティはそれほど大きくありません。Howard Lewis Ship 以外にもコミッターは何人かいますが、Wicket ほどのサポートはありません。したがって、Tapestry はかなりゆっくりと進化します。
Tapestry のテンプレート作成 (型と ID を備えた HTML の実装) へのアプローチは、私が見た中でも優れたアプローチの 1 つですが、HTML からコードを除外する点で Wicket ほどではありません。一方、クラス ファイルはそれほど冗長ではありません。それでも、Wicket の方法が望ましいと思います。
タペストリーはやや文書化されていません。
私はタペストリーがとても好きです。タペストリーを使って生産性を高めることができると思います。タペストリーを使用するプロジェクトにはいつでも喜んで参加します。
ただし、Wicket もチェックすることをお勧めします。Tapestry よりも多くの牽引力を得ているようで、いくつかの問題を魔法のように解決することはありませんが、常識的なアプローチで解決します。
(私は JSF 1 を簡単にしか使用していませんが、JSF 1 が行うほとんどすべての点で完全にオフであることがわかりました: POST ですべての要求をラップし (したがって、基本的な Web 機能を壊します)、JSP を使用しますが、すべてに特別なタグを使用する必要があります。プレーンな HTML... JSF 陣営で多くの改善が見られましたが、わかりません。もう一度調べたことはありません。)
オファーを受け取り、別のフレームワークを売り込む:
本当に迅速な開発が必要な場合は、 Play Frameworkを検討する必要があります。
私は JSF/Richfaces/Seam/Hibernate などを使用しましたが、Play を使用すると生産性が 2 倍以上になると思います。展開サイクルはありません。したがって、開発者のダウンタイムはありません。JPA/Hibernate が焼き付けられており、その機能を他の方向に拡張する多くのプラグインがあります。
また、ページが非常に軽量になるという事実も気に入っています。JSF に関する私の最大の問題は常にページの重みでした (不要な ID、多数のテーブル、クライアント状態など)。
時間をかけて、Web キャストを表示します。
私のプレゼンテーションJSF2.0とTapestry5をチェックしてください: Jazoon 2010での直接比較。これは、決定を下すのに役立つかもしれません。
タペストリーのコミッターとして、タペストリーを選択することをお勧めしますが、決定を下す最善の方法は、両方を試してみることだと思います。より多くのデモアプリケーションが必要ですか?
https://github.com/drobiazko/tapestry5inaction/tree/master/tlog
私にとって最も重要なTapestry5の機能は、フレームワークの柔軟性です。Tapestry IoCのおかげで、Tapestryのコア内のほぼすべてのコードをオーバーライドできます。
偏見のない意見を求めないでください...タペストリーは数年前から私の人生であり、今でも愛しています。
そうは言っても、学習曲線は緩やかになり、ドキュメンテーションは急速に改善されており、Igor の本はすぐそこまで来ています。
人々を混乱させる原因のいくつかは、単にドキュメントが不足していることです。たとえば、命名規則はオプションであり、より明示的な構成 (メソッド注釈の形式で) が常にあり、一部の人々はより快適です。
Henning のいくつかのポイントに対処するには、次のようにします。
Tapestry コンポーネント テンプレートは、設計上、静的です (これは、Tapestry のスケーラビリティとクラスタビリティのストーリーにとって非常に重要です)。しかし、私の TapX ライブラリの一部であるアドオンは、ギャップを埋める動的な外部テンプレートをサポートしています。
また、テンプレートを最大限に節約したい場合は、次のようにすることもできます。
<form t:id="myForm">
... テンプレートで、残りは Java クラスで:
@Component(parameters={"zone=target", "clientValidation=blur", "context=client", "secure=true") プライベート フォーム myForm;
.... つまり、すべてのタペストリー固有のコンテンツがテンプレートからコードに取り込まれます。些細なコンポーネントには理想的ではありませんが (テンプレートと Java ソースの間を行き来することが多い)、世界をうまく分離した状態に保つには最適です。
タペストリーにはかなり満足しています。これは、ほとんどの人が慣れ親しんでいるものとは異なるアプローチです。WebObjects (iTunes ストアが構築されているもの) と同じパラダイムを多く使用しています。
Tapestry は、タスクを達成するために書かなければならないコードの量を最小限に抑えるという非常に優れた仕事をします。これは、自分が何をしているのかがわかれば素晴らしいことですが、命名規則を学んでいる間は、最初はイライラするかもしれません.
Tapestry で気に入っている点の 1 つは、XML がほとんど必要ないことです。たとえば、Hibernate エンティティを作成する場合は、それを com.example.entities パッケージに配置し、@Entity アノテーションを付けます。他の構成は必要ありません。XML や、クラス名をどこかのファイルに追加する必要はありません。
実際のコードを見て、あなたの考えを確認することを強くお勧めします。以下にいくつかの提案を示します。
wokicentral.com/github.com/spreadthesource/wooki
tapestry.zones.apache.org:8180/tapestry5-hotel-booking/ github.com/ccordenier/tapestry5-hotel-booking
また、ジャンプスタート サイトもご覧ください。さまざまなコンポーネントのほとんどを正確に使用する方法を示すコードとともに、多数の例が含まれています。また、アプリケーションをベースにしたい場合に、いくつかのユーザー管理機能を提供する開始点アプリも含まれています。
jumpstart.doublenegative.com.au/jumpstart/
また、改良されたタペストリーのドキュメントもご覧ください。メインサイトにはまだ掲載されていませんが、すでに非常に大きな前進です。
people.apache.org/~uli/tapestry-site/
特にJavaEE6の機能を使用する場合は、JSF2を使用してください。派手なUIが必要な場合は、Primefacesを試してください。
要件に応じて、考慮すべき重要な部分は、MySQLを使用していることです。それだけです。したがって、別の角度からの場合を取ります。JPA2を使用しています(この場合、永続プロバイダーはHibernateです)。このアプローチを使用すると、使用している永続性プロバイダーまたはデータベースを非常に簡単に「交換」できます。
JavaEE6がそれを解決するように見えます。
Tapestry 5 と JSF 2 のかなり良い比較を次に示します。
http://blog.tapestry5.de/wp-content/uploads/2010/06/JSF-2.0-vs-Tapestry-5.pdf
これは、Tapestry 5 のコミッターである Igor Drobiazko によってまとめられたことに注意してください。
タペストリーに関するこの質問が大好きです。多分それはあなたの決定に影響を与えるでしょう。