代碼生成器開發(fā)筆記(1)-開篇程序 2009-06-13 01:27:47 閱讀35 評(píng)論0 字號(hào):大中小 訂閱 前段時(shí)間一直在研究ADO實(shí)體框架,準(zhǔn)備用來做個(gè)項(xiàng)目,但是發(fā)現(xiàn)這東西實(shí)在不成熟,用它做項(xiàng)目會(huì)搞死人。于是又重新?lián)炱餖inq To SQL,發(fā)現(xiàn)仍然不能實(shí)現(xiàn)一個(gè)模型層,要想支持多種數(shù)據(jù)庫,必須建多個(gè)模型層,無法實(shí)現(xiàn)無縫切換,不得已,再次返回最初的實(shí)體類。 用實(shí)體類的話,自然想起CodeSmith了,編寫了幾個(gè)模板,用來生成數(shù)據(jù)層、模型層以及簡(jiǎn)單業(yè)務(wù)層,生成的代碼錯(cuò)誤很多,一部分是模板腳本錯(cuò)誤,這個(gè)好辦。另一個(gè)是對(duì)CodeSmith沒有深入研究,有些東西不知道如何實(shí)現(xiàn),沒興趣去研究那些英文文檔。 網(wǎng)上又找了個(gè)號(hào)稱國(guó)內(nèi)人氣最高的動(dòng)軟代碼生成器,動(dòng)軟的思路和構(gòu)想不錯(cuò),不過生成的代碼風(fēng)格我不喜歡,而且這個(gè)軟件的BUG也實(shí)在太多了,部分功能也是個(gè)空架子,還是不合我意。 無奈何,求人不如求已,想想寫個(gè)代碼生成器也沒多難,不如自己寫吧。 這次不能犯以前毛病了,N多代碼寫完就忘,用的時(shí)候又想不起來,還得翻舊代碼,有時(shí)候光找原來的代碼都白白花去一個(gè)晚上,所以邊寫邊記,以做備忘。 目前的構(gòu)想是:數(shù)據(jù)庫支持SQL Server、Oracle、MySql、Access,能夠自動(dòng)生成數(shù)據(jù)層、模型層、簡(jiǎn)單業(yè)務(wù)層以及數(shù)據(jù)庫中的存儲(chǔ)過程等三層結(jié)構(gòu)的常用代碼,支持抽象工廠模式。對(duì)實(shí)體類,能夠自動(dòng)識(shí)別表之間的關(guān)系,并在生成時(shí)將表關(guān)系映射到實(shí)體類。支持C#、VB.Net,能夠生成代碼文件或直接生成項(xiàng)目和解決方案。還有一個(gè)設(shè)想,能夠生成常見界面,如WinForm的窗體、ASP.NET的網(wǎng)頁,至少要能生成常見網(wǎng)頁布局的母版頁。不過這部分可以等到最后再說。 |
|