NHibernate-有用性

NHibernate-有用性,nhibernate,Nhibernate,我在一个软件和硬件开发农场工作。今天,我的一位同事告诉我,NHibernate只对小项目有用,对于复杂或大型项目必须避免。而且,它使代码更难更改 这些说法正确吗?Ebay使用Hibernate(NHibernate移植的Java版本)。我不认为这是一个小项目。 至于更改代码,请考虑如下:假设我们需要向对象添加新属性。 以下是手动滚动数据访问层的操作: 将该列添加到db表中 更改每个 处理该对象/表。 这通常是几个存储 以我的经验来看,程序 更改映射层中的代码 将属性添加到对象 以下是对NHi

我在一个软件和硬件开发农场工作。今天,我的一位同事告诉我,NHibernate只对小项目有用,对于复杂或大型项目必须避免。而且,它使代码更难更改

这些说法正确吗?

Ebay使用Hibernate(NHibernate移植的Java版本)。我不认为这是一个小项目。

至于更改代码,请考虑如下:假设我们需要向对象添加新属性。

以下是手动滚动数据访问层的操作:

  • 将该列添加到db表中
  • 更改每个 处理该对象/表。 这通常是几个存储 以我的经验来看,程序
  • 更改映射层中的代码
  • 将属性添加到对象
以下是对NHibernate的处理:

  • 将该列添加到db表中
  • 将属性添加到HBM文件
  • 将属性添加到对象

    • 必须同意丹尼尔·奥古斯的第一点

      关于第二个问题,“这会使代码更难更改吗?”,我将提供一个总体视图。任何时候,当你使用一些现成的东西时,你都会遇到一些限制,这些限制可能不容易克服。即使源代码可用,您也可能不希望对其进行修改,因为担心偏离到破坏性更改的程度


      软件开发人员的一部分工作是确定第三方代码的优点是否大于缺点。

      看,我会告诉你的同事停止传播FUD。有趣的是,对我来说,NHibernate最适用于最有可能发生巨大变化的大型复杂项目。我同意dotjoe,NHibernate似乎更适用于大型项目,而更基本的ORM则适用于小型项目。事实上,对于大多数(<8个实体)项目来说,NHibernate被过度设计了。知道Ebay使用Hibernate很有意思,但是有没有使用NHibernate的大型网站?或者任何ORM(不包括使用linq to sql),我不知道有任何特定的高知名度网站使用NHibernate,但是NHibernate google组(groups.google.com/group/nhusers)中的许多人都在非常大的项目上运行它。就备受瞩目的网站go而言,Myspace使用iBatis。还请记住,使用RubyonRails或Django构建的任何东西在默认情况下都使用ORM。