format Blog

给我个权限,我format你的硬盘.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、   O/R Mapping的优劣

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

技术

特点

什么时候需要使用

DataSet and DataReaders  in ADO.NET.

  • 使用关系模型
  • 高效率
  • 易控制
  • 完全暴露数据库功能
  • 需要很高性能,可控制性和对数据库进行操作的时候(比如说要建一张表)
  • 关系模型适合于解决你的问题

ObjectSpaces

  • 商业对象(具有一定智能的对象)
  • 和数据库松散偶合
  • 比关系模型更接近于现实世界
  • 你需要处理复杂的商业对象的适合
  • 性能不是你的主要要求

 

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

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

2、   一些O/R Mapping框架

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

NHibernate(免费)

http://sourceforge.net/projects/nhibernate

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

XPOeXpress Persistent Objects

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

WilsonORMapper

http://www.WilsonDotNet.com

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

目前.NET主要映射框架(工具)就是这几个了,其他的我都还不了解。


             注:其中一些资料来源于
CSDN论坛上对O/R Mapping讨论的帖子

---------------------------------------------------------------------------------------
由于ObjectSpace要推迟到2006年,新版的Vs.NET里面也不再有ObjectSpace,古随笔只能暂时告一段落。谢谢
posted on 2004-05-18 17:45  format  阅读(2008)  评论(7编辑  收藏  举报