C#.Net C/S结构开发框架中BLL层的作用
C#.Net C/S结构开发框架中BLL层的作用
关于三层开发与逻辑分层 所谓的三层开发就是将系统的整个业务应用划分为表示层,业务逻辑层和数据访问层,这样有利于系统的开发、维护、部署和扩展。分层是为了实现“高内聚,低耦合”。采用“分而治之”的思想,把问题划分开来各个解决,易于控制,延展和分配资源。 如下图所示: 业务逻辑层(Business Logic Layer)用于做一些有效性验证的工作,以更好的保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。 业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。 业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。 因为没有很好的规范,很多人把BLL说成是DAL(Data Access Layer,数据访问层)和UI(User Interface)层。 CSFramework 业务逻辑层代码参考: 比如要创建一个用户,逻辑层参考以下代码: /// <summary> /// 用户管理的业务逻辑层 /// </summary> public class User_BLL { /// <summary> /// 增加用户 /// </summary> /// <param name="instance">用户实例</param> /// <returns></returns> bool AddUser(User instance) { if (this.Validate(instance) == false) return false; return _DAL.AddUser(instance); } /// <summary> /// 用户资料合法性检查 /// </summary> /// <param name="instance">用户实例</param> /// <returns></returns> private bool Validate(User instance) { if (instance.UserID == "") throw new Exception("用户编号不能为空!"); if (instance.UserUser == "") throw new Exception("用户名称不能为空!"); if (_DAL.Exists(instance.UserID)) throw new Exception("用户名已经存在"); return true; } } // 来源:www.CSFramework.com, C/S结构框架学习网 但是在大部分情况下,在开发环境中没有严格要求的, 我们往往习惯把这些检查代码放在UI层,其实是不对的,因为没有分离逻辑层代码,导致UI层臃肿,而BLL层的代码又很少。 扫一扫加微信
参考文档:
基于.Net C/S结构系统开发框架 - 标准版V2.2正式发布! C# C/S结构快速开发框架标准版V2.2 - 视频介绍 基于C#.NET C/S快速开发框架 - 代码自动生成功能 C#.Net C/S快速开发框架V2.2版本介绍 C#.Net CS快速开发框架- 新增业务模块(视频下载) C#.Net C/S结构开发框架中数据访问层(DAL)的作用 C#.NET C/S结构版本自动升级解决方案2.0详解 (一) C#.NET C/S结构版本自动升级解决方案之流程图 C#.NET C/S结构版本自动升级解决方案之自我替换 C#.NET C/S结构版本自动升级解决方案之升级策略 C#.NET C/S结构版本自动升级解决方案之升级包实现 C#.NET C/S结构版本自动升级解决方案之TCP服务器 C#.NET C/S结构版本自动升级解决方案开发文档下载 基于C#.NET C/S架构的生产看板管理系统软件开发框架平台 数据库信息管理开发平台 - C/S结构+Winform+ADO.NET快速开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |