LLBLGen Pro 
满意度:
撞头度:
       作为一个商业组件,可以说它是一个令我不知所措的一个工具,它提供的功能超出了我的想象,犹其在易用性上,提供了一个非常漂亮的界面,可以很自由的制作出表然后直接生成业务层的代码,这一点是非常不错的。它支持Oracle、IBM DB2、Firebird、MySql、SqlServer、Access这几种数据库,基本上还是够用了的。
      它最大的特色在于对数据库的存储过程的支持,这一点是非常让人兴奋的,毕竟尽管不少架构师都认为存储过程造成了数据库移植的难度,但要做高性能的数据库应用程序,存储过程是一个首选方案,比如插入一张图片的二进制数据到数据库中时,存储过程无论如何都要比直接写个Sql语句要快得多,同时,在具体进行开发分工时,对于前台与后台的分工上显得也比较明确,更能够有效地利用人力资源。
  它能够直接生成基于vs.net2003的解决方案,对中文的支持也非常不错,但可惜的,它提供的数据库表的浏览器并不支持直接编辑,同时也没有关系视图的表示,这样的话,实际上它显示UI界面的意义并非十分重要,最终的数据库设计还是得依赖于对数据库的直接操作。换而言之,它仅是一个由表到实体类的代码生成器,虽然看似灵活,实际上在真正的实际操作中,需要自己的更改代码的部分还是比较多的,这对于一个称之为O/R Mapping的工具来说,是一个不够完善的地方。

NHibernate 
满意度:
撞头度:
  作为从Java世界中移植而来的工具而言,Hibernate的成功是有目共睹的,然而这并不意味着NHibernate的成功,尽管听说有参与了Hibernate开发的人员加入了NHibernate阵营,但这并非表示事情很乐观。如果NHibernate能够在今年6月份前发布1.0的release的话,那么还可以满足一下大众的需要,但根据目前的进度估计及目前NHibernate的相关资料分析,6月份前要发布一个较为理想的版本,难度还十分之大。
  从严格意义上来说,NHibernate是相对于其它的O/R Mapping组件拥有更成熟的思想与构架,而且有着Hibernate的皇族血统,这对于.NET平台下的开发的意味是非常巨大的。NHibernate在灵活性上也具有其它组件不可比拟的优势,但可惜的是,毕竟NHibernate的JAVA血统过浓,移植的可靠性还需要一段时间来进行检验,同时对于企业级的应用,我相信追求稳定性的大多数人更宁愿肯选择微软的解决方案(就算微软的解决方案并不理想)。而且,它的发布实在是太慢了,如果等到微软的vs.net2005推出后再发布的ObjectSpace组件正式release了的话,NHibernate的前景就比较难料(毕竟我们还不知道正式release的ObjectSpace会长成什么模样)
  不过,根据世界范围来看,NHibernate的关注人群非常之多,它是一个在.NET下倍受关注和推崇的项目,在远景规划上有现成的方案可以参考,还有一点重要的是,以微软的作风,ObjectSpace应该不会提供多种类数据库的支持,然而这对于许多开发人员来是,却是非常重要重要的,所以从一定意义上来说,NHibernate在一段时间内的发展将会是乐观的。

EntityBroker
满意度:
撞头度:
  这又是一个商业组件,商业组件在构架上未必比开源的项目更好,但商业组件有一个好的地方在于有良好的技术支持与售后服务,用起来比较放心,不必像开源组件那样必须等到下一个版本的release。
  EntityBroker 是一个相对比较好的组件,它的特色在于对COM+ 事务的支持,这一点是大多数O/R Mapping组件没有做到的。不过,对于习惯了数据绑定的开发人员来说,使用EntityBroker 并不是一个好的选择,它在这方面的支持可谓是恶劣。它有一个现象就是查询一个对象时,效率非常之高,但如果你想一次性弄出一堆对象来的话,效率就会很低下。尤其是进行诸如DataGrid的绑定的时候,数据量一大,其效率很难令人难受。这可能是由于EntityBroker 在查询机制上过分强调了功能的缘故。
  我个不太喜欢这玩意,不过它的好评却是不可忽视的。

