在学习.Net Core Mvc 的基础知识后想写一个Demo,但是在这过程中遇到了很多的问题,我的记忆很差,听取了意见,记录下,针对问题来解决。
由于公司都是用的以前的技术,都没有分层的这个说法,我才从学校里面出来不久,我一直想要简单的分层 想要用 .Net Core Mvc + 三层来做一个Demo,
在实际开发中都有一些基础的项目需要用到的,例如,日志,异常,过滤器,依赖注入,等我想要学习这一部分因为以后项目上基本都要用的。
在搭建三层 .Net Core Mvc + 三层的过程,一直有很多的疑惑,理解一个层改怎么写,有时想很久,或者写了后再看网上的帖子后,又修改代码。感觉一直都很迷茫。
下面是我搭建的.Net Core Mvc + 三层的项目,其中有很多的不足希望有人能帮我看哈,需要修改,优化的地方谢谢!
1,项目的结构:这里要感谢博客上前辈们提供的源码让我们学习,谢谢
ProjectCore.Common:是放公共的类和方法的
ProjectCore.Entity:实体类
ProjectCore.Repository.Contract:数据访问层接口
ProjectCore.Repository.EF:数据访问层的具体实现
ProjectCore.Service.Contract:业务逻辑层 接口
ProjectCore.Service:业务逻辑层 的具体实现
这里是数据访问层的接口
这里是数据访问层具体实现的接口
这里是 数据访问层 继承后的代码:
1,最开始连这里都不能理解他的意思,所以我去巩固了基础知识,接口的继承,实现接口,类的继承
注:在 IDemoRepository接口里面继承了IBaseRepository,IDemoRepository因此他有了IBaseRepository里面的属性,BaseRepository类里面实现了IBaseRepository 所以DemoRepository具有他们所有的属性
这里是业务逻辑层的接口
这里是业务逻辑层的具体实现
然后Controller的代码
1,在数据访问层应用了仓储模式,数据访问层应用了IServiceCollection扩展实现依赖注入和 业务逻辑层用了 Autofac依赖注入
IServiceCollection扩展实现依赖注入:使 数据访问层能以泛型的方式实现实现依赖注入
Autofac依赖注入的好处:本来开始都是用的 Autofac依赖注入 但是我在 数据访问层以泛型的方式实现后,Autofac没有找到对应的解决办法
他们能实现程序集的依赖注入,以免以后建立很多类的时候不用一条一条的去写依赖注入,主要是没有找到.net core mvc中自带的程序集依赖注入方式
这些都是通过看帖子和下载源码,还有现在在维护一个项目里的源码 来学习出来的一些知识
我的疑问之一:这样搭建的 .net core mvc + 三层 是否合理,需要优化或者需要修改的地方请指导一下谢谢
我的疑问之二:我要在后台验证数据的准确性使用了 FluentValidation验证,FluentValidation的验证类应该放到那一层
搭建 .net core mvc + 三层 是否合理这个问题是否合理我改了很多次
1,在数据访问层我开始没有使用泛型但是写好后发现,许多地方都重复的使用了,查询,修改,删除等的方法于是看帖子使用了仓储
2,对于现在来说这样的方式,使用会增加工作量,但是我明白搭建项目为了使以后方便维护,开发效率,因为我现在,深受其害维护人家写的代码的时候,改动有点大。
3,公司里面虽然有一些技术好的前辈与同事,但是他们都是以快速开发为目标开发的,怎样快怎样开发,重复代码很多,如果我现在不学习,后面会很惨。
4,公司里面给我的事情很少,基本上都是为了让我维护一个项目,好接这个项目的2期开发,公司里面没有人基本上没有人会这方面的知识,都感觉我学习.net core +分成 是一个错误的决定,所以我要请教各位前辈,和会这方面的同事,提高自己的技术
第一次写博客:不知不觉写了接近1个小时,可能是有点紧张,可以想象那些经常发帖子来帮我们解答问题的作者,在背后的付出,像他们致敬!希望能帮我解答问题谢谢!