【无私分享:ASP.NET CORE 项目实战(第三章)】EntityFramework下领域驱动设计的应用

目录索引 

【无私分享:ASP.NET CORE 项目实战】目录索引

简介

  在我们 【无私分享:从入门到精通ASP.NET MVC】 系列中,我们其实也是有DDD思想的,但是没有完全的去实现,因为并不是所有的好的东西都必须要用到的,还是根据实际情况,DDD在大型的系统中是非常好的一种设计思想,这点不否认。但是根据具体情况而言,在我们小型的项目中,我们设计框架的更多考虑的是让使用者快速、便捷的开发,能快速的了解框架进行项目开发。

重构我们的思路

  最近研究了一下几位大神的博客,特别是:@腾飞(Jesse) 的  初探领域驱动设计(1)为复杂业务而生 和 @dax.net 的 EntityFramework之领域驱动设计实践 (一)

  让我重新认识了一下 DDD,对于这个设计思想,说实话,我还是比较陌生的,算是一个初学者,根据自己的一些理解,我对比了一下 初探领域驱动设计(1)为复杂业务而生示例代码的调用关系:

  之前的调用关系:接口实现类 继承 仓储 RepositoryBase<T> 实现业务操作和数据操作,进行操作的方式就是 调用接口方法 实现操作

            

  腾飞(Jesse)初探领域驱动设计(1)为复杂业务而生 中示例代码的调用关系:领域层 调用 仓储 IRepository<T> 实现业务操作和数据操作,然后他的接口实现类,看上去像是 “中转”了一下,进行操作的方式就是 调用接口方法 接口方法 再调用 领域层的方法 实现操作

        

这好像就是比我的多了一个“中转层”,把我们的接口作为了一个中转,领域层继承了仓储实现业务和数据操作,这有什么实际意义吗?希望大家指正一下:

我不理解的是,如果是按照这样,那么我如果要修改注册方法,比如我要在上面方法中传递 eamil,name,password 的基础上还需要传递手机号码,那么我需要修改"三"个地方,一个是应用层的接口IUserService 的 Register 的参数,一个是应用层的实现类 UserService 的 Register 的参数,还有 领域层 的 Register 的参数和方法体;而在我之前的代码中,只需要修改接口 IUserManage 的 Register 的参数 和 实现类 UserManage 的 Register 的参数和方法体 就可以。

希望跟大家一起学习Asp.net Core

刚开始接触,水平有限,很多东西都是自己的理解和翻阅网上大神的资料,如果有不对的地方和不理解的地方,希望大家指正!

虽然Asp.net Core 现在很火热,但是网上的很多资料都是前篇一律的复制,所以有很多问题我也暂时没有解决,希望大家能共同帮助一下!

时间: 2024-12-25 22:31:42

【无私分享:ASP.NET CORE 项目实战(第三章)】EntityFramework下领域驱动设计的应用的相关文章

【无私分享:ASP.NET CORE 项目实战(第九章)】创建区域Areas,添加TagHelper

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在Asp.net Core VS2015中,我们发现还有很多不太简便的地方,比如右击添加视图,转到试图页等功能图不见了,虽然我们可以通过工具栏的自定义命令,把这两个右击菜单添加上,但是貌似是灰色的不能用. 其实,这样也好,通过手动创建,更让我们深刻的理解MVC以及路由之间的关系,很多人认为底层的东西是高大上的,比如一提到汇编,很多人感觉牛的不行不行的,其实术业有专攻,做程序的感觉搞核电的很牛,搞核电的同样也感觉做程序的很牛

【无私分享:ASP.NET CORE 项目实战(第二章)】添加EF上下文对象,添加接口、实现类以及无处不在的依赖注入(DI)

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 上一章,我们介绍了安装和新建控制器.视图,这一章我们来创建个数据模型,并且添加接口和实现类. 添加EF上下文对象 按照我们以前的习惯,我们还是新建几个文件夹 Commons:存放帮助类 Domians:数据模型 Services:接口和实现类 我们在Domains文件夹下添加一个类库 Domain 我们新建一个类 ApplicationDbContext 继承 DbContext 1 using Microsoft.Ent

