私は CSLA をフレームワークというよりもパターンのコレクションであった vb5 から使用しています。.NET の導入により、CSLA は本格的なフレームワークになりましたが、これには多大な学習曲線が伴いました。ただし、CSLA は、検証ロジック、認証ロジック、元に戻す機能、ダーティ ロジックなど、すべてのビジネス開発者がある時点で (プロジェクトのスコープに応じて) 自分で作成する傾向がある多くの事柄に対応しています。 1 つの素敵なフレームワークのボックス。
他の人が述べているように、フレームワークであるため、開発者は同様の方法でビジネス ロジックを作成する必要があります。また、MVC、MVP、MVVM などの UI フレームワークを使用しないことがそれほど重要でなくなるように、ビジネス ロジックに一定レベルの抽象化を提供する必要があります。
実際、今日 (Microsoft の世界で) これらの UI パターンの多くが非常に盛り上がっている理由は、人々が非常に長い間信じられないほど間違ったことを行ってきたためです (つまり、UI で DataGrid を使用したり、あなたのビジネスロジックをどこにでも.tisk tisk). 最初から中間層 (ビジネス ロジック) を正しく設計すると、任意の UI で中間層を再利用できます。Win フォーム、ASP.NET/MVC、WCF サービス、WPF、Silverlight**、Windows サービス、....
しかし、これらとは別に、私にとって大きな見返りは、組み込みの拡張機能です。CSLA は、構成ファイルを介して構成可能なプロキシ パターンを使用します。これにより、ビジネス オブジェクトはサーバーからサーバーへのリモート呼び出しを行うことができます。コードを 1 リックも書く必要はありません。システムにユーザーを追加しますか? 問題ありません。CSLA ビジネス オブジェクトを新しいアプリケーション サーバーにデプロイし、構成ファイルのエントリを変更して、BAM を実行してください。インスタント スケーラビリティのニーズが満たされます。
これを、DTO を使用し、ビジネス ロジックをクライアント (クライアントが何であれ) に格納し、独自の CRUD メソッドをそれぞれサービス メソッドとして記述する必要がある場合と比較してください。うわぁ!!!これが悪いアプローチだと言っているわけではありませんが、私はそうしたくありません。本質的に私のためにそれを行うためのフレームワークがそこにあるときではありません。
CSLAはORMではないという他の人々の発言を繰り返します。CSLA では、ビジネス オブジェクトにデータを提供する必要があります。彼らはあなたがどこでデータを入手するかを気にしません。ORM を使用して、ビジネス オブジェクトにデータを提供できます。生の ADO.NET、その他のサービス (RESTFUl、SOAP)、Excel スプレッドシートも使用できます。
TDD のサポートについては、CSLA でもそのアプローチを試したことはありません。私は、クラス図とシーケンス図を使用して中間層 (ビジネス オブジェクト) をモデル化するアプローチを採用しており、ほとんどの場合、ユース ケース、画面、および/またはプロセスの設計を指示することができます。少し古めかしいかもしれませんが、UML は私の設計と開発の取り組みにおいて常に非常に役に立ちました。現在も使用されている非常に大規模でスケーラブルなアプリケーションの設計と開発に成功しました。WCF RIA が成熟するまでは、CSLA を使用し続けます。
**いくつかの回避策あり