我一直在看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