3 つの Smalltalk Web アプリケーション フレームワークの違いは何ですか?
いくつかの出発点:
- 各フレームワークのスイートスポットは? どちらの場合にどちらを使用しますか?
- 彼らの弱点は何ですか?
- 最もクリーンな URL を持つのはどれですか?
- 彼らはどのように Ajax を処理しますか?
- 持続性の使用に何らかの好みがありますか?
それぞれの種類のアプリケーションに適したフレームワークを決定しようとしています。
私はシーサイドにしか答えることができません:
ターゲット: Seasideは、再利用性と開発の生産性に重点を置いた複雑なWebアプリケーションをターゲットにしています。自動セッション状態管理と戻るボタンのサポートがあります。Seasideを使用した動的Web開発とSeasideチュートリアルの2冊の無料オンラインブックにドキュメントがあります。
弱点: RESTful URLの場合、追加の作業を行う必要があります。
クリーンURL: RESTful URLの場合、追加の作業を行う必要がありますが、それだけの価値がある場合があります(Pierなど)。
AJAX: SeasideにはたくさんのAJAXライブラリが統合されています(jQuery、jQueryUI、Prototype、script.aculo.us、...)。統合により、Smalltalk内からこれらのライブラリへのフルアクセスが可能になります。JQueryWidgetBoxなどの新しいライブラリは簡単に統合できます。
永続性: SeasideはWebアプリケーションフレームワークであり、永続性フレームワークではありません。GemStone、GOODS、GLORPなど、自分に最適な永続性ソリューションを使用できます。
StackOverflowに関する他の質問/ディスカッションも参照してください。
Iliad 側で言えることは次のとおりです。
スイート スポット: AJAX を問題なく処理します。私にとっては、それがイリアッドに転向したターニングポイントでした。また、非常に小さくて肥大化していないため、コード全体を 1 日で読んで、どのように機能するかを把握できます。
弱点:コミュニティも非常に小さいです。これにより、ドキュメント、追加のモジュール、または事前に作成されたウィジェットが不足します。OTOH のように、小規模なコミュニティはお互いに熱心に助け合う傾向があるため、ほとんどすべての疑問はメーリング リストで質問することで解決できます。
URL: Iliad のすべての呼び出しはデフォルトで AJAX であるため、URL は常にクリーンなままです。
アヤックス:うん。無料でデフォルトで。ウィジェットを #markDirty するだけで、自動的に更新されます。依存関係は、 #addDependantWidget: をウィジェットに送信するのと同じくらい簡単に定義できるため、最初のものがダーティとマークされたときに両方が更新されます。また、クライアントが JavaScript 対応のブラウザーを持っていない場合、すべての呼び出しは通常の HTTP 要求に自動的にフォールバックします。
永続性:好みはありません。モデルはフレームワークから分離されているため (これは 3 つのフレームワークに当てはまると思います)、Aida または Seaside の場合と同じガイドラインに従うことができます。
そしてAida/Webの場合:
スイートスポット:リアルタイムのWebサポート、コンテンツWebサイトと複雑なWebアプリの両方、HTML5とモバイルサポート、Webサーバーが含まれているため、インストール後すぐに機能し、同じイメージから多くの仮想Webサイトを提供できます。
弱点:ドキュメントの欠如、小さなコミュニティ
URL: Aidaは最初からモトに従うため、常にクリーンなRESTのようなURLです。すべてのドメインオブジェクトはそのURLを持つことができ(これもAlan Kayによる)、ドメインオブジェクトはそれ自体でURLを選択することもできます。
Ajax:シームレスに統合されています。もう表示されません。すべてがそこにあります。Webページの一部の要素を更新するには、単にを呼び出しますe update
。jQueryやその他のJavaScriptを知る必要はありません。リアルタイムのWebアプリについても同じことが言えます。WebSocketプロトコルは、ブラウザーとAidaベースのサーバー間でJSONメッセージを交換するための、サポートされているブラウザーのデフォルトの通信チャネルです。
永続性: 1時間ごとに自動スナップショットを使用するイメージベースの永続性は、デフォルトでオンになっています。次のステップのために提供されるGemstone/GLASSサポート。リレーショナル/その他のDBは、必要に応じてドメインレベルの義務です。
多くのための:
Seaside の持続性ソリューションについては、ページがあります。そこにあるソリューションのほとんどは、Seaside とは独立しています。