随笔分类 - 架构设计
摘要:应lisansi同学回复(项目架构开发:数据访问层之UnitOfWork)要求,补上Dapper的DbContext实现
阅读全文
摘要:上一章我们完善了服务层的设计,传送门:项目架构开发:服务层(下) 这次我们来完成项目的单机部署与集群部署,我们来看看单机部署与登录 单机部署很简单,这里就不演示了,要注意的是我们用的是session来保存登录信息 虽然Session不安全,比如sessionid被截获那就可以在任何地方用你的账号登录
阅读全文
摘要:之前我们已经完成了服务层,因为当时展现层还没有出来,所以只做了简单介绍。传送门:项目架构开发:服务层(上) 这次我们通过一个维护系统用户的场景来介绍一下服务层真正的设计用意。 1、新增用户场景 新增用户可能会有以下步骤 实现以上需求,开发人员一般情况下可能就是以上 蓝红黑紫绿 几种选择 1、有些写在
阅读全文
摘要:上一篇我们完善了多层开发的效率问题,传送门:项目架构开发:展现层(下) 这次我们完成架构的异常处理功能,异常处理一般都与日志分不开的,因为分析及定位问题需要一些详细信息; 稍微正规一点的公司,都会分开发、测试及生产环境。在本地及测试环境出BUG了,问题很好解决 调试跟踪问题,三下五除二就搞完了;但是
阅读全文
摘要:上一章我们完成了项目的展现层的一个表的CURD,从此UI层到数据库的通道打通了;传送门:项目架构开发:展现层(上) 这章我们还是讲CURD,不过内容重复的话就没意思了,这次我们想办法提高代码编写的效率; 先来看看从UI层到DataAccess一共要写多少个类文件,服务层就先不算在里边了 1、Data
阅读全文
摘要:上次我们创建了项目的服务层,服务层在业务逻辑简单,或项目运行初期不是很容易体现出他的价值;传送门:项目架构开发:服务层(上) 服务层专门处理非业务逻辑的一些功能,比如缓存、异常处理、组织多个应用逻辑等;这次我们搭建最上层的展现层,用到的知识面包括以下: asp.net mvc5 + bootstra
阅读全文
摘要:上一次(即昨天),我们完成了业务逻辑层的演示;传送门:项目架构开发:业务逻辑层之领域驱动失血模型 设计上虽然还不是太优雅,但是距离真正的OO编程又更近了一步,而且也保留了事务脚本模式的简单快捷的特性 只要后续把Model层丰富起来,那就算是掌握了另一种软件开发模式,而且也是整个思想上的转变。 本章我
阅读全文
摘要:前边我们构建了个数据访问层,功能虽然简单,但是基本够用了。传送门:项目架构开发:数据访问层 这次我们构建业务逻辑层 业务逻辑是一个项目、产品的核心,也是现实世界某种工作流程在代码层面的体现。 所以,业务逻辑的合理组织构造,或更真实地反映现实业务操作,对项目的成功与否非常重要 现在业界对业务逻辑层的开
阅读全文
摘要:接上文 项目架构开发:数据访问层之IQuery 本章我们继续IUnitOfWork的开发,从之前的IRepository接口中就可以看出,我们并没有处理单元事务, 数据CUD每次都是立即执行的,这样有一些不好的地方,比如数据访问次数会增多,一笔数据的完整性无法保证 比如:批量新增2条记录,只有一条成
阅读全文
摘要:接上文 项目架构开发:数据访问层之Repository 上一章我们讲了IRepository接口,这张我们来讲IQuery 根据字面意思就可以知道,这次主要讲数据查询,上一章我们只针对单表做了查询的操作,多表联查并没有实现 其实对于任何一个项目来说,多表联查都是比较麻烦的地方,因为项目的“读”操作,
阅读全文
摘要:接上文 项目架构开发:数据访问层之Logger 本章我们继续IRepository开发,这个仓储与领域模式里边的仓储有区别,更像一个工具类,也就是有些园友说的“伪仓储”, 这个仓储只实现单表的CURD与Query,都是通过主键ID或拉姆达表达式进行操作的,返回的都是单表的实体或实体集合, 多表的在I
阅读全文
摘要:接上文 项目架构开发:数据访问层之Cache 本章我们继续ILogger的开发 ILogger.cs 日志服务的实现 这里我们引用的是log4net组件,我们来看看具体实现 LoggerBase.cs 其实log4net可以直接在项目各层调用的,我们这里之所以还要创建一个接口,似乎有过度封装之嫌;
阅读全文
摘要:数据访问层简单介绍 数据访问层,提供整个项目的数据访问与持久化功能。在分层系统中所有有关数据访问、检索、持久化的任务,最终都将在这一层完成。 来看一个比较经典的数据访问层结构图 大概可以看出如下信息 1、有缓存、日志、异常处理、数据CRUD、查询及数据事务等功能 2、无缝对接如EF、ADO.NET、
阅读全文