2012-01-11 23 views
4

我正在評估ORM的第一次。請建議我爲下一個項目選擇哪一個。實體框架4.1 VS Nhibernate,ORM中的noob

我先寫了幾個示例代碼與EF 4.1代碼。在開始與Nhibernate同樣的練習之前,我想知道是否有人在生產應用中有過兩種經驗。

我的評價標準

速度
  1. 數據庫訪問
  2. 學習曲線(因爲我是新來的ORM)
  3. 社區支持
  4. 教程/書籍可用性
  5. 別的我應該考慮(因爲我是ORM的noob)

我希望在生產級應用程序中使用ORM的經驗者回答我的問題。

在此先感謝!

我知道這個問題可能有點危險問;)

+0

您應該將其轉換爲社區wiki :) – 2012-01-11 19:47:15

+0

@Claudio現在我無法在編輯此問題時看到社區wiki選項。 – Mahesh 2012-01-11 19:49:49

+0

NET ORMs:http://stackoverflow.com/questions/1377236/nhibernate-entity-framework-active-records-or-linq2sql/ – 2012-01-12 09:50:54

回答

3

如果你是一個菜鳥到ORM,只需要基本的功能,你可能會發現實體框架和NHibernate是過來殺掉,應該尋找一個重量輕的像巨型:

https://github.com/robconery/massive

那說有你與EF面對VS NH

  1. EF兩個主要問題是所有微軟支持等所有的默認工具使用EF。使用EF來簡化初學者代碼。
  2. NHibernate更成熟,功能更強大(如果你需要的話)還有一個很好的開發社區和大量關於它的博客信息。

,如果你想簡單/快,但不支持我會選擇大規模的,如果你想輕鬆和MS的支持,但在某些方面的限制,或NHibernate的,如果你要學會適當的ORM的時間EF。

希望這會有所幫助。

+0

我累了大量和petapoco,我發現petapoco是爲我的需要更好一點。現在,我將和它一起生活一段時間,看看事情進展如何。感謝您向我介紹微型奧林匹克。我沒有意識到這一點。 – Mahesh 2012-01-14 15:15:29

1

以及即時通訊我個人的經驗NHibernate的一直是正確的選擇,在複雜的情況下給了我更好的時間結果,這是一個很容易學習。

我學會了它,然後嘗試了實體框架,我發現它更容易學習nhibernate即使在那一刻,我對ORM一無所知。

社區支持和教程和書我可以說他們都很好,並有很多材料可以學習。

現在我可以使用它們,但仍然喜歡Nhibernate更多。

6

已經使用EF 4。1和Castle ActiveRecord(基於NHibernate),我會評價他們如下:

速度的數據庫訪問 - NHibernate的任何事情遠程複雜,否則大致相同。 EF的問題在於它創建瞭如此複雜的SQL,因此很難知道如何優化它,或者甚至有可能這樣做。

學習曲線 - 我個人發現EF更容易入門,但其他人可能會有不同的感覺,而且都有一定的學習曲線。

社區支持 - 取決於您的意思是「支持」。您可以在網站(和本網站)上找到許多信息。 NHibernate是開源的,而EF則由MS控制。教程/書籍 - 我相信現在EF有更多'官方'資源可供使用,但是在論壇上搜索可能會讓你找不到書本上的東西。

Anthing else - 意識到ORM的目的是簡化開發人員的數據訪問層。但是,這兩個ORM(以及幾乎所有其他重量級ORM)都希望您使用某些編碼模式來實現此簡化。雖然編碼模式執行不是一件壞事(有些人會認爲這是必須的),但這是您在選擇之前必須準備的東西。

+0

爲NH增加書籍NHibernate In Action和NHibernate Cookbook。 NH還有更多的資源,只有論壇。 – gdoron 2012-01-12 08:12:40