幹WEB開發已經有一年了,感觸不少.有時候覺得做XX管理系統,難在搞對需求,難在基礎設計,真正要寫的代碼,很多都是有些機械的,重複的,類似的.自從知道了有一種東西叫代碼產生器之後,我就覺得這些事,這些代碼應該儘可能的讓電腦幫我們做.
昨天編寫了一個針對EF(VS08SP1中的版本)的代碼產生工具,準系統已經出來了,在此做個小小的分享.因為模板替換方面,目前的功能比較弱,替換後的結果有針對性(我自己的需求),所以我提供了原始碼,有興趣的可以拿去修改.下面簡單的介紹一下.
程式執行步驟:
- 載入EDMX檔案,解析實體模型資訊.
- 載入模板檔案(需要事先製作).
- 勾選需要產生的實體.
以下是代碼目錄:
代碼很少,四五百行而已. Temp檔案夾下的CodeBuild類負責代碼產生,XML檔案夾下的EntityModelAnalysis類負責EDMX檔案解析,產生實體模型資訊.所有介面操作都在FmMain類中.如果你用的VS2010,EF4,需要修改EntityModelAnalysis類(要花點時間分析EDMX檔案的結構).
TempType類中定義了當前的模板類型,製作模板的時候需要將它們作為關鍵字添加到你的模板中,修改和添加模板替換的種類,需要修改TempType類和CodeBuild類中的CodeExchange方法(添加分支即可).
以下是程式介面
模板製作說明:比如我添加了一個這樣的模板:
<~ENTITYNAME~>會被替換成實體類名,<~FIELDS~>會被替換成欄位列表
介面操作說明:添加模板的方法:雙擊模板名稱列會彈出開啟檔案視窗,預設的組建檔案名稱為"*.cs", * 會被替換成實體類名,你需要根據你的模板來修改這個名稱,比如實體類介面模板,可以改成: "I*.cs".同一目錄不允許同名檔案,所以要保證每個模板的組建檔案名稱不同.產生時,每個選中的實體類都會遍曆所有模板.
大致就介紹這麼多,目前功能還比較簡單,以後慢慢擴充..
原始碼(附6個樣本模板):http://files.cnblogs.com/xxfss2/CodeProduce.rar