有這個網絡應用程序,它依賴於直接從數據庫生成的一種數據訪問庫(簡單數據對象和關聯對象來執行它們的CRUD操作)。現代化'手動滾動'數據訪問庫
所以從Person表
ID
Forename
Surname
DoBirth
你會得到與領域生成Person類:
ID, Forename, Surname, DoBirth
從他們的數據庫列類型。
和輔助類PersonPersister
與
Create(Person p)
Update(Person p)
Delete(Person p)
方法。
它也會在數據庫上創建必要的CRUD sprocs。
當我開始時,我對此感到不安,除了對nHibernate和MEF的簡短調情之外,我習慣於手寫我的數據訪問層。我所有的擔憂似乎都將在現在取得成果,一年之後,我們正在與一個更大的開發團隊一起進行另一個階段的開發工作,而且這些問題已經開始出現。
基本問題是,作爲開發者,我們無法控制生成的內容,也無法對DAL進行版本化。
每次我們發佈一個版本,我們都要花很多時間手動配置應用程序,dal和databse才能使其運行。通常情況下,DAL已經從dev db中生成,然後應用於實時db,這當然缺少在開發過程中創建的表/ sprocs等。
在這些時候,我經常發現自己走向jobserve.com,儘管這個問題我不喜歡在這裏工作。
我有過的想法包括修改代碼生成器,以便在明確的DAL處理Visual Studio項目中覆蓋源文件 - 這些可以在CVS中跟蹤並且也可以手動編輯。有沒有人有這種戰略的積極經驗?目前唯一的構建產生的神器是一個DLL,所以看到變化的歷史是不可能的。
除了使用ORM(管理不是粉絲 - 是的,我知道),我們有什麼選擇,只要合理化,讓自己控制?我們仍然需要一個自動化元素,但目前我們擁有的數量是不可行的。
我們非常幸運能夠在這裏獲得MSDN訂閱,所以我們使用自動構建,最新的Visual Studio等來運行TFS 2010,但是由於我們開發環境的這一方面,感覺就像我們比時代落後十年或更多。
聽起來很多流失的給我。我開發了一個項目,開發人員在提交影響數據庫模式的代碼時必須更新「發佈」SQL腳本。 (作爲發佈週期的一部分,該腳本已經過審查並應用到客戶端的數據庫中) – Matt 2011-01-31 15:19:05
'Churn'是描述它的一種方式:-o – 5arx 2011-01-31 15:23:07