使用LightSpeed是什么体验?Mindscape 提供的比较并没有过多地说明 NHibernate。Lightspeed 看起来很灵活,但我对性能的看法并不多。Lightspeed 的表现如何?使用 Lightspeed 还有什么缺点吗?
6 回答
在过去的六个月里,我一直在工作中使用 NHibernate 和 Active Record,并在业余时间在家中使用 LightSpeed。
优点/缺点 到目前为止,我发现 LightSpeed 和带有 Active Record 的 NHibernate 都易于学习。
我还没有发现 LightSpeed 的缺点(还)。我最喜欢的功能是:
- 约定优于配置。这样可以节省大量时间并提供一致的代码。
- 模型类和配置生成器。
- 支持 Linq 和 MySQL 5。
我最喜欢 Active Record 的特性是:
- 无需 XML 配置,自动提供最常用的配置选项。
- NHibernate 的灵活性在需要时仍然可用(例如条件查询)。
Active Record 对我来说的缺点是:
- Ruby on Rails 代码示例似乎比 C# 示例多
性能 我还没有(还)并排比较这两种产品并同样对两者进行性能测试。
我猜想 NHibernate 的类层次结构更深。在使用 ANTS Profiler 优化我的代码时,我发现对于一个简单的查询,在生成实际 SQL 查询之前,会通过 NHibernate 类调用后调用。
当然,产生的查询将对 ORM 的最终性能产生重大影响。
LightSpeed 和 NHibernate 都提供延迟加载,而 Active Record 使 NHibernate 轻松加载。
我认为使用带有 Linq 的 Lightspeed 优化您的查询更容易,并且对维护您的代码的人来说更清楚。而通常不建议编写 NHibernate HQL。
关于性能,来自此页面
急切和延迟加载没有 N+1 问题。包括“命名聚合”。也就是说,为特定的急切负载图命名。观看截屏视频。
不要小看这一点。这意味着如果您加载一个包含 200 个项目的列表,大多数情况下,大多数 ORM 将运行 201 个查询。光速没有。这是(非常)少数不这样做的人之一。
如果您正在寻找在一些边缘情况下快 100 毫秒的东西,那么祝您好运。理论上我喜欢 NH,而且我认为我永远不会使用 ORM,但对于我所做的大部分工作来说,NH 完全是矫枉过正——我最终花了很多时间来维护元数据、类文件、映射等人,它是......有趣的......测试。好吧,无论如何,这是给我们的。
我最近快速浏览了两者。Lightspeed给我留下深刻印象的是:
- 他们的工具效果很好(我认为我用过的最好的 VS 设计师)。
- 非常快速的反应。他们回答了问题并添加了功能。
对我来说最引人注目的是它们严重依赖约定,并且在大多数情况下似乎没有覆盖。因此,在决定如何准确映射事物时,我的选择并没有我想要的那么好。据说 Lightspeed 3 将解决这个问题,让您可以进行更多自定义。
由于所有的 XML,我远离 NHibernate,但后来发现 Fluent NHibernate,看起来它会很好地工作。没有设计师支持,尽管有些人可能会说这是设计使然(专注于您的对象)。NHibernate 似乎也是 .NET 最常用的 ORM,所以从这个意义上说,它是一个“安全”的赌注。到目前为止,它已经能够映射出我能想到的大部分内容。
无论如何,由于自定义限制,我在 Lightspeed 上并没有走得太远。如果我开始一个可以符合他们惯例的新项目,那可能是另一回事了。该公司反应迅速,我真的很想使用他们的一种产品:)。
我最近比较了一大组 ORM,包括 NH 和 Lightspeed。我专业使用NH,所以我有点偏见,文章在这里。
我已经使用 Lightspeed 几个月了,但我是 .NET 的新手,所以从未使用过 NHibernate。到目前为止,我发现它很容易使用,学习曲线很小,并且会不断更新。对我来说最大的优势是支持。查询通常会在很短的时间内得到答复,并且发现的任何错误通常会在第二天修复并在夜间构建中可用。不确定“Lightspeed 的性能如何”是什么意思?这家伙看起来很开心{:o) http://omarbesiso.spaces.live.com/blog/cns!70A5B53D721071B7!473.entry
去年,我在新西兰奥克兰的 TechEd 上与该产品的一位主要开发人员(Jeremy Boyd)进行了交谈,并提出了这个问题。他似乎认为它比 NHibernate 快了几个数量级。这当然是他的产品,所以他会这么说,但我认为值得一提。