信息系统开发平台OpenExpressApp - CSLA约定及框架约定
2009-11-30 21:10
756 查看
[Serializable]
public class MyBusinessClass : Csla.baseclass<MyBusinessClass>
{
#region Business Methods
#endregion
#region Business and Validation Rules
#endregion
#region Authorization Rules
#endregion
#region Factory Methods
#endregion
非public默认构造函数:所有业务对象实现非public构造函数,防止用户new一个业务对象,强制UI开发人员使用工厂方法来使用业务对象
[title3]CSLA根对象方法调用约定[/title3]
DataPortal.Fetch<MyBUsinessClass>()调用到服务器端void DataPortal_Fetch()
DataPortal.Fetch<MyBUsinessClass>(MyCriteria)调用到服务器端void DataPortal_Fetch(MyCriteria)
DataPortal.Create<MyBUsinessClass>()调用到服务器端override void DataPortal_Create()
DataPortal.Delete(MyCriteria)调用到服务器端 void DataPortal_Delete(MyCriteria)
更新对象调用服务器端 [Transactional(TransactionalTypes.TransactionScope)] protected override void DataPortal_Update()
新增对象调用服务器端 [Transactional(TransactionalTypes.TransactionScope)] protected override void DataPortal_Insert()
删除对象调用服务器端 [Transactional(TransactionalTypes.TransactionScope)] protected override void DataPortal_DeleteSelf()
[RunLocal()]强制本地调用,如以下代码将在本地执行
[RunLocal()]
protected override void DataPortal_Create() {
}
父对象调用FieldManager.UpdateChildren(空/MyParam)来更新子对象
[title3]CSLA子对象方法调用约定[/title3]
DataPortal.FetchChild<MyBUsinessClass>()调用到本地void Child_Fetch()
DataPortal.FetchChild<MyBUsinessClass>(MyCriteria)调用到本地void Fetch(MyCriteria)
生成对象调用本地 protected override void Child_Create()
父对象调用FieldManager.UpdateChildren(空/MyParam)来更新子对象
子对象调用 void Child_Update(空/MyParam) 来更新对象
子对象调用 void Child_Insert(BusinessBase parent) 来插入对象
子对象调用 void Child_DeleteSelf(BusinessBase parent) 来删除对象
注意:本地指父对象代码执行所在的机器。
框架相关
代码生成模板
添加根对象(主表)使用模板【Lib\CodeGen\EditableRoot.cst】添加子对象(细表)使用模板【Lib\CodeGen\EditableChild.cst】
部署路径
模块部署在【Module】目录下类库部署在【Library】目录下
数据库约定
对象标识字段为Id,自关联外键字段为Pid【Id】字段为Guid类型,名称为Id,建立表后修改此字段为【非聚合索引】
自关联外键为【PID】,其他表关联外键字段名为:【关联表名称+Id】
顺序号的字段为【OrderNo】,int类型,支持树形上下移动操作
类库编写
属性名称首字母大写,多个词组成的每个词第一个字母大写。 如 Id/Pid/ProjectPbs。 变量首字母小写,如id/pid/projectPbs类库关联Id和关联对象赋值时不处理其关联,如果逻辑关系,统一约定为添加方法处理。
根对象如果是单据样式模块,根对象需要实现【MergeOldObject】把点击列表后取得的对象合并到列表对象中,实现单据模块懒加载对象功能
子对象【懒加载】属性GetChild方法内部实现需要使用DataPortal.Fetch而不是DataPortal.FetchChild,否则代码将在客户端执行。如下示例:
internal static BQSections GetChild(BQTrade parent) { return DataPortal.Fetch<BQSections>(parent); }
命名约定
列表名对象后缀为List/s, 系统会根据业务类型取数据GetList找对象名先找List,如果不存在再找s添加细表记录方法名为NewChild
更多内容:
[b] 开源信息系统开发平台之OpenExpressApp框架.pdf[/b][/i]
相关文章推荐
- 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布
- 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布
- 信息系统开发平台OpenExpressApp - CSLA类库编写
- 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布
- 信息系统开发平台OpenExpressApp:【OpenTest】 之 框架实现说明
- 信息系统开发平台OpenExpressApp - CSLA类库编写
- 信息系统开发平台OpenExpressApp:【OpenTest】 之 框架实现说明
- 信息系统开发平台OpenExpressApp - 框架待完善工作事项
- 信息系统开发平台OpenExpressApp - 框架待完善工作事项
- 信息系统开发平台OpenExpressApp - 配置CSLA的WCF数据门户代理
- 信息系统开发平台OpenExpressApp - 发布【开源信息系统开发平台之 OpenExpressApp框架.pdf】
- 信息系统开发平台OpenExpressApp - 使用CSLA类库实现用户管理
- 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布
- 信息系统开发平台OpenExpressApp - 发布【开源信息系统开发平台之 OpenExpressApp框架.pdf】
- 信息系统开发平台OpenExpressApp - 使用CSLA类库实现用户管理
- 信息系统开发平台OpenExpressApp -如何部署OEA应用
- 信息系统开发平台OpenExpressApp - 性能相关
- 信息系统开发平台OpenExpressApp - 内置支持的模块类型
- 信息系统开发平台OpenExpressApp - 学习必备知识
- 信息系统开发平台OpenExpressApp - 功能权限