[转]【无私分享:ASP.NET CORE 项目实战(第九章)】创建区域Areas,添加TagHelper

本文转自:http://www.cnblogs.com/zhangxiaolei521/p/5808417.html 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在Asp.net Core VS2015中,我们发现还有很多不太简便的地方,比如右击添加视图,转到试图页等功能图不见了,虽然我们可以通过工具栏的自定义命令,把这两个右击菜单添加上,但是貌似是灰色的不能用. 其实,这样也好,通过手动创建,更让我们深刻的理解MVC以及路由之间的关系,很多人认为底层的东西是高大上

【无私分享:ASP.NET CORE 项目实战(第四章)】Code First 创建数据库和数据表

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来介绍下Asp.net Core 使用 CodeFirst 创建数据库和表,通过 控制台 和 dotnet ef 两种方式 修改EF上下文对象,添加测试类 我修改了一下名字,Domains 改为了 wkmvc.Data 我们新建一个文件夹 Models 用于存放 模型类 我们在Models下面再新建一个文件夹SysModelsMange 用于区域模型类 我们新建一个测试类SYS_USER namespace wkm

【无私分享:ASP.NET CORE 项目实战(第五章)】Repository仓储 UnitofWork

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来创建仓储类Repository 并且引入 UnitOfWork 我对UnitOfWork的一些理解  UnitOfWork 工作单元,对于这个的解释和实例,网上很多很多大神之作,我在这就不班门弄斧了,只是浅谈 一下个人理解,不一定对,希望大家指正: UnitOfWork 看了很多,个人理解就是 统一事务,在很多操作中我们可能是进行多项操作的,比如 同时保存两个表的数据,如果我们先保存一个表(SaveChanges

【无私分享:ASP.NET CORE 项目实战(第八章)】读取配置文件(二) 读取自定义配置文件

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 我们在 读取配置文件(一) appsettings.json 中介绍了,如何读取appsettings.json. 但随之产生了问题:我们使用的是在 Startup.cs 中(如下图)来实现配置读取,有两个问题 ① 我们如果定义N种配置,是否要再这里添加N条这样的配置 : ② 如果我们的配置不想写在appsettings.json中呢 解决问题 带着上面的两个问题,我们首先来添加一个配置文件 siteconfig.json

【无私分享:ASP.NET CORE 项目实战(第十一章)】Asp.net Core 缓存 MemoryCache 和 Redis

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 经过 N 久反复的尝试,翻阅了网上无数的资料,GitHub上下载了十几个源码参考, Memory 和 Redis 终于写出一个 简陋 的 封装,为了统一和易用,我们两种缓存都统一实现了一个接口 ICacheService,微软也有很多是通过IDistributedCache,大家可以参考 https://docs.asp.net/en/latest/performance/caching/distributed.html 

【无私分享:ASP.NET CORE 项目实战(第七章)】文件操作 FileHelper

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在程序设计中,我们很多情况下,会用到对文件的操作,在 上一个系列 中,我们有很多文件基本操作的示例,在Core中有一些改变,主要是我们常用的Server.MapPath()不存在了,不知道后续的版本会不会有,在这里,我们只能自己封装方法去实现.今天,我们就对一些基本的操作写了一个 FileHelper 类,供大家探讨.在此要感谢以为不愿意透漏姓名的大神的帮助:@YINYEJUN 获取文件的绝对路径  在以前的操作中,这个应

【无私分享:ASP.NET CORE 项目实战(第六章)】读取配置文件(一) appsettings.json

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在我们之前的Asp.net mvc 开发中,一提到配置文件,我们不由的想到 web.config 和 app.config,在 core 中,我们看到了很多的变化,新的配置系统显得更加轻量级,具有更好的扩展性,并且支持多样化的数据源. 博客园对于这个的讲解很多,比如:Artche ,但是,没有点基础看老A的博客还是有些吃力的,对于老A介绍的配置,我也是看的一头雾水,在后面的文章中,我会用像我们这些菜鸟容易接受的方式,重新解