我一直在看NHibernate和Linq2Sql。我也打算查看实体框架。可持续性无知量表吗?
即得到提高,当我跟这些ORM的是“他们不能规模化”的问题,这样可以吧?从谷歌我得到他们能够很好地扩展的印象,但最终我认为必须付出代价,是否值得为更简单的业务层付费。
我一直在看NHibernate和Linq2Sql。我也打算查看实体框架。可持续性无知量表吗?
即得到提高,当我跟这些ORM的是“他们不能规模化”的问题,这样可以吧?从谷歌我得到他们能够很好地扩展的印象,但最终我认为必须付出代价,是否值得为更简单的业务层付费。
这是一个很好的问题,恕我直言,他们可以扩展一样好任何自定义DAL。我只使用nHibernate,所以我只关注它和它具有的可以帮助扩展系统的功能。
现在有了这样的说法,我认为最初调整一个自定义DAL层比较容易,因为您的构造很亲密,可以对它进行微调;然而,一个好的ORM将提供大量的钩子,让你可以优化很多。你只需要花一些时间来学习它。
我也觉得,如果你有一个代码性能的关键领域,你不能让你的ORM您的要求范围内工作,那么你的应用程序,你可以自定义生成自己的DAL层的面积很小。如果您使用的是像样的设计模式,例如由工厂创建的Repository,那么您所需要做的就是替换您的存储库的实施。
Hibernate Shards正在ported to NHibernate,这将允许水平缩放。
也有一些非常酷的黑客喜欢this one实行分片。
因此,答案是肯定的,NHibernate的可以缩放,在持久性,无知和完全透明的方式。
这是不正确的说,ORM内置的应用程序不能很好地扩展。当然,它发生在那些粗心大意或懒惰的开发者通过编写生成可怕的低效SQL的代码来滥用ORM。构建高性能应用程序意味着理解有关所有可爱的抽象实际上在做什么。然而,避开这个陷阱并不需要太多。使用ORM并不意味着从不打开SQL分析器或NHibernate Profiler。
而关于SP快得多的说法,请阅读this和this。此外,ORM(NHibernate,至少)给你很容易的方式来使用SPs,如果你需要的话。
扩展持久性/ ORM是什么意思? – 2009-02-13 13:48:59
哈哈,这个问题的岩石 – 2009-02-13 14:25:06