行情北京 上海 广州 深圳 沈阳 济南 郑州 武汉 长沙 南京 西安 成都 昆明 杭州
e杂志下载
 首页 | 资讯 网刊 视频 评测  企业:服务器 网络 存储 通信 安全 技术开发 信息化-方案 | ITPUB IXPUB
 商务笔记本 台式机 投影机 打印扫描 办公产品 耗材 软件 学院 下载 驱动  家庭数字家电 家庭组网
 个人DIY硬件 | 手机 GSM CDMA 无线电 GPS| 数码影像 相机 摄像机 | 消费数码 MP3 | 论坛 | 经销商社区
 报价中心 三维图秀 产品评论 产品大全 使用手册 术语详解 厂商专区 二手市场 维修服务 疑难解答 IT搜索
 

震撼与灵巧——移植到.NET对象关系映射

作者:IT168 Anders Liu编译 发表日期:2007-04-04 03:10
  内容导航: 上一页 1 2 下一页
 

      

    [IT168 技术评论].NET世界里,对象关系映射已经变成了常见的活动领域。对于一些开发者来说,ADO.NET已经足够处理他们的数据需求了。但对于另外一些开发者而言,他们更青睐于使用完整的面向对象技术,这个时候就该ORM闪亮登场了。

       ORM之所以受到广泛关注,是因为他们有助于帮助开发者组织代码,使他们的对象可以更好地集成到新的应用程序中。过去的几年中已经出现了很多ORM工具,但问题同样随之而来——如什么时候将对象最终保存到数据库中、消耗的时间过长等。

       微软曾企图通过ObjectSpaces ORM软件来切入这个领域,但该公司很快就停止了OjbectSpaces的开发。就像Longhorn操作系统一样(其客户端产品已经发布,并更名为Vista,而Longhorn Server还在开发中),为了发布该产品,微软放弃了很多特性。这就给一些开源社区和第三方数据访问软件供应商留下了市场,由他们来填补这一空白。

       但这个空白是短暂的——微软的很多有影响力的开发领袖们正在向Orcas——Visual StudioC#语言和VB语言的下一个版本——中添加LINQ技术。LINQLanguage Integrated Query,语言集成查询)是对Microsoft .NET Framework的一项改进,目的在于简化那些负责构建数据查询的开发者的工作。

 

ORM近在眼前

 

       自从微软在2004年提出ObjectSpaces以来,涌现了很多ORM软件。一个最有影响力的解决方案就是从一个Java开源项目Hibernate发展来的 NHibernate。它为面向对象开发提供了持久的类。NHibernate的开发者尝试为其提供与Hibernate类似的API,使其具有通用性。

       随着NHibernate(由Hibernate.org支持)的出现,很多公司都提出了面向数据的开发者解决方案,这些公司包括AlachisoftEntitySpaces.NETProgressRogueWaveSoftwareTreeWilson ORMapperX-tensive等等。

 

       上个月,Hibernate.org发布了NHibernate 1.0.4.NHibernate依赖第三方代码生成软件来将映射文件生成为源代码。

 

       “我不敢说NHibernate易于上手。实际上,我认为恰恰相反,”NHibernate的首席开发者Sergey Koshcheyev说,“因为NHibernate基于很多现有的与会话管理相关的概念和原则,这些都很难上手。

 

       “但从长远来看,花些时间学习这些可以鼓励我们做正确的事情。”Koshcheyev说。

 

       还有一样东西可以使得NHibernate在很长一段时间内都能有用,那就是钩子(hook),使用钩子可以为NHibernate添加功能插件。“当然,如果你听听用户的意见,就知道现有的钩子根本就不够用,有太多太多的东西需要添加到新版本中,”Koshcheyev说,“这些钩子包括如何在NHibernate函数中回滚SQL。”

 

 

谈谈代码生成

 

       代码生成从来都是备受争议的。在ORM领域,很多人认为这可以快速地创建解决方案,但管理其生成的代码很消耗时间。

       另外一款ORM工具——Genome——不会生成任何需要维护的代码,因此这个过程还是可以忍受的。

       TechTalk的股东Christian Hassa创建了Genome ORM,他说:“当需要在项目中使用ORM工具时,肯定会带来一些开销,比如你需要熟悉它的API,并且克服或多或少的学习任务。当你后来沉醉于ORM所带来的利益时,你就会觉得这些付出还是值得的。

       “在一开始很容易被ORM的神话所迷惑,因为它看似可以生成大量的代码,很快实现一个功能完整的解决方案,”Hassa说,“在第一次交活时,它看起来的确节省了时间。但之后,你就会慢慢发现这些生成的代码已经成了你的代码资产的一部分,这时你才意识到任何自动生成的代码也是需要维护的——根本别想重新生成它们。

       “一开始的快速取胜并不代表着今后维护解决方案时的真正开销,”她说,“给人一切都是‘自动化’的假象的解决方案很快就会土崩瓦解,就在你需要处理其中的琐碎问题的时候。”

上一页 1 2 下一页
【内容导航】  
第2页 回归SQL
【相关文章】  
下一篇:新BUG—WPF中WindowInteropHelper的一个BUG
©版权所有。未经许可,不得转载。 【责任编辑:孙蓬阳
 
  网友评论