2009-02-19 32 views
8

,我們也在考慮使用ORM,我想要一些意見/比較什麼ORM運行:Telerik的開放存取VS亞音速VS LINQ to SQL的VS活動記錄

我們有一個ORM的基本標準是:易於使用/配置(短的學習曲線),靈活的,有能力將它抽象掉,易維護

這裏是一個列表什麼ORM我們看什麼我們最初的印象是

  1. 開放訪問 - 對於簡單的東西看起來很容易,但似乎不是Ø有很大的靈活性,成本是不是一個問題,我們已經擁有了它
  2. 凌SQL - 看起來使用和配置非常簡單,但缺少一些功能
  3. 活動記錄 - NHibernate的變得簡單
  4. 亞音速 - 看起來非常豐富的功能,但還沒有真正發揮它多少

這裏是我們已經看過,並排除

的奧姆斯
  1. 實體仍處於測試階段
  2. NHibernate的具有遠太大的學習曲線(我們沒有3周嬌嫩學習吧)

回答

4

我們目前使用SubSonic(2.0.3),它是一個絕對的救星。我無法強調它有多棒。但是,我們現在正在考慮由於各種原因(可能是NHibernate或實體)而改變它。這是我的優點和它的缺點:

優點:

  • 很簡單的安裝和使用。
  • 很多很棒的&有用的工具和功能
  • 使用「約定配置」的理念,所以配置很少。它「正常工作」。 (只要你做的事情就是了... :)的方式)

缺點:

  • 你的數據庫設計是非常緊密耦合到您的域設計。在數據庫中進行更改,並且需要更改代碼/域設計。
  • 默認情況下,SubSonic將ActiveRecord模式用於所有數據訪問而不是存儲庫模式,這使得「將其抽象化」變得更加困難。 (儘管我相信在V3.0中,您可以使用缺省的ActiveRecord模板來使用Repository模式)。
  • 很多關於SubSonic未來的悲觀傳言。但傳聞只是:謠言。
3

對於所有的配對這可能是值得的:

如果你現在還沒有3周的時間來學習你選擇的ORM(無論你選擇哪個),你可能需要找到 3周到le當它沒有繪製出你想象中的東西的時候,它會在之後出現。

如果你有一個適度複雜的模型,ORM是不平凡的。您將需要知道您的ORM如何工作,以便您可以告訴它以您想要的方式映射事物。

當然,這就是「知道你的工具」的另一種說法。 :)

+0

這就是爲什麼其中一個要求是將它抽象出來的能力,爲什麼有些東西不能正常工作,我們可以自己編寫它。 – 2009-02-19 18:02:14

1

大多數人會有一兩個經驗的少數人,但很少有人會接觸到所有人。我建議您爲每一個收藏夾設置一個概念驗證工作。獲取每一個動作設定,花費不超過每ORM工具ñ小時(ñ =你決定是合理的。但是太多的時間),你沒有實現你的整個對象模型,一個功能子集將做更多

當你完成時,你將通過設置和所有這些的一些用法。然後,您可以撰寫驗屍報告,團隊可以決定哪個方案具有最佳的疼痛 - 特徵比。

0

我非常贊同BryCoBat(upvoted)。我還想補充一點,如果您已經擁有Open Access,那麼該公司很可能在內部有人,他們已經非常熟悉它,包括您在自己的域中查看的代碼示例,既可以處理微不足道的任務,也可以處理非重要的任務。換句話說:使用你所知道的。

+0

我們擁有開放的接入權限,因爲我們使用rad控制並獲得了完整的Telerik套件 – 2009-02-19 18:04:31

6

我想說你應該看看DataObjects.NET(http://www.x-tensive.com)。它功能豐富,使用起來非常簡單。但它確實將你與你的對象模型聯繫在一起,因爲它決定了數據庫結構應該基於你的對象模型的外觀。這就是說,如果你想能夠忽視數據庫的存在,這是相當不錯的。我們已經使用了它多年,取得了巨大的成功。

1

使用T4模板創建自己的模板。在互聯網上有幾種可用的模式,尤其是T4模板。 有關T4的知識也將允許您編寫可能具有比宏大的範圍的項目,但比編寫自定義應用程序來生成所需腳本的範圍更小。 希望這有助於!

0

如果您不使用Telerik控件,應該選擇LINQ to SQL來快速學習 - 網絡中存在大量不同的教程,視頻和書籍。