DIY.NETORM框架——整体分析

一、故事


      近些年一直开发MIS系统,用过PBVBC#  ,现在学了半年的java,早先听人说,.NET java一直就是互相借鉴,一起升级,都是为了让程序开发趋于简单,高校,而这不可避免就肯定用到框架,对java中很多框架的实现原理,我也比较感兴趣,在本系列的博客正,咱们将一起实现一个简单的.NET ORM框架。

      有人会有疑问,网上有很多成熟的ORM框架,为什么不直接用,偏偏要自己做一个呢?

      对于这个答案,是仁者见仁的问题,就好似建造大厦,如果他停留在会照着图纸建房子,他肯定是个工人,而如果他能了解图纸上的原理,那么他必然是一个管理者,当他了解原理且能自己画出一份图纸的时候,他就是设计师!

 

二,技术了解

 

1.什么是ORM?

 

      ORM,即Object-RelationalMapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

 

2.ORM 优缺点




展开说说

优点:

1),隐藏了数据访问细节

 

 

      “封闭”的通用数据库交互,ORM的核心。他使得我们的通用数据库交互变得简单易行,并且完全不用考虑该死的SQL语句。快速开发,由此而来。

 

 

2),ORM使我们构造固化数据结构变得简单易行。

 

 

        回想我们没有ORM的年代,我们要为每个表编写形形色色的sql语句,我们拿到的数据内容,要自己转换为对象,我们为了某个字段值写错的bug彻夜不眠,而现在,基本上所有的ORM框架都提供了通过对象模型构造关系数据库结构的功能。这,“太好了!!!”

缺点:

1)牺牲性能:

 

 

       无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是所有不喜欢ORM人的共同点)。现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。

 

 

2)查询语言:

 

 

        面向对象的查询语言(X-QL)作为一种数据库与对象之间的过渡,虽然隐藏了数据层面的业务抽象,但并不能完全的屏蔽掉数据库层的设计,并且无疑将增加学习成本.

 

 

3)复杂查询:

 

 

        对于复杂查询,ORM仍然力不从心。虽然可以实现,但是不值的。视图可以解决大部分calculatedcolumn,case ,group,having,order by, exists,但是查询条件(a and b and not c and (d ord))我们有些也要慎重考虑和重新编写sql语句!

 

总结:世上任何事情是完美的,任何优势的背后都隐藏着缺点,这是必然的。问题在于,我们是如何平衡他们的额在简答业务的场合下,简单三成可能就是最佳选择,而在某些业务逻辑复杂,开发团队庞大的项目中,ORM却又是个不得不考虑的问题,具体怎么办?就看你怎么衡量,没人说用了ORM就不让底层人员写sql语句了…………

三,模块设计构想



四、本篇总结

     本次简单讲述了ORM实现的基本思路分析及ORM框架使用的优缺点及在项目中如何合理的分析与应用。我们用ORM框架是来解决问题,但是,不是什么问题都是一种框架可以解决的,数据库的封装,ORM只是做了其中的工作,也不要觉得这个东西是多么的高深,随着我们代码的不断推进,我们设计的不断完善,其实我们可以发现,所有的代码都是基本技术的组合,只是我们对于他的组合形式不熟悉,相信自己,框架我们也是可以写出来的!

附件(系列博客链接):

     1DIY.NETORM框架——整体分析


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值