Gentle.NET
满意度:
撞头度:
      作为.NET开源世界中的一分子,Gentle.NET也是一个比较不错的组件,虽然相对于NHibernate来说,它出现得太迟了一些,但它提供了一系列不可忽视的特点,并且比NHibernate更早地进行了1.0版本的release,从它的版本历史上来看,更新频率是非常快的。
  根据Gentle.NET的测试文档分析,它已经达到了可以满足一般性的需要的目的,尤其它对数据库种类的支持,包括了Firebird、Jet、MySQL、Oracle、PostgreSQL、SQLite、SQLServer、SQLServerCE、Sybase,可以说这是令人非常兴奋的,这意味着在数据库间的代码移植难度被大大地降低了。另
  从国内的情况看来,Gentle.NET的资料非常少,研究它的人似乎也并不多。甚至在Gentle.NET自己的文档方面,也令人很不满意,没有提供一个使用该组件的良好指导,仅仅是提供一个测试驱动的项目,使用者要清楚具体的用法,不得不自己去揣摩。不过,如果研究过持久化设计的人,使用这个组件倒是非常顺手的,因为它与NHibernate一样,是基于鲁棒性的持久化设计的。
       Gentle.NET是基于特性映射的,这与NHibernate有着极大的不同:从一般的应用级别开发而言,特性映射是完全够了的,但对于企业级较大一些的应用来说,特性映射是远远不够的。因为复杂的映射过程需要一个集中管理的界面来进行反映,而Gentle.NET目前采用的特性映射的方式,很显然在集中管理上并无法起到有力的支持,如果数据库表中的字段有部分更改,Gentle.NET的鲁棒性就会受到挑战,这个挑战不是来自于功能上的,而是来自于管理上的,代码生成器由于生成过程的直观性与框架是一样的差,所以即使有MyGeneration这种工具,Gentle.NET也无法避免字段带来的种种问题。

XPO.NET
满意度:
撞头度:
  作为Devexpress公司出品的产品,它一出世就倍受大家的关注,就应用上而言,也是非常广泛的。XPO支持的数据库种类很少,仅仅是Access与Sql Server。作为一个商业组件,Devexpress公司提供了完整的源码,用户可以自由地与源码进行修改和变化。XPO中的数据库对象是从MashalByObject继承而来的,可以继承用的基类比较灵活,可以选择是要由系统来自动生成主键,还是通过代码自定义主键,或者全部都手工定义。
  XPO.NET在特性上比较平平,没有什么很耀眼的地方,感觉上比较朴素,也很稳定,不少人都使用了XPO作为自己的数据层构造的首选。它与Gentle.NET一样,都是利用特性映射来自动生成数据库及其中的表,使用上还算方便。
  虽然如此,但XPO.NET有一些让人用起来很不爽的地方,首先,几乎没有XPO的代码生成器(虽然我写了一个,但因为XPO本身特性的原因,受到的限制非常多),开发者需要费大量的时间去构建一张表或者是其它什么东西,感觉仿佛回到了写SQL创建数据库与表的时代。其次,它强调由代码到数据库,重心非常明显,如果尝试做一个由表到XPO的代码生成器的话,会发现,一般情况下,对于原有的数据库结构都是很有必要进行调整的,也就是说,XPO.NET没有过多地考虑映射已存在的数据库结构的能力(虽然它看起来好像提供了支持,但你如果知道主键必须是int或uniqueidentifier中的一种的话,你就不会这样想了)。
  作为一个O/R Mapping组件,XPO.NET具有很强的可用性,但有时候往往会带来一些麻烦。

转载于:https://www.cnblogs.com/William_Fire/archive/2005/03/09/115818.html

