前言:
今天你们对“orm框架和ef框架是什么关系”都比较看重,咱们都需要了解一些“orm框架和ef框架是什么关系”的相关资讯。那么小编在网摘上收集了一些对于“orm框架和ef框架是什么关系””的相关知识,希望各位老铁们能喜欢,咱们快快来了解一下吧!我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。
这周在专栏《.Net Core从零学习搭建权限管理系统教程》里,编写了事务功能的教程,今天就结合事务功能实现的演变,一起来体会下框架设计有趣的地方。
一、第一个版本的实现
在专栏里,我们ORM框架使用的是EF,EF本身提供的事务API有:开始、提交和回滚事务。
经过我们简单封装以后,实现方式如下,见截图的红色框。
从功能上说,这样是可以完成我们的需求。
但是目前的实现方式存在2个问题:
1、所有有多个数据库操作的地方,我们全部需要添加以上代码;
2、虽然实现事务代码比较简单,但是代码是比较重复的,这样就会导致所有Action存在着重复的代码。
二、第二个版本的实现
我们可以通过自定义特性(Attribute)的方式,来实现事务功能。
这种实现方式,可以大大简化我们的代码,我们只需为需要事务的Action,添加特性就可以。
三、第三个版本的实现
虽然第二版本,可以大大的减少代码量,但还是存在2个问题:
1、虽然简化了事务的使用,但是还是需要手动添加;
2、对于开发人员,需要知道事务的概念。在实际项目开发中,涉及保存更新的操作,基本都是需要事务的,这样每个开发人员都需要掌握事务的使用。
最后,我们通过添加全局事务的方式,默认为所有Action添加事务,这样我们就可以连为Action添加特性都可以省略,见如下截图:
默认为所有Action添加事务,这样的设计方式,主要基于如下考虑:
1、一般的管理系统,不会涉及高并发,所以默认开启事务功能,损失点性能不会有影响;
2、对于普通开发人员来说,无需关心事务的实现,因为框架已经默认为所有Aciton添加了事务。
当然了,对于不需要事务的,也可以通过特性的方式来关闭。
四、总结
一个好的框架,不仅仅是核心的功能实现,也是要考虑开发难度与开发效率的。
1、在我们项目开发中,框架是给团队所有成员使用的,团队成员水平是参差不平的,如果框架使用难度太大,就会影响框架的使用与开发进度;
2、框架能做的事情,尽量不要让开发人员参与,尽量对开发人员是透明的,减少开发人员的代码量,提升开发进度,同时也减少错误的可能。
我们设计框架,需要全方面的考虑,为团队考虑,在这过程就需要大量的思考,我认为这就是框架设计非常有趣的地方。
好了,今天就分享到这边,欢迎一起加入学习《.Net Core从零学习搭建权限管理系统》,带你从零学习框架的搭建!
我是编程乐趣,一个10年.Net开发经验老程序员,专注开源项目和编程知识分享。
私信回复:【888】,领取.Net视频教程。
- End -
推荐阅读
C#实现的滑块验证码
推荐一个微软反向代理组件+NetCore开发的API网关
推荐基于.NET 6.0开发的开源访客系统
一个基于.Net Core开发的适合外贸商城系统
.Net服务器性能监控,应用耗时统一监控平台
标签: #orm框架和ef框架是什么关系