上篇咱们分析了AgileEAS.NET平台的DAL层的设计与相关的使用说明分析,本篇咱们来分析下业务逻辑层/服务层的设计与分析,而且分析下如何抽离单独的业务逻辑设计模式
层,分离出单独的分布式访问服务支持。咱们主要是分析如何设计出严格的基于现有DAL层之上的BLL->服务层>UI层这样的分层设计模式,本系列中的药店系统则采用的分层架构
方式是DAL->BLL层->UI层,下面咱们来分析下这2种的不一样的实现方案及代码的组织,而且分析关于分布式服务支持的写法和内部的实现原理分析。分布式
一、DAL->BLL层->服务层->UI层。函数
二、DAL->BLL层->UI层。网站
三、AgileEAS.NET平台的分布式访问支持的契约分析。spa
咱们先来看看你们比较关系的将业务层与服务层职责相分类的实现方案。.net
经过上图咱们知道这个分层架构中每层的职责,那么下面咱们将会对每层的职责进行一个严格的划分和设计说明:设计
既然DAL层咱们不添加任何的内容,那么咱们把跟该实体相关的业务逻辑添加到BLL层,下面咱们来看看。orm
有了相关的业务逻辑层咱们就能够在服务层完成一些业务逻辑流程的组织:能够理解成服务层就是经过外观模式来控制业务逻辑流程的外观层。blog
综上所述,服务层就至关于一个业务逻辑流程的粗粒度的接口,固然咱们在服务层与业务逻辑层之间经过DTO来传输数据。
关于上述架构的组织,我会在后续的案例场景中单独的写出一些使用该架构的案例结合AigleEAS.NET来完成。
本节来分析下,咱们之间经过BLL层来完成相关业务逻辑及业务流程的组织,例如上篇讲述的关于药品出库操做时的业务流程管理。
上图中描述了业务逻辑层的职责:
咱们来看看药品出库操做时的相关业务逻辑层业务:
二、咱们看到了每一个业务逻辑中的写法与平时咱们的写法差异不大,下面咱们来解析下内部的具体实现原理和使用分析:
三、上面咱们尚未查看如何使用事务来执行批量操做呢?这也是该AgileEAS.NET平台的亮点之一,经过委托来执行事务,很方便的书写批量的事务操做。
四、下面咱们来看看具体的调用事务执行的函数定义与委托定义:
函数的委托定义:
五、调用事务执行方法定义:
六、经过上面咱们就知道了委托事务的执行思路了,能够参考着本身实现一遍,固然可能还有更好的解决方案,不过我以为这样的写法,写起来比较不错。
本节咱们来分析下AgileEAS.NET平台实现分布式访问的原理解析,固然具体的实现,我这里可能也给不出具体的实现代码。
目前平台主要是支持以下几种格式的分布式访问:
下面咱们来一步步分析分布式访问的内部实现原理
一、下面咱们来分析下这个服务IOC容器的内容:
二、查看服务组件基类的相关定义:
三、查看“SessionObject的内部定义”
四、经过上面咱们知道,AgileEAS.NET平台使用MarshalByRefObject来支持分布式访问,因此下面咱们只须要实现好业务逻辑层中的业务逻辑便可。关于具体的使用及
分布式服务的配置,会在后面的应用部署模块中详细的阐述如何部署分布式访问。
本篇也是分析了关于分布式访问的实现方案和原理进行了分析,关于具体的配置和如何使用分布式服务等,后续会在模块的应用部署及配置的环节中详细的阐述,固然
因为本人的水平有限,或者是对AgileEAS.NET的研究程度不深入,因此部分讲述的不清楚或者不明白,还请你们批评指出。
若是您在使用AgileEAS.NET开发平台中有什么问题,请使用以下几种联系方式或者沟通方式。
一、邮箱方式:
魏琼东: mail.james@qq.com 手机:18629261335 博客:http://eastjade.cnblogs.com/
殷长波:549558408@qq.com 博客: http://www.cnblogs.com/onmyway/
何戈洲:hegezhou_hot@163.com 博客:http://www.cnblogs.com/hegezhou_hot/
二、QQ交流群:
AgileEAS.NET平台交流群:120661978(超级群)[新建] AgileEAS.NET平台交流群:125643764(高级群)[新建] AgileEAS.NET平台交流群:147168308(高级群)[新建]