当前位置:主页   - 电脑 - 网站开发 - ASP.Net
信息系统开发平台OpenExpressApp - CSLA类库编写
来源:网络   作者:快乐学习   更新时间:2011-10-10
收藏此页】    【字号    】    【打印】    【关闭

  下图为OpenExpressApp的系统架构图,其中在CSLA类库是作为一种模型对象贯穿于整个架构,CSLA对象是分布式对象,运行在框架各层上。面向对象是OEA的基本,学会写CSLA类库也就成了OEA的必备知识。由于本篇不是专门介绍CSLA的,所以不会对CSLA进行全面的介绍,而只介绍在OEA下我们应该如何编写CSLA类。

  分布式类库贯穿于整个架构层

信息系统开发平台OpenExpressApp - CSLA类库编写

    查看原图(大图)对象分类

信息系统开发平台OpenExpressApp - CSLA类库编写

  熟悉DDD的应该知道聚合,我这里说的根对象指的就是聚合中的根对象,也就是唯一允许被外部对象引用的元素。子对象是聚合内部与根对象或者根对象的子对象的子对象。

  类库主要编写步骤

  根据对象类型,选择代码生成模板生成初始框架代码:添加根对象(主表)使用模板【Lib\CodeGen\EditableRoot.cst】,添加子对象(细表)使用模板【Lib\CodeGen\EditableChild.cst】

  添加类库属性。属性编写代码同下:

  1 private static PropertyInfo NameProperty =  RegisterProperty(new PropertyInfo("Name"));<br>        [Column]<br>        [Required, IsTitle, ShowInList, ShowInDetail, Label("名称")]<br>        public string Name<br>        {<br>            get { return GetProperty(NameProperty); }<br>            set { SetProperty(NameProperty, value); }<br>        } 

  添加属性后需要【DataPortal_Fetch】需要增加相应属性的Load方法,如果是根对象,还需要在【MergeOldObject】中添加。不修改此方法,会导致界面看不到字段值

  添加子对象后,需要在根对象中添加相应的子对象属性,并且修改【DataPortal_Fetch】、【MergeOldObject】

  根据性能要求,判定属性是否使用懒加载,数据懒加载会单独在写一篇blog

  添加类库业务逻辑代码

  如果需要CSLA Command支持的需要添加Command内部类执行客户端和服务器端业务逻辑交互

编缉推荐阅读以下文章

  • 信息系统开发平台OpenExpressApp - 用户权限模块设计
  • 信息系统开发平台OpenExpressApp - 支持WPF主题样式
  • 信息系统开发平台OpenExpressApp - 性能相关
  • 信息系统开发平台OpenExpressApp - CSLA约定及框架约定
  • 信息系统开发平台OpenExpressApp - 支持列表分组(Group)
  • OpenExpressApp控件 - 采用WCF作为分布式应用支持
  • 信息系统开发平台OpenExpressApp -如何部署OEA应用
  • 信息系统开发平台OpenExpressApp - ClickOnce智能部署
  • 信息系统开发平台OpenExpressApp - Command扩展机制
  • 信息系统开发平台OpenExpressApp - 应用模型ApplicationModel
其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明