O/R Mapping的性能

ObjectSpace 基础(Part3)
1、   O/R Mapping的优劣

    在前不久一个国外的技术论坛对O/R Mapping进行激励争论,有人把这个东西贬的一文不值,有人有认为这是一场革命。我们用ObjectSpace来比较下O/R Mapping的优劣:
下面是ADO.NET和ObjectSpaces的一个比较

技术
 特点
 什么时候需要使用
 
DataSet and DataReaders  in ADO.NET.
 使用关系模型
高效率
易控制
完全暴露数据库功能
 需要很高性能,可控制性和对数据库进行操作的时候(比如说要建一张表)
关系模型适合于解决你的问题
 
ObjectSpaces
 商业对象(具有一定智能的对象)
和数据库松散偶合
比关系模型更接近于现实世界
 你需要处理复杂的商业对象的适合
性能不是你的主要要求
 

 

很明显那些贬O/R Mapping的人主要抓住的就是它的性能,可以想像我们保存的对象集合(Collection)肯定要比DataTable耗费内存,和处理更多运算。有人做个测试(CSDN上的一个帖子):有7000多条记录的数据表中,GetObjects需要20多秒,而Find只要2秒,使用SqlDataAdapter.Fill方法则不到1秒。我个人做过粗略的测试大概2000条记录,用DataSet和ObjectSpace在界面上几乎感觉不出什么差别。

我个人的观点是:在现阶段赞同O/R Mapping,认为这会大幅度提高我们的软件开发效率,而且现在计算机的性能一般都还可以,所以几个毫秒的差别不会给使用造成很大的问题。而且对象数据库是我们的目标,O/R Mapping也许只是过渡性的东西,说不定再过几十年看历史书也找不到这个概念,我们不应把全部希望放在这个东西上,它毕竟只是一个辅助性的框架,当然也没有必要使劲贬低它,只要它能带给我们好处我认为它就是好的。

2、   一些O/R Mapping框架

这个框架的概念最早出现于Java平台,现在Java平台下用好几种这类工具例如:Hibernate、JDO等等都是开源免费的,这我就不叙述Java下的工具,我们主要说说.NET下的。

NHibernate(免费)

http://sourceforge.net/projects/nhibernate

NHibernate 是模拟java hibernate 的.net实现,当前在.net社区中,对其寄于厚望。这个东西最近推出了新版本,不过我从来没有用过。

XPO(eXpress Persistent Objects)

这个是Developer Express Inc. 公司的产品,这个公司有个很出名的控件XtraGrid。XPO运用了对象缓存池技术其在读写数据库速度上有了很大提高,据说和DataSet不相上下了。不过XPO最大的缺点就是映射文档,他不像ObjectSpace用XML文档来保存映射信息,XPO是用在类或者方法前面加特性(Attribute)来完成映射,如果数据库的很多,实际上用这东西不比写SQL语句好多少,不像ObjectSpace的映射文档点点鼠标就可以完成了。

WilsonORMapper

http://www.WilsonDotNet.com

这个是一个叫Wilson的外国MVP写的,应该是属于比较早的O/R Mapping工具,这东西注册需要50美元。从易用性和其他方面这个工具都还是不错的,而且支持很多种数据库,不像ObjectSpace只支持SQL Server。但这个工具不能夸数据库的表做映射,期望以后的版本会有所改进。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值