信息系统开发平台OpenExpressApp - CSLA类库编写
2009-12-13 09:53
711 查看
下图为OpenExpressApp的系统架构图,其中在CSLA类库是作为一种模型对象贯穿于整个架构,CSLA对象是分布式对象,运行在框架各层上。面向对象是OEA的基本,学会写CSLA类库也就成了OEA的必备知识。由于本篇不是专门介绍CSLA的,所以不会对CSLA进行全面的介绍,而只介绍在OEA下我们应该如何编写CSLA类。
熟悉DDD的应该知道聚合,我这里说的根对象指的就是聚合中的根对象,也就是唯一允许被外部对象引用的元素。子对象是聚合内部与根对象或者根对象的子对象的子对象。
添加类库属性。属性编写代码同下:
private static PropertyInfo NameProperty = RegisterProperty(new PropertyInfo("Name"));
[Column]
[Required, IsTitle, ShowInList, ShowInDetail, Label("名称")]
public string Name
{
get { return GetProperty(NameProperty); }
set { SetProperty(NameProperty, value); }
}
添加属性后需要【DataPortal_Fetch】需要增加相应属性的Load方法,如果是根对象,还需要在【MergeOldObject】中添加。不修改此方法,会导致界面看不到字段值
添加子对象后,需要在根对象中添加相应的子对象属性,并且修改【DataPortal_Fetch】、【MergeOldObject】
根据性能要求,判定属性是否使用懒加载,数据懒加载参考《信息系统开发平台OpenExpressApp - 数据懒加载》
添加类库业务逻辑代码
如果需要CSLA Command支持的需要添加Command内部类执行客户端和服务器端业务逻辑交互
编写过程中的一些约定请参考《信息系统开发平台OpenExpressApp - CSLA约定及框架约定》
更多内容:
[b] 开源信息系统开发平台之OpenExpressApp框架.pdf[/b][/i]
分布式类库贯穿于整个架构层
对象分类
熟悉DDD的应该知道聚合,我这里说的根对象指的就是聚合中的根对象,也就是唯一允许被外部对象引用的元素。子对象是聚合内部与根对象或者根对象的子对象的子对象。
类库主要编写步骤
根据对象类型,选择代码生成模板生成初始框架代码:添加根对象(主表)使用模板【Lib\CodeGen\EditableRoot.cst】,添加子对象(细表)使用模板【Lib\CodeGen\EditableChild.cst】添加类库属性。属性编写代码同下:
private static PropertyInfo NameProperty = RegisterProperty(new PropertyInfo("Name"));
[Column]
[Required, IsTitle, ShowInList, ShowInDetail, Label("名称")]
public string Name
{
get { return GetProperty(NameProperty); }
set { SetProperty(NameProperty, value); }
}
添加属性后需要【DataPortal_Fetch】需要增加相应属性的Load方法,如果是根对象,还需要在【MergeOldObject】中添加。不修改此方法,会导致界面看不到字段值
添加子对象后,需要在根对象中添加相应的子对象属性,并且修改【DataPortal_Fetch】、【MergeOldObject】
根据性能要求,判定属性是否使用懒加载,数据懒加载参考《信息系统开发平台OpenExpressApp - 数据懒加载》
添加类库业务逻辑代码
如果需要CSLA Command支持的需要添加Command内部类执行客户端和服务器端业务逻辑交互
编写过程中的一些约定请参考《信息系统开发平台OpenExpressApp - CSLA约定及框架约定》
更多内容:
[b] 开源信息系统开发平台之OpenExpressApp框架.pdf[/b][/i]
相关文章推荐
- 信息系统开发平台OpenExpressApp - CSLA类库编写
- 信息系统开发平台OpenExpressApp - 使用CSLA类库实现用户管理
- 信息系统开发平台OpenExpressApp - 使用CSLA类库实现用户管理
- 信息系统开发平台OpenExpressApp - CSLA约定及框架约定
- 信息系统开发平台OpenExpressApp - 配置CSLA的WCF数据门户代理
- 信息系统开发平台OpenExpressApp - 内置支持的列表编辑方式
- (参考)OpenExpressApp架构-信息系统开发平台
- 信息系统开发平台OpenExpressApp - 如何解决ComboBox.TextProperty绑定带来问题的来龙去脉
- 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布
- 信息系统开发平台OpenExpressApp - 功能权限
- 信息系统开发平台OpenExpressApp - 支持差异保存
- 信息系统开发平台OpenExpressApp-内置支持的属性编辑方式
- 信息系统开发平台OpenExpressApp - 支持日志功能
- 信息系统开发平台OpenExpressApp - 如何解决ComboBox.TextProperty绑定带来问题的来龙去脉
- 信息系统开发平台OpenExpressApp - 用户权限模块设计
- 信息系统开发平台OpenExpressApp - 报表模块支持ReportObjectView
- 信息系统开发平台openexpressapp 1.0发布
- 信息系统开发平台OpenExpressApp - 支持日志功能
- 信息系统开发平台OpenExpressApp - 学习必备知识
- 信息系统开发平台OpenExpressApp - 支持差异保存