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,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
前端开发 JavaScript 关系型数据库
使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统
使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统
105 0
|
8月前
|
存储 算法 安全
.NET 平台 SM2 国密算法 License 证书生成深度解析
授权证书文件的后缀通常取决于其编码格式和具体用途。本文档通过一个示例程序展示了如何在 .NET 平台上使用国密 SM2 算法生成和验证许可证(License)文件。该示例不仅详细演示了 SM2 国密算法的实际应用场景,还提供了关于如何高效处理大规模许可证文件生成任务的技术参考。通过对不同并发策略的性能测试,开发者可以更好地理解如何优化许可证生成流程,以满足高并发和大数据量的需求。 希望这段描述更清晰地传达了程序的功能和技术亮点。
821 14
.NET 平台 SM2 国密算法 License 证书生成深度解析
|
6月前
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
201 0
|
10月前
|
前端开发 C# 开发者
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
127 12
|
10月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
239 5
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
387 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
201 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
221 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
168 0
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
300 0

热门文章

最新文章