Overview
一般に、これらのフレームワークは、次のいずれかまたは複数をカバーする機能を提供します。
-
Routing:HTTPリクエストを取り、それらを処理し、応答を返すコードにルーティングするメカニズム。
-
テンプレート:静的およびdynamiccontentを合理的に簡単な方法で記述し、空白を埋めるためにコードを埋め込むか、何らかの方法でテンプレートに関連付けることができるように、webページをテンプレート化するための一つ以上の構文。
-
Persistence:ストアから取得したオブジェクトを格納するためのメカニズム。
しかし、いくつかは、webコンポーネントを一緒に接着し、独自のHTML、JavaScriptなどを生成するフレームワークを提供することをはるかに超えています。 フロントエンドで、クライアント側のコードとサーバー側のコードの間の分離を非表示にしてみてください。 簡潔にするために、GWTとVaadinの両方が自分自身をそのように参照しており、このカテゴリに確実に適合しているため、これらをRichInternet Applications(RIA)と呼びます。
様々なwebアプリケーションフレームワークの主要な参照(Scalaへの参照はまったくありません! Web Application Frameworks
Play Framework
- Scala固有のサポートを備えたJavaで書かれています。
- シンプルさに重点を置いています。
- スターターテンプレートを自動生成するコマンドラインツール。
- 追加のビルドツールを必要とせずに、その場でコンテンツをコンパイルします。
- は、基礎となる永続性フレームワークとしてJPAとHibernateを使用します。
Pros
- 簡単に始めることができます。
Cons
- その場で自動コンパイルすると、独自の標準ビルドツールを使用する制御の一部が失われます。
- 不快に素敵なデモのために作る機能に焦点を当てて感じています!
- 組み込みのコンパイルでは、Java Beansを使用した自動コード生成も行われます。
GWT(Google Web Toolkit)
- Javaで書かれていて、特定のScalaをサポートしていません。
- についてのコメントのほとんどは、それが基づいているGWTにも同様に適用されます。
Vaadin
Vaadinコードは少しスイングコードのように見えます。 あなたは効果的に対話型のJavaapplicationを書いていて、それはWebクライアント内でJavaScriptアプリケーションとして実行されます。 Functionalperspectiveから、これは伝統的にHTMLとCSSの宣言的なスタイルの世界を取って、それを非常に命令的なスタイルに変えるように感じます。 要するに、それはフロントエンドとバックエンドプログラミングのインタフェースの問題を解決するための後方アプローチのように感じています。
- 特定のScalaサポートを持たないJavaで書かれています。
- リッチインターネットアプリケーション(RIA)。
- GWT(Google Web Toolkit)に基づいています。
- すべてのコーディングはサーバー側で行われ、VaadinはHTML、JavaScriptなどを生成するすべての作業を行います。
- Vaadinの他の”競合するRIAフレームワーク”との比較。Flex、GWT、ICE Faces、JQuery、Wicketなどが含まれます。
- TNT
- Devox
- Logica
Pros
- HTMLやJavaScriptを混乱させたくないJavaプログラマに適しています。
- は、webクライアント間の違いを渡す責任を取り除きます。
Cons
- は、フロントエンドのHTMLとCSSの微調整を制御します。
- は、Java GUIアプリケーションの開発に慣れていない人には非常に慣れていないように見えるかもしれません。
- 重いフロントエンドJavaScriptでwebアプリケーションを生成する責任があります。
Scalatra
Scalatraは基本的にリクエストルーティングエンジンフレームワークの一形態であるように見えます。 これは、着信要求を処理し、応答をレンダリングするコードにルーティングする単純な方法を提供します。 他の機能は、自分で書くか、オプションのプラグインとして追加することができます。
- Scalaで書かれています。
- シナトラに触発されました。
- sbtを使ってビルドします。
- jettyで実行されます。
- いくつかのテストサポートが組み込まれています。
- には、
- Scalateテンプレートエンジンがオプションでサポートされています。
- Commons FileUploadファイルアップロードのサポート。
- は現在、
- LinkedIn Signal backendによって使用されています。
Pros
- これが何をしているのか、どのようにして非常に明確になっているようです。
- Dslや含意を過剰に持たないScalaプロジェクトの組み合わせによく適合するように見えます。
Cons
- 包括的なツールが必要な場合、これは1つではありません。
Scalate
Scalaテンプレートエンジン。
- Scalaで書かれています。
- はMavenまたはsbtでビルドしているようです。
- Mustache、Scaml(Scala Markup Language)、ssp(Scala Server Pages)のテンプレートをサポートしています。
リフト
Webフレームワーク。
- Scalaで書かれています。
- sbt(以前はMaven)で構築されました。
- この自由は、それが何をしようとしているのか、どのようにそれをやろうとしているのかを理解する上で、一定の程度のぼやけと緊張を提供します。
- テンプレート、ルーティング、セキュリティ、永続性フレームワーク、確かにすべてを提供します!
Pros
- は、必要なものすべてを実質的に実行できます。
- には、デフォルトで多くの強力なセキュリティ機能が組み込まれています。
- は、AJAXとCometコードのコーディングを平滑化することに特に焦点を当てています。
Cons
- は常に新しい機能を追加しているようですが、古い機能をスローすることはほとんどありません。
- ドキュメントは断片化されており、更新と整合していません。同じことをする方法はたくさんあるので、あなたが正しいことをしていることを確認するために他の人のコードを参照全体として使用するのは困