Lift で 1、2 週間過ごした後にこれを投稿しても、誰の利益にもなりません。しかし、間違いや誤解を正すために時間を費やしたいと思います。
- セキュリティについては、それがフレームワークの仕事だとは思いません。
あなたは完全に間違っています。セキュリティはフレームワークの仕事です。各開発者がすべてのセキュリティの脆弱性を理解し、コードのすべての行がそれを考慮に入れていることを確認することに頼るのではなく、セキュリティがデフォルトで行われることが重要です。
私たちがしなければならないことは
、よく知られているテクノロジを使用する最高のコーダーでさえ重大な間違いを犯す可能性があることを理解するために、 GitHubに何が起こったのかを確認することだけです。
Lift はその上に堅固なセキュリティ層を提供するため、デフォルトでは XSS や CSRF などはありませんが、開発者は HTTP リクエストを好きなだけ掘り下げて、ネットワーク上のバイトを処理できます。
- ステートレス/ステートフル : 主な違いがどこにあるかを判断するのは困難です。Web ソケットを使用する場合、play にも状態があることだけは知っています。
Lift は、状態が必要な場所と必要でない場所を明確に示します。Lift は、ステートレス、部分的にステートフル、および完全にステートフルなアプリをサポートできます。ページごとおよびリクエストごとに、Lift アプリはステートフルまたはステートレスにすることができます (たとえば、Foursquareでは、ベニュー ページは検索エンジンのクロールではステートレスですが、ログインしているブラウザーではステートフルです)。状態に関する設計上の決定の詳細については、リフト、状態、およびスケーリングを参照してください。
- どちらのフレームワークも sbt を使用しています
Lift は Maven、sbt、Buildr、さらには Ant を使用します。Lift は、ビルド環境やデプロイ環境 (Java EE コンテナー、Netty など) にとらわれません。Lift を他の環境と統合しやすくするため、これは重要です。
- Lift には承認が付属していますが、同じことを行う play2 scala プラグインがあると思います
Lift は 5 年以上前から存在しており、多くのモジュールや機能があります。Lift Web フレームワーク (モジュールとは区別される) は、永続性、認証などにとらわれないため、Lift では何でも使用できます。
- Async - Play 2 は Akka を使用します。リフトの用途はわかりませんが、似たようなものがあります。
Lift は 5 年以上にわたって Async をサポートしてきました。フレームワークに焼き付けられています。Lift の Comet サポートは、どの Web フレームワークよりも優れています。とりわけ、サーバーへの単一の要求を通じてページ上のすべての「プッシュ」要求を多重化し、接続不足を回避するためです。Lift がどのように非同期処理を行うかはそれほど重要ではありません。Lift の中心的な哲学の 1 つは、開発者から配管を取り除き、開発者がビジネス ロジックに集中できるようにすることだからです。
しかし、気になる方のために説明すると、Lift には、Scala ランドのどのフレームワークよりも軽量かつ最高のアクターがあります。私たちは最初に Scala Actor のライブラリから脱却し、Akka および ScalaZ Actor の繁栄を可能にするさまざまな Actor ライブラリへの道を切り開くために取り組みました。
- CSRF をサポートするリフト船。Play2 には CSRF 用のモジュールがありますが、これによりコードにボイラープレートが追加されます。
これは、Lift のセキュリティへの取り組みの一環です。重要です。
- ステートレス認証にはセキュリティ上の脆弱性があるようです。どちらのフレームワークにもステートフル認証があります。(play2 ステートフル/ステートレス、リフト ステートフル)
Lift アプリは、必要に応じてステートフルまたはステートレスにすることができます。それはあなたの選択であり、Lift は決定を下す方法を非常に明確に示します。
また、Lift、State、および Scaling の投稿で指摘したように、安全でスケーラブルでパフォーマンスの高い方法で状態をシリアル化する方法を開発者に理解させる必要があります (特定のユーザーを認識する Web アプリ上のほぼすべての要求がステートフルであるため)。開発者にとって合理的なオーバーライドを使用して、フレームワークによって予測可能で安全な方法で実行されます。
別れのメモ
Play は Rails によく似ています。サイトをすぐに完成させることができ、MVC に基づいているため、多くの開発者が理解しています。しかし、Play には Rails の深さと幅 (コミュニティ、プラグイン、専門知識、才能など) が欠けています。迅速で簡単な MVC が必要な場合は、Rails と JRuby を使用して、バックエンドを Scala で記述します (これらは非常にうまく連携します)。
リフトは別の獣です。かなりの未学習曲線があります (MVC を考えるのをやめて、ビジネス ロジックにつながるユーザー エクスペリエンスについて最初に考え始めます)。時間をかけて維持します。