2011-04-06 66 views
2

這是我在堆棧溢出的第一個問題,所以先謝謝你的幫助! :)我應該繼續使用我自制的ORM嗎?

在過去兩年中,我開發了一個自制的.NET ORM,我在一些中小型項目中使用。其主要特點是:從數據庫

  • 映射使用屬性
  • 豐富的對象語法編寫SQL語句的不同使用RDBMS的供應商
  • 連接和事務,以不同的使用RDBMS的供應商
  • 延遲加載的對象,自動驗證
  • 先前查詢結果的自動緩存
  • 使用實體結構自動生成數據庫模式
  • 實體的自動定位基於主題文化

現在我在一個十字路口:我必須決定是否與我的解決方案去進取,實現類似併發控制等功能,或宣佈其死亡,與開始現有的解決方案,如nHibernate。

我是那種人誰喜歡不斷滾了,自己重塑-的輪等等... :)

我缺少的東西?這是現在開始走在一條更安全的道路上嗎?

非常感謝您對我的基礎英語感到抱歉。

亞歷山德羅

+3

我認爲現在是用現有的ORM幫忙的好時機,因爲您已經知道構建一個基礎知識。你可能真的幫助過一個已經存在的開源項目。 ORM不是光榮的工作,所以他們可能會使用能夠編寫一個人的人。 – Horus 2011-04-06 13:34:47

+0

如果它具有強大的功能和驚人的性能,您應該繼續...如果不是,您應該切換到更強大的解決方案 – Andre 2011-04-06 13:36:14

+0

它具有良好的性能,因爲它很小且直接。我擔心nHibernate或其他大型ORM可能會因爲我的需要而過度殺傷和自我挫敗。 – Alessandro 2011-04-06 13:46:11

回答

5

我是誰喜歡不斷滾了,自己自創一套最輪等那種人... :)

這裏的另一個名字是軟件開發商。有時候,我們都喜歡爲已經解決的問題創建自己的解決方案。數據訪問是人們繼續根據各種原因創建自己的解決方案(比其他更合理)的領域之一。

但事實上,一旦您發現需要諸如併發控制和其他高級功能之類的東西,您應該認真考慮採用其中一種更成熟的ORM,無論是NHibernate, ADO.NET實體框架或其他解決方案。如果這是你的工作,而不僅僅是一種愛好,那麼這更加真實。花時間重塑已建立穩定的東西正在浪費你的僱主的錢。

不管你現在擁有的是多麼好,自己維護它都不是一種實際或明智的努力。你有兩個實際的選擇:

  1. 如果你的ORM只是大腦融化真棒,然後打開它向社區,看看是什麼響應。如果你有其他志趣相投的人幫助,它可以變得實際。誰知道;它可能是是下一個NHibernate的。請記住,您的僱主(如果這是您的工作)可能對幫助社區毫無興趣,並且對您製作軟件的工作更感興趣。還要認識到,如果您的ORM是在公司時間開發的,那麼您可能沒有權利將其開放給社區
  2. 只需切換到主流ORM即可。
+0

+1這個「另一個名字就是軟件開發者」的評論,儘管整個帖子都非常出色。 – JeremyDWill 2011-04-06 13:41:28

+0

是的,我認爲你在這裏有一個觀點。我忘了說這個活動更多的是愛好水平。我有一個主要職業(與公司的定製ORM,但這是另一回事),但我喜歡嘗試新的東西,如果可能的話,不時賺更多的錢! :) – Alessandro 2011-04-06 13:44:04

+0

@Alessandro:如果這是在愛好層面,那麼不要強迫任何事情做!如果這是一種嗜好,你應該這樣做,因爲你喜歡它。如果你喜歡在ORM上工作,那麼繼續工作,但要考慮打開它。 – 2011-04-06 14:08:50