-1

適切な 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) 用です。しかし、それは夢の端ではありません。

4

1 に答える 1

1

再利用可能な足場が主要な懸念事項である場合、これは SmartGWT/SmartClient の強みの 1 つです。ここで、完全に機能する CRUD 画面に必要なコードがどれだけ少ないかを確認してください。

http://www.smartclient.com/smartgwt/showcase/#featured_pa​​ttern_reuse

また、重複を避けながら、モデルによって生成された UI を非常にきめ細かくオーバーライドできることに注意してください。

http://www.smartclient.com/smartgwt/showcase/#layout_form_databinding

確かに、.NET 用の SmartGWT EE はありませんが、RESTDataSource を使用すると、.NET との統合は非常に簡単です。

http://www.smartclient.com/smartgwt/showcase/#restfulds_xml_integration_category

また、既存のオブジェクト/テーブルから DataSources を派生させるための 1 つのオプションは、XML スキーマを読み取る SmartGWT の機能を使用することです。

http://www.smartclient.com/smartgwt/showcase/#featured_xsd_ds

これを DataSource 継承と組み合わせて使用​​できます。たとえば、REST をサーバーに送信するように構成された DataSource が、XML スキーマから自動的に派生した DataSource からフィールド定義を継承することを宣言できます。

http://www.smartclient.com/smartgwtee/javadoc/com/smartgwt/client/data/DataSource.html#setInheritsFrom%28com.smartgwt.client.data.DataSource%29

于 2010-07-12T21:43:32.203 に答える