適切な RIA データ集約型の crud のようなアプリケーションを構築することは、依然として困難です。たくさんのフレームワークが存在するにもかかわらず。
そのような種類のアプリケーション用に独自のフレームワークを構築するつもりです。重要な要件の 1 つは、足場 (モデルから UI を生成する) です。もう 1 つは .NET サーバー側です。asp.net 動的データ、Oracle ADF、fornax/sculptor などについて知っています (後者の 2 つは Java 用です)。Django (python ベース)、Grails (Groovy ベース)、ruby on rails など、サーバー側のフレームワークは多数あります。通常、いくつかの ORM と一種の足場が含まれています。しかし、私にとっての大きな問題は、クライアント側のフレームワークが含まれていないことです。これらはスキャフォールディング UI コードを生成しますが、手動で記述されたコードで再利用することはできません。また、「サーバー コントロール」を使用した asp.net WebForms のアプローチも好きではありません。すべてのサーバー マークアップ (JSF/JSP など) が生成される場合でも。
一方、(さらに多くの) クライアント側フレームワークがあります。彼らは通常、サーバー技術にとらわれません。ここには、Dojo、ExtJS、SmartClient、QooxDoo などがあります。それらはすべて、JS コードを記述し、いくつかの css/html 設計を行うことを提供してくれます。悪くはありませんが、JS コード (スクリプト コードであるため) は非常にエラーが発生しやすいものです。
したがって、私の最初のビジョンは、サーバー側に asp.net mvc を使用し、クライアント側の優れたフレームワークを使用することでした。問題はどちらを選ぶかです。
私が最初に決めたのは、Dojo ツールキットを使用することでした。これは、JS の多くの利点 (ミックスイン、パブ/サブ、接続、Defered、モジュール、Json パーサー、Dijit のテンプレート、データ抽象化) を備えたフレームワークであり、多くのウィジェットがあります。そしてそれは無料です。
しかし、ExtJS を見たよりも。私はまだそれを学ぶことに飛び込んでいません。しかし、彼らのデモはとてもいいです。GUI の品質は、Dojo のウィジェットよりもはるかに優れているように思えました。しかし、ExtJS を商用利用するにはお金がかかります。しかし、優れたフレームワークにお金を払うことは大きな問題ではありません。
次に、SmartClient を見ました。特にSmartGWTのショーケースで. Ajax フレームワーク/ライブラリを選択するすべての人は、それを確認する必要があると言わざるを得ません。それは絶対に素晴らしいです。GWT に組み込まれたクライアント ライブラリ (SmartClient) です。これで、驚くべき Ajax アプリを Java で作成できます。スクリプト言語なしで、コンパイル済み言語で!すごい!しかし、SmartGWT EE にはさらに多くの機能があります。クライアント コード (Java から生成) をサーバー Java オブジェクトとシームレスに統合し、データ モデル (サーバーに接続) と GUI コントロール間の双方向のデータ バインディングを提供します。
それは私が必要としているもののようなものですが、.NET にはそのようなものが必要です。はい、Script# については知っています。しかし、それは非常に限られています (c# 1.0)。jscもあります。デバッグでも機能します。しかし、GWT+SmartGWT の施設からは程遠いです。
そのような美しさを見た後、asp.net mvc+dojo でフレームワークを構築することは、もはや良い考えではないようです。
皆さんの多くが似たような問題に直面していると思います: Ajax RIA クライアント・サイドとサーバー・サイドを、データ集約型のクラッドのような (多くの場合エンタープライズ/イントラネット) アプリケーション (Web サイトではない) で効果的に接続するにはどうすればよいでしょうか。では、他にどのようなアプローチ/テクノロジーを検討するのが理にかなっているでしょうか?
ps GWTの使用も検討しています。ただし、2 つの IDE を使用する必要があります。1 つはクライアント コード (Java) 用で、もう 1 つはサーバー コード (asp.net mvc) 用です。しかし、それは夢の端ではありません。