私はCSLAフレームワークでVB.netで書かれた大きなレガシーアプリケーションを学んでいます。多くのオブジェクトは、BusinessBaseおよびBusinessListBaseから継承しているようです。私がVisual Studioで "定義に行く"とき、私はこれらのクラスがCSLA名前空間の一部であることを知っています。これらのクラスは何ですか?彼らはCSLAフレームワークでどのような役割を果たしていますか?ルートオブジェクトや子オブジェクトのような他のCSLAの概念とはどのように関連していますか?CSLAフレームワークのBusinessBaseクラスとBusinessListBaseクラスは何ですか?
答えて
BusinessBaseおよびBusinessListBaseは、すべての編集可能な(つまり読み取り専用ではない)ビジネスオブジェクトが継承する抽象基本クラスです。いずれかは、ビジネスオブジェクトグラフに応じてルートオブジェクトまたは子オブジェクトになります。これらのクラスは、アプリケーションのインスタンスクラス(IsNew、IsDirty、Save()など)でCSLAフレームワークのプロパティとメソッドを提供するクラスです。基本クラスは、DataPortalとの通信、子クラスが定義するビジネスルールのチェック、オブジェクトの編集/元に戻すレベルの管理などの面倒な作業も行います。要するに、ビジネスオブジェクトは、CSLAフレームワークの残りの部分と統合するために、これらのクラスの1つを継承します。 CSLAフレームワークの枠内で、ビジネスオブジェクトがタスクを実行したりプロパティを公開したりする必要がある場合、これらのクラスがその場所にあります。
事のいくつかを、これらのクラスが行うない行います
- (彼らは、そのようななどIsNew、IsSavable、などのオブジェクト/ライフサイクル管理プロパティを定義しませんが、ない性質が関連保持するために、ビジネスのプロパティを定義しますビジネスデータ)
- は、ビジネスの性質(再び、CSLAの管理プロパティは、基底クラスによって処理されている)、このような「顧客名が値を持たなければならない」として
- 割り当てビジネスルール()
- Tを初期化しますアルク
- 、シリアライズなどのデータベース
- マークオブジェクトへ
BusinessListBaseは、リストクラスのためのものであり、.NETを継承する(それがDataPortalによって行われます)foo.DataPortal_X方法がDataPortal.Fetch<foo>(args);
を呼び出すことによって実行されますを決定しそのため、リストであるCSLAビジネスオブジェクトはBusinessListBaseを継承する必要があります。オブジェクトはリストなので、期待どおりにBusinessListBaseからオブジェクトを追加、削除などできます。
ReadOnlyBaseおよびReadOnlyListBaseは、ビジネスカウンターパートと同じ目的を果たす抽象基本クラスですが、オブジェクトが読み取り専用であることも保証します。彼らが提供するものは、ほとんどがビジネス基盤のサブセットであり、プロパティがセッターを実装するのを妨げるようないくつかの追加の制約があります。
私は、CSLAに関するいくつかの便利なランプアップ情報について、this questionを見てみることをお勧めします。
- 1. Dynamic LINQ&CSLA BusinessListBase
- 2. S1クラスとS2クラスは何ですか?
- 3. クラス拡張とフレームワーク
- 4. シンプルなPHPフレームワークに最適なクラス構造は何ですか?
- 5. JavaのObjectクラスとは何ですか?
- 6. AndroidクラスのAudioManagerとは何ですか?
- 7. LLDB:オブジェクトのクラスとは何ですか?
- 8. NetworkStreamクラスとSocketクラスの違いは何ですか?
- 9. ConfigurationManagerクラスとSettingsクラスの違いは何ですか?
- 10. Handlerクラスとは何ですか?
- 11. データベースVectorクラスとフレームワークVectorクラスを区別する方法は?
- 12. フレームワーク - PHPフレームワークとは何ですか?
- 13. Google App EngineのQueryクラスとGqlqueryクラスの違いは何ですか?
- 14. Javaの内部クラスとローカル内部クラスの違いは何ですか?
- 15. クラスの設計とは何か
- 16. Expressionクラスの目的は何ですか?
- 17. Numberクラスの目的は何ですか?
- 18. IGroupingの実装クラスは何ですか?
- 19. jspページのクラスは何ですか?
- 20. なぜ私のクラスは何ですか?
- 21. "self.title"のクラス名は何ですか?
- 22. ConcurrentHashMap.SegmentクラスとConcurrentHashMap.HashEntryクラスが静的である理由は何ですか?
- 23. クラスのクラスですか?何か他のもの
- 24. 「メソッドのオブジェクト」と「クラスのオブジェクト」とは何ですか?
- 25. クラス<<内部でクラス定義は何をしますか?
- 26. Kohanaフレームワーク。 Kohanaクラスの質問
- 27. constとreadonlyとstaticクラスの違いは何ですか
- 28. クラスDerived1とは何か:Base {};平均?
- 29. Pythonでは、クラスのインポートと、そのクラスのモジュールのインポートの長所と短所は何ですか?
- 30. クラス、オブジェクト、エンティティ:違いは何ですか?