ASP.NET Mvc实用框架(一)Ioc、仓储模式和单元工作模式
2016-12-20 22:11
555 查看
Framework.EF
首先看一下这个类库:Extended文件夹存放的是EntityFramework.Extensions这个插件的源代码,没有别的原因,就是本人觉得这个插件挺好的,每次省的下载而已
IDependency:用于依赖注入的接口
IRepository和Repository:用于仓储模式
IUnitOfWork和UnitOfWork:用于单元工作模式
Page:分页实体
1、什么是依赖注入?
记得第一次接触依赖注入的时候是在我大二暑假自己出去实习的时候,当时带我的人让我看一看依赖注入这个东西,因为项目用到了,我愣是看了一个星期,各种熬夜、百度、问人,还没明白怎么回事?现在想想挺搞笑的。其实这个东西需要一定的项目经验理解起来会方便些,其实我们平时在研究问题的时候,当你实在解决不了的时候,不妨先记下来,有空的时候多看看,总有一天会豁然开朗的。扯远了。。。其实依赖注入我跟喜欢把它当成控制反转,这样更贴切,为什么呢?举个例子:三层架构中的BLL层,我们通常定义一个接口层让它继承,在使用的时候,直接 接口申明 - BLL实例化,而控制反转的思想是将它们的顺序颠倒过来,也就是说我们不再关注接口到底是怎么实现的了,这样就实现了解耦合,在我看来这是一项伟大的创新。而实现控制反转这个思想当然是依赖注入容器,当然插件有很多,我用过Unity和Autofac,个人感觉还是第三方的Autofac强大,性能相对于Unity而言十分的明显
2、什么是仓储模式?
关于这方面的介绍有很多,我说说我的理解,通常我们所用的ORM都会自己有一套CURD相关的方法,比方说EF中的dbcontext,NH中的session,其实我们会发现在仓储模式中又会定义一套CURD相关的方法,有的人会问:这TM的不是重复了吗?当时我也是这么想的,其实不然,如果你的ORM永远不可能变的话,那么你可以不用仓储模式,但是这种情况概率基本不可能发生,谁也无法保证你的领导脑袋会不会抽风,万一,就万一哪天需要更换底层的东西的呢?如果你使用了仓储模式的话,这样更换底层就十分的方便,只需要将仓储中的实现挨个重写一遍,这就是好处。3、什么是单元工作模式?
其实就是统一资源,减少资源浪费而已,我们就拿EF来说,其实我发现有些人会在单元工作模式中定义了一些事务的操作方法,在我看来这是没有必要的,为什么呢?因为EF中的上下文本身就是具有事务性质的,我们只需要在单元工作模式中定义一个统一提交的方法即可。本系列完成之后附上源代码
相关文章推荐
- 【工作笔记二】ASP.NET MVC框架下使用MVVM模式
- 【EntityFramework系列教程九,翻译】在ASP.NET MVC程序中实现存储与单元工作模式
- 自己改写的asp.net MVC EF Respoistory 仓储模式
- 自己改写的asp.net MVC EF Respoistory 仓储模式
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(6) 控制器基类 主要做登录用户、权限认证、日志记录等工作
- ASP.NET MVC框架下使用MVVM模式 knockoutjs的实现原理
- ASP.NET MVC框架下使用MVVM模式
- 在MVC程序中,使用泛型仓储模式和工作单元实现增删查改
- asp.net mvc 3介绍与IOC框架
- 【转】ASP.NET MVC框架下使用MVVM模式-KnockOutJS+JQ模板例子
- MVC+EF 理解和实现仓储模式和工作单元模式
- ASP.NET MVC系列 框架搭建(二)之仓储层的优化
- asp.net mvc 3介绍与IOC框架
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (16)源码分享二:登录功能以及UI、数据库、仓储源码分享
- ASP.NET MVC 学习笔记(MVC概念和工作模式)
- ASP.NET MVC系列 框架搭建(一)之仓储层的搭建
- ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)
- Asp.net MVC 2.0 + Unity 2.0(IoC) + EF4.0 实例:RoRoWoBlog 开源项目框架代码
- MVC 实现仓储和工作单元模式分析
- ASP.NET MVC框架下使用MVVM模式