CSLA框架中的BusinessBase和BusinessListBase类是什么?

ber*_*436 1 .net csla

我正在学习使用CSLA框架在VB.net中编写的大型遗留应用程序.许多对象似乎都继承自BusinessBase和BusinessListBase.当我在Visual Studio中"去定义"时,我看到这些类是CSLA命名空间的一部分.这些课程是什么?他们在CSLA框架中扮演什么角色?它们如何与其他CSLA概念(如Root Object和Child Object)相关?

Eso*_*ame 7

BusinessBase和BusinessListBase是所有可编辑(即非只读)业务对象继承的抽象基类.根据业务对象图,任一个都可以是根对象或子对象.这些类是在应用程序中的实例类上提供CSLA框架属性和方法的,例如IsNew,IsDirty和Save().基类还执行与DataPortal通信的粗略工作,检查子类定义的业务规则,管理对象的编辑/撤消级别等.简而言之,业务对象继承其中一个类,以便将自己与CSLA框架的其余部分集成.在CSLA框架的范围内,如果业务对象需要执行任务或公开属性,则这些类就是发生的地方.

有些事情这样的类也没有做:

  • 定义业务属性(它们确实定义了对象/生命周期管理属性,例如IsNew,IsSavable等,但不定义用于保存相关业务数据的属性)
  • 初始化业务属性(同样,CSLA的管理属性由基类处理)
  • 分配业务规则(例如"客户名称必须具有值")
  • 与数据库交谈
  • 将对象标记为可序列化
  • 通过调用确定执行哪个foo.DataPortal_X方法DataPortal.Fetch<foo>(args);(由DataPortal完成)

BusinessListBase用于列表类,并且继承了.NET基本列表功能,因此作为列表的CSLA业务对象只需要继承BusinessListBase.您可以按照预期添加,删除BusinessListBase中的对象,因为该对象是一个列表.

ReadOnlyBase和ReadOnlyListBase是抽象基类,它们与业务对应项具有相同的用途,但也确保对象是只读的.它们提供的内容主要是业务基础的一个子集,其中包含一些额外的约束,例如阻止属性实现setter.

我建议看看这个问题,以获得有关CSLA的一些权宜之计.