私は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. シンプルなPHPフレームワークに最適なクラス構造は何ですか?
- 4. クラス拡張とフレームワーク
- 5. C#のPingクラスとWebClientクラスの違いは何ですか?
- 6. C++クラス・ポインタとクラス・オブジェクトの間の違いは何ですか?
- 7. Apache TikaのMediaTypeクラスとMimeTypeクラスの違いは何ですか?
- 8. netty4のProtobufEncoderクラスとProtobufEncoderNanoクラスの違いは何ですか?
- 9. AndroidクラスのAudioManagerとは何ですか?
- 10. JavaのObjectクラスとは何ですか?
- 11. LLDB:オブジェクトのクラスとは何ですか?
- 12. Control.ControlCollectionクラスの「コントロール」とは何ですか?
- 13. 更新クラスと更新クラスの違いは何ですか
- 14. HttpApplicationクラスとHttpContextクラスの関係は何ですか?
- 15. ConfigurationManagerクラスとSettingsクラスの違いは何ですか?
- 16. NetworkStreamクラスとSocketクラスの違いは何ですか?
- 17. 最終クラスとクラスの違いは何ですか?
- 18. React.AsyncComponentクラスとは何ですか?
- 19. Handlerクラスとは何ですか?
- 20. org.hibernate.criterion.Exampleクラスとは何ですか?
- 21. HibernateTemplateクラスとは何ですか?
- 22. Userクラスとは何ですか?
- 23. 等価クラスとは何ですか?
- 24. クラスtf.train.Coordinatorとクラスtf.train.QueueRunnerはテンソルフローで何をしますか?
- 25. jobConfクラスとは何ですか?それは何ですか?
- 26. データベースVectorクラスとフレームワークVectorクラスを区別する方法は?
- 27. フレームワーク - PHPフレームワークとは何ですか?
- 28. 「メイン」クラスではないクラスの総称名は何ですか?
- 29. クラス名がフレームワークのクラスと矛盾します
- 30. ルビのクラス名のデータ型(クラス)は何ですか?