2012-02-23 8 views
1

私の開発チームは、プログラミングの簡素化のために.NETで利用できるさまざまなフレームワークを評価しています。その1つはCSLAです。私は、CSLAがSpring.netやWindsorのような依存性注入フレームワークと一緒に使用されることから利益を得るかどうかについてちょっと混乱していることを認めなければなりません。 ORMの任務を扱うために、Entity Frameworkなどの2つのDIフレームワークのうちの1つを組み合わせると、CSLAの使用の必要性や利点が失われますか?CSLAを依存性注入フレームワークで使用する必要がありますか?

これらのすべてのフレームワークについて、私はさまざまなレベルの理解を持っています。私は、エンタープライズアーキテクチャとオブジェクト設計にどのようなメリットがあるのか​​を大きく把握しようとしています。

ありがとうございました!

答えて

3

CSLAはビジネスエンティティを作成するためのフレームワークなので、IoCコンテナやORMとは別の懸念があります。エンタープライズアプリケーションでは、3つすべての利点を考慮する必要があります。

特に、モデルにデータバインディング、ダーティーチェック、Nレベルの取り消し、検証、ビジネスルール、およびn-tierの設定が容易なデータポータルの実装が必要な場合は、CSLAを考慮する必要があります展開。

+0

オブジェクトモデルでデータバインディングがどのように役立つかについて詳しく説明できますか?モデル化されている実際のオブジェクトからバインディングを分離するのが最善ではないでしょうか?私のチームの特定の状況については、SOAのアーキテクチャとCSLAの使用を目指しています。CSLAは、データバインディングが存在するクライアント側ではなく、サービス側にあると想定しています。もちろん、データバインディングの使い方を誤解するだけでなく、CSLAの大きな側面と利点を見落とす可能性があります。ご協力いただきありがとうございます! – Derek

+0

データバインディングは、MVVMデザインパターンが普及しているビューWPF/Silverlight/Windows Phone 7アプリケーションをビルドする場合に特に便利です。ビューの変更はビューの変更がモデルに影響し、モデルの変更がビュー。 RockyのCSLAプロパティはデータバインディングをサポートしているため、モデルにINotifyPropertyChangedを実装する必要はありません。これはCSLAの最大の利点ではありませんが、有用です。 – devdigital

+0

偉大で有益な答えをありがとう! – Derek

0

短い回答:はい。

長い回答:セットアップにはちょっとした作業と実験が必要ですが、基本的にCSLAを破ることなく行うことができます。私はStructureMapとリポジトリパターンを使って動作するプロトタイプをまとめ、the BuildUp method of Setter Injectionを使用してCSLA内に注入しました。私はhereと同様のメソッドを使用して、オブジェクトのシリアル化時にビジネスオブジェクトが再注入されるようにしました。

StructureMapのレジストリベースクラスを使用して、構成をプレゼンテーション、CSLAクライアント、CSLAサーバー、およびCSLAグローバル設定に分離することもできます。このようにして、Visual Studioのリンクファイル機能を使用して、CSLAサーバーとCSLAグローバル構成ファイルをサーバー側のデータポータルに含めることができ、構成は常に両方の場所で同じになります。これは、CSLAのデータポータルの設定を2階から3階に変更せずに、何も壊すことなく行うことができるようにするためです。

とにかく、私はまだDIを使うという欠点を潜在的に抱えていますが、これまでのところ、私はそれを使う方向に傾いています。なぜなら、私は高度な傍受などのDIの特徴。私は、インターネット上で多くの誤情報があるため、DIを使用する正しい方法と間違った方法を理解するために、Mark Seemannの本Dependency Injection in .NETを読むことをお勧めします。

関連する問題