实战-业务逻辑层

业务逻辑层是应用程序的大脑

  1. 负责处理系统的核心业务,
  2. 负责对用户定义的流程进行建模,
  3. 负责数据访问层和展示层的通讯,
  4. 不能因为数据库的变换而变化,也不能因为终端的变换而变化。

下面是业务逻辑层的具体实现

  1. BLL——业务逻辑

业务逻辑的操作,包括业务处理,调用数据访问,事务等。

  1. IBLL——业务接口

业务逻辑层的方法对外暴露的接口和服务契约

  1. WFActivitys——工作流活动层

定义了工作流中使用的活动

业务的最小逻辑单元

因为服务层和展示层都会调用业务逻辑层,所以在此层做事务、异常和并发的处理比较合理。

  • 事务的使用

首先,引用"using System.Transactions;"命名空间,调用TransactionScope类

  • 异常的处理

  • 并发的处理

更新的时候会面临一个难点,假设某条记录同时被两个人A和B读取并且正在修改。A先修改完成然后保存了,然后B再保存的时候,会由于时间戳不一致(因为A之前先保存修改了时间戳)导致B保存失败。给一个表加一个时间戳字段Timestamp,可以有效的解决数据库并发问题。

我们约定

  1. 将系统需要的基础类放在"Framework"文件夹中
  2. 将业务相关的类,都放在自己创建的文件夹中,类采用分部类的方式,这样可以有效的防止代码重新生成覆盖的危险,如:"DiaoYan"

  3. 在此层做事务、异常和并发的处理
  4. 对外暴露的方法,必须继承自IBLL项目的接口

以上我们完成了业务逻辑层的设计,此架构的代码实现,请参考www.langben.com

posted @   狼奔代码生成器  阅读(968)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示