三天教会大家做一个社保管理系统中的核销小工具
我想通过这个小工具,和大家一起从零搭架子,一起编写代码,一起探讨一种编码风格,一种架构,一种编程的思想体系,嗯,有了思想体系,则大巧不工!
体验地址是http://tool.hrinto.cn/
用户名和密码都是tengfei12345
开源地址是https://github.com/Langbencom/HeXiao
下面截图几张
咱们言归正传。
先从搭架子开始
架构没有银弹,但有套路。我认为要吃透三层架构,其他复杂的也是基于现实业务场景由此改编而来。万变不离其宗。
创业三年了,开发的项目很多,就这简简单单的三层架构,做过pv在千万的网站,也做过电网实验室使用的系统,可谓变的是根据业务场景独特的设计,不变的是套路,这套路的运用之妙,在乎一心。
- 展示层,负责系统与客户的交互
- 业务逻辑层,负责处理系统的业务
- 数据访问层,负责处理数据,与不同的数据库打交道
- 服务层,负责与其他系统进行数据交互和业务集成
这不是4个层吗?带着这个问题,来看一下我这些年总结的最佳实践:
- 新建一个展示层的Web应用程序,顺带为解决方案创建目录
记得勾选“Web API”,我们将展示层和服务层都放在这个App的Web应用程序了,这样的好处是网站页面可以调用webapi服务,其他的程序(比如手机端,微信小程序)也可以调用webapi服务,让代码重用率提高。
下面我们增加接口类库、业务逻辑类库、数据访问类库和公共组件类库。
在解决方案上点击右键,添加新项目
一个Web应用程序和4个类库按照同样的方式创建好,然后我们将它们的命名空间统一修改为“Langben.”
注意Common这个组件我们不加命名空间,因为很多这是一个公共组件,其他项目也使用,共同维护。
下面我们为其建立引用关系:
这里约定,App组件,引用其他4个,其中虽然引用了DAL组件,但我们约定只允许调用DAL中的Model(例如CityMeta),不允许调用DAL中的访问数据库的方法(例如CityRepository)
调用关系总结如下:
展示层(App)调用业务接口层(IBLL),业务逻辑层(BLL)实现了接口层(IBLL),业务逻辑层(BLL)调用数据访问层(DAL),公共组件(Common)则是抽象了系统中可以共用和重用的部分,每个层都可以调用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库