小评几种O/R Mapping工具相关推荐

  1. python在线工具-6 种 Python 数据可视化工具

    原标题:6 种 Python 数据可视化工具 英文:Chris Moffitt,编译:伯乐在线/李加庆 简介 在 Python 中,将数据可视化有多种选择,正是因为这种多样性,何时选用何种方案才变得极 ...

  2. python数据可视化的特点_6 种 Python 数据可视化工具

    原标题:6 种 Python 数据可视化工具 英文:Chris Moffitt,编译:伯乐在线/李加庆 简介 在 Python 中,将数据可视化有多种选择,正是因为这种多样性,何时选用何种方案才变得极 ...

  3. python怎么做彩票概率_小白学数据小抄放送 Python,R,大数据,机器学习

    原标题:小白学数据小抄放送 Python,R,大数据,机器学习 大数据文摘作品,转载要求见文末 作者 | Elaine,田桂英,Aileen 导读:前段时间小白学数据专栏出了一期Python小抄表,后 ...

  4. python最强脚本工具_8种常用的Python工具

    Python是一种开源的编程语言,可用于Web编程.数据科学.人工智能以及许多科学应用.学习Python可以让程序员专注于解决问题,而不是语法.由于Python相对较小,且拥有各式各样的工具,因此比J ...

  5. 一个运维项目的大概流程,附带20种运维开发工具

    项目前期 产品模型-开发-测试(安全)-上线 立项: 初期: 1)需要的服务器(物理机,虚拟机),数据库,环境,带宽 2) 项目运维的部署方案(也为了后期方便新人的操作) ,比如环境规划(具备一定的扩 ...

  6. 6种电脑录屏工具,免费在线,桌面端Windows和Mac均适用

    如果你想做一个教程类博主,不管是游戏类的,科技类的,还是语言类的,你首先需要一个不错的电脑录屏工具.自自媒体大流行开始以来,对电脑屏幕录制的需求有不断增长.来自不同领域的专业人士,例如教育领域的专业人 ...

  7. 在家阳台做个小温室,种点小白菜和菠菜

    在家阳台做个小温室,种点小白菜和菠菜 2020年疫情大爆发 2020年疫情席卷全球,提倡在家少外出.闲来无事,在家阳台做个小温室,种点小白菜和菠菜. 种菜我也是小白,纯属怡情养性.记录一下种菜学习过程 ...

  8. 圆弧防线用计算机怎么算,一种圆弧形放线工具的制作方法

    本发明涉及施工放线工具,更具体地说,涉及一种圆弧形放线工具. 背景技术: 施工放线工具是工程中常用的一种工具.在工程施工中经常需要对铺装地面.建构筑物以及模板.钢板等材料进行各种复杂的形状.线条或图案 ...

  9. 一文读懂:程序员为什么要学会画流程图 11种流程图的绘制工具:processon,wps,draw.io, 迅捷画图等 详细说明使用processon绘制流程图 详细说明绘制流程图

    这里写目录标题 为什么要学会画流程图 11种画流程图的工具 processon wps draw.io Zen Flowchart xGraph lucidchart boardmix plantum ...

最新文章

  1. 【FFmpeg】自定义回调函数处理AVIOContext中的数据
  2. 高速串行总线设计基础(四)眼图的形成原理
  3. html src 图片不显示图片,css中不用src也让图片显示的方法是什么?
  4. C#的static constructor抛了异常会怎么处理?
  5. 未来计算机将具有图像识别 定理证明,[单选] 低温计与高温计所测温度的分界线为()。...
  6. C# - 创建List属性的简单方法
  7. c语言中循环结构的作用,C语言中对于循环结构优化的一些入门级方法简介
  8. 第二次冲刺阶段 站立会议09
  9. jquery选择器小知识点们
  10. STM 事务 ACID
  11. 2.2.4 ES 6语法与ES 5语法
  12. Vanishing point detection
  13. NumPy 学习 第三篇:矢量化和广播
  14. 湖南c语言程序设计,C语言程序设计
  15. 百度NLP工具LAC初体验:分词,词性标注,命名实体识别
  16. ExtJS面板的使用(Ext.Panle、Ext.TabPanel、Ext.Viewport)
  17. 对待客户,除了服务要好以外,态度也一定要强硬
  18. CANopen伺服控制-服务数据对象(SDO)详细解析
  19. 硬件分析之:有源精密检波电路的分析
  20. 简单易行的matplotlib中英文混排(设置中文为宋体,英文为times new roman)

热门文章

  1. netcat使用方法_记一次NC(NETCAT)传输文件实战
  2. Spring Cloud整合Nacos实现动态配置
  3. STN可以增强CNN网络
  4. 三星w2014android,三星W2014评测:机身细节及内部设计
  5. java jtable defaulttablemodel_java – JTable和DefaultTableModel
  6. mybatis mysql uuid_spring boot整合mybatis利用Mysql实现主键UUID的方法
  7. hive case when语法_SQL中CASE表达式的妙用
  8. 组合数的和(java)
  9. sklearn随机森林展示各个特征权重
  10. linux添加ssh公钥免密登录