標籤:ar sp for 檔案 資料 問題 bs cti 代碼
我本想把這個問題放到博問去,前幾次有去博問問過之類的問題,無奈大神們可能都不屑回答別人的低級問題。所以放到隨筆裡,一方面把自己對ORM、架構的一些看法寫下來拋磚引玉,另一方面最主要的是想尋求大神們指指路。
現況緣由
公司的開發架構用了好些時間,團隊在開發過程中遇到了不少問題,需要革新,我自己也有新的開發架構要做。在選擇架構和選擇資料庫訪問手段時,遇到不少問題。
架構
我做ASP.Net有些年頭了,實際上這幾年看過的架構設計不少,但是用的最多的還是工廠三層,基本代碼全靠代碼產生器,僅代碼產生器就改良過不少次。項目做的多了以後,反觀自己的代碼的時候,就覺得BLL層實在無聊的很,而且有一個我不知道各位都有沒有存在的一個問題:F12不能直接定位到DAL層上。
於是我去尋找改良我現有架構的方法。
偶然有天部落格園的首頁充斥著DDD的文章,我去細觀了一下,想找些例子研究一下,可惜的很,但凡涉及DDD的,全是與EF有關的文章,我也留意到DDD解決了一些我存在的問題。但就是不喜歡任何ORM。
ORM
我不是從我知道ORM的時候我就抗拒ORM,實際上,我有認真看過一些ORM:
EntityFramework(EF)、NHibernate(NH)、Castle ActiveRecord(AR)、Linq for Sql
我首先就關注了EF,當時看的時候,還沒有聽過Model First這個概念,我拖來拖去,最後再看看VS給我產生的東西,內心很憋屈:我有強迫症,我建立類,如果我不能完完整整的控制它,哪怕是它在項目中的具體位置,我心裡就十分不舒坦。
更主要的是,截止我寫之前,我沒有找到任何EF能通過切換設定檔來達到相容MS SQL、Oracle、MySQL這三個資料庫的目的,如果你不接觸ZF項目,你估計很難理解我為什麼要這麼強調資料庫相容
用NH的糾結程度不下於EF,我實在受不了HQL和每一個表都有一個XML配置的問題,更主要的是,公司有採用NH做項目,但最後項目跑的慢的跟蝸牛似的,當然這可能跟以前的代碼寫不好有原因。
Castle的所有子項目裡面,我們用的有兩個,Windsor、Castle NVelocity,所以當AR擺在我面前的時候,有理由學習一下,但是NH已經那麼慢了,AR到底如何,我不敢草率做決定。
LinQ for Sql我就不說了。
求指路
說這麼多,是想各位給提點意見,我該怎麼辦,我的架構該怎麼改,我到底要不要選ORM,還是迴歸ADO.Net來追求速度.
三層還是DDD,ORM還是Ado.Net,何去何從?