AgileEAS.NET平台开发实例-药店系统-BLL层分析

简介:

介绍

        上篇我们分析了AgileEAS.NET平台的DAL层的设计与相关的使用说明分析,本篇我们来分析下业务逻辑层/服务层的设计与分析,并且分析下如何抽离单独的业务逻辑

层,分离出单独的分布式访问服务支持。我们主要是分析如何设计出严格的基于现有DAL层之上的BLL->服务层>UI层这样的分层设计模式,本系列中的药店系统则采用的分层

方式是DAL->BLL层->UI层,下面我们来分析下这2种的不同的实现方案及代码的组织,并且分析关于分布式服务支持的写法和内部的实现原理分析。

大纲

         1、DAL->BLL层->服务层->UI层。

         2、DAL->BLL层->UI层。

         3、AgileEAS.NET平台的分布式访问支持的契约分析。

DAL->BLL层->服务层->UI层

         我们先来看看大家比较关系的将业务层与服务层职责相分类的实现方案。

         image

         通过上图我们知道这个分层架构中每层的职责,那么下面我们将会对每层的职责进行一个严格的划分和设计说明:

         image

         既然DAL层我们不添加任何的内容,那么我们把跟该实体相关的业务逻辑添加到BLL层,下面我们来看看。

         image

         有了相关的业务逻辑层我们就可以在服务层完成一些业务逻辑流程的组织:可以理解成服务层就是通过外观模式来控制业务逻辑流程的外观层。

         image

         综上所述,服务层就相当于一个业务逻辑流程的粗粒度的接口,当然我们在服务层与业务逻辑层之间通过DTO来传输数据。

         image

         关于上述架构的组织,我会在后续的案例场景中单独的写出一些使用该架构的案例结合AigleEAS.NET来完成。

DAL->BLL层->UI层

           本节来分析下,我们之间通过BLL层来完成相关业务逻辑及业务流程的组织,例如上篇讲述的关于药品出库操作时的业务流程管理。

           image

           上图中描述了业务逻辑层的职责:

           我们来看看药品出库操作时的相关业务逻辑层业务:

           image

           2、我们看到了每个业务逻辑中的写法与平时我们的写法差别不大,下面我们来解析下内部的具体实现原理和使用分析:

           image

          3、上面我们还没有查看如何使用事务来执行批量操作呢?这也是该AgileEAS.NET平台的亮点之一,通过委托来执行事务,很方便的书写批量的事务操作。

          image

         4、下面我们来看看具体的调用事务执行的函数定义与委托定义:

         函数的委托定义:

         image包含自定义参数

         image不包含自定义参数

        5、调用事务执行方法定义:

         image

         6、通过上面我们就知道了委托事务的执行思路了,可以参考着自己实现一遍,当然可能还有更好的解决方案,不过我觉得这样的写法,写起来比较不错。

AgileEAS.NET平台的分布式访问支持

          本节我们来分析下AgileEAS.NET平台实现分布式访问的原理解析,当然具体的实现,我这里可能也给不出具体的实现代码。

          目前平台主要是支持如下几种格式的分布式访问:

           image

           下面我们来一步步分析分布式访问的内部实现原理

          1、下面我们来分析下这个服务IOC容器的内容:

           image

          2、查看服务组件基类的相关定义:

           image该类只是定义一个契约,满足该契约的类都可以支持分布式服务。

          3、查看“SessionObject的内部定义”

          image

         4、通过上面我们知道,AgileEAS.NET平台使用MarshalByRefObject来支持分布式访问,所以下面我们只需要实现好业务逻辑层中的业务逻辑即可。关于具体的使用及

分布式服务的配置,会在后面的应用部署模块中详细的阐述如何部署分布式访问。

总结

        本篇也是分析了关于分布式访问的实现方案和原理进行了分析,关于具体的配置和如何使用分布式服务等,后续会在模块的应用部署及配置的环节中详细的阐述,当然

由于本人的水平有限,或者是对AgileEAS.NET的研究程度不深刻,所以部分讲述的不清楚或者不明白,还请大家批评指出。





本文转自何戈洲博客园博客,原文链接:http://www.cnblogs.com/hegezhou_hot/archive/2011/04/01/2002084.html,如需转载请自行联系原作者

目录
相关文章
|
28天前
|
安全 数据安全/隐私保护 开发者
三款.NET 代码混淆工具比较分析:ConfuserEx、Obfuscar 和 Ipa Guard
三款.NET 代码混淆工具比较分析:ConfuserEx、Obfuscar 和 Ipa Guard
|
1月前
|
SQL 开发框架 数据可视化
企业应用开发中.NET EF常用哪种模式?
企业应用开发中.NET EF常用哪种模式?
|
4天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
30天前
|
数据安全/隐私保护 Windows
.net三层架构开发步骤
.net三层架构开发步骤
9 0
|
30天前
深入.net平台的分层开发
深入.net平台的分层开发
48 0
|
2月前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
32 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
38 0
|
30天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
28 0
|
30天前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
95 5