.net Lightspeed vs NHibernate

.net Lightspeed vs NHibernate,.net,nhibernate,orm,comparison,lightspeed,.net,Nhibernate,Orm,Comparison,Lightspeed,你有什么经验?Mindscape提供的比较没有太多关于NHibernate的内容。Lightspeed看起来很灵活,但我不太了解性能。Lightspeed的表现如何?使用Lightspeed还有什么缺点吗?我已经使用Lightspeed几个月了,但我是.NET的新手,所以从未使用过NHibernate。到目前为止,我发现它非常容易使用,而且学习曲线很小,而且它不断更新。对我来说最大的好处是支持。查询通常在很短的时间内得到回答,发现的任何错误通常在第二天修复,并在夜间构建中可用。 不知道你说的“光

你有什么经验?Mindscape提供的比较没有太多关于NHibernate的内容。Lightspeed看起来很灵活,但我不太了解性能。Lightspeed的表现如何?使用Lightspeed还有什么缺点吗?

我已经使用Lightspeed几个月了,但我是.NET的新手,所以从未使用过NHibernate。到目前为止,我发现它非常容易使用,而且学习曲线很小,而且它不断更新。对我来说最大的好处是支持。查询通常在很短的时间内得到回答,发现的任何错误通常在第二天修复,并在夜间构建中可用。 不知道你说的“光速表现如何”是什么意思?这家伙看起来很开心{:o)

我最近快速浏览了这两个网站。Lightspeed给我留下深刻印象的是:

  • 他们的工具工作得很好(我想是我用过的最好的VS设计师)
  • 回复非常快。他们回答了问题并添加了功能
对我来说,他们严重依赖约定,而且在大多数情况下似乎没有覆盖。因此,当我决定如何准确映射事物时,我的选项并没有我想要的那么好。据说Lightspeed 3将解决这一问题,以允许您进行更多定制

由于所有的XML,我远离了NHibernate,但后来找到了Fluent NHibernate,它看起来会运行得很好。没有设计器支持,尽管有些人可能会说这是设计的结果(关注对象)。NHibernate似乎也是.NET最常用的ORM,所以它是“安全的”在这个意义上打赌。到目前为止,它已经能够绘制出我能想到的大部分内容


无论如何,由于定制方面的限制,我在Lightspeed上没有取得太大进展。如果我开始了一个符合他们惯例的新项目,情况可能会有所不同。该公司反应如此迅速,我真的很想使用他们的一款产品:)。

我与该产品的一位主要开发人员进行了交谈(杰里米·博伊德)去年,他在新西兰奥克兰进行了技术培训,并提出了这个问题。他似乎认为这比NHibernate快几个数量级。这当然是他的产品,所以他会这么说,但我认为这值得一提。

在过去的六个月里,我一直在使用NHibernate,在工作中记录活跃,在家中使用LightSpeed在我的业余时间

优点/缺点 到目前为止,我发现LightSpeed和具有活动记录的NHibernate都很容易学习

我还没有发现LightSpeed的缺点。我最喜欢的功能是:

  • 约定优于配置。这节省了大量时间并提供了一致的代码
  • 模型类和配置生成器
  • 支持Linq和MySQL 5
我最喜欢Active Record的功能有:

  • 无需XML配置,最常见的配置选项将自动提供
  • NHibernate的灵活性在需要时仍然可用(例如标准查询)
对我来说,活动记录的缺点是:

  • RubyonRails代码示例似乎比C#示例更多
性能 我还没有(还没有)将这两种产品并排进行比较,并在这两种产品上进行相同的性能测试

我猜NHibernate有更深层次的类结构。在使用ANTS Profiler优化我的代码时,我发现对于一个简单的查询,在生成实际的SQL查询之前,会通过NHibernate类进行一次又一次的调用

当然,产生的查询将对ORM的最终性能产生重大影响

LightSpeed和NHibernate都提供延迟加载,而Active Record使NHibernate很容易实现这一点

我认为使用Lightspeed和Linq优化查询更容易,维护代码的人也更清楚。但通常不建议编写NHibernate HQL。

关于性能

急加载和延迟加载没有N+1问题。 包括“命名聚合”。即, 为特定的渴望负载命名 图表,看电影

不要低估这一点。这意味着,如果你加载一个包含200项的列表,大多数ORM在很多情况下都会运行201个查询。Lightspeed不会。它是(极)少数不会运行的查询之一


如果你正在寻找一些在一些边缘情况下快100毫秒的东西,祝你好运基准测试的东西。我在理论上喜欢NH,我不认为我从来没有使用过ORM,但对于我所做的大部分工作,NH完全是过火了-我最终花了这么多时间维护元数据、类文件、映射等,而且它…很有趣。。。测试。好吧,反正是给我们的。

我最近比较了大量的ORM,包括NH和Lightspeed。我专业使用NH,所以我有点偏见,这篇文章是。

看起来他的文章已经转移到这里了:RoR ActiveRecord和Castle ActiveRecord唯一的一点是,它们都实现了相同的模式。它们不需要Lightspeed的缺点是:主键在模型中总是必须被称为Id,Lightspeed希望它们是一个单独的、自动计算的字段。根据他们自己的网站:“我们不希望主键有任何商业价值”。复合密钥支持有点缺乏,在运行LINQ查询时检查SQL探查器会发现它们的实现还远远没有完成……使用LINQ时,缓存和投影都不能正常工作(尽管Mindscape的专有机制按照承诺工作)。如果映射是一个问题,请使用Fluent NHibernate或ActiveRecord。该声明没有明显的限定条件,听起来非常可疑。ORM往往不会为远程数据库调用增加足够的开销,甚至在许多情况下都不会引起注意。只需注意:Jeremy Boyd是