Tapestry 5 の学習後に改訂。
Wicket の目標は、 Web 開発をデスクトップ GUI に似たものにする試みです。彼らは、メモリ使用量 ( HTTPSession ) を犠牲にして、それを非常にうまく行うことができました。
Tapestry 5 の目標は、(CPU とメモリに対して) 非常に最適化されたコンポーネント指向の Web フレームワークを作成することです。
私にとって本当に大きな落とし穴は、「Wicket はステートレス コンポーネントをサポートしています!」という回答でした。「Wicketはメモリを大量に消費しています」という引数に。Wicket は実際にステートレス コンポーネントをサポートしていますが、それらは「Wicket 開発の焦点」ではありません。たとえば、StatelessForm のバグは非常に長い間修正されていませんでした - StatelessForm を参照してください - 検証が失敗した後のパラメーターに関する問題。
- Wicket を使用する IMHO は、Web アプリケーションのパラメーターを最適化/微調整するまでは少し簡単です。
- Webアプリケーションをプログラミングしていて、リクエスト処理の観点から考えたい場合、IMHO Wicketを研究するのは難しいです
- Tapestry 5は、コンポーネント クラスを変更するとすぐに、コンポーネント クラスを自動的に再読み込みします。どちらのフレームワークも、コンポーネント マークアップを再読み込みします。
- Wicket はマークアップとコードの分離を強制します。Tapestry 5 はこの機能を提供します。Tapestry 5 では、より冗長な構文を使用することもできます。いつものように、この自由にはより注意が必要です。
- Wicket のコアはデバッグが容易です。ユーザー コンポーネントは継承に基づいていますが、Tapestry 5 ユーザー コンポーネントは注釈に基づいています。反対側からは、Wicket よりもタペストリーの方が将来のバージョンへの移行が容易になる可能性があります。
残念ながら、Tapestry 5 のチュートリアルでは、't:loop source="1..10"...' のような Tapestry コード例が悪い習慣になる可能性があることを強調していません。そのため、チームの人数がそれほど多くない場合は、Tapestry の使用規則や優れたプラクティスを作成するために、ある程度の努力を払う必要があります。
私の推奨事項:
- ページ構造が非常に動的で、ユーザーごとに 10 ~ 200 Kb の HttpSession メモリを使用できる場合 (これらは概数です)、Wicket を使用します。
- リソースをより効率的に使用する必要がある場合は、Tapestry 5 を使用してください