CodeSmith - 快速產生欄位 (Field) 與屬性 (Property)
最近,我在公司裡面的角色有點變動,終於從原本的程式勞工 (Code) 變成比較像是程式設計師 (Programmer)。
(雖然說是程式設計師,但是 SA、SD、MIS、DBA、寫文件、跟客戶交涉...通通我都不會少。 Orz MSDN 技術論壇討論: 超大資料表分頁的效能問題 看的也不知道怎麼講,不過我也沒有那麼惡劣就是了!)
怎麼說呢?原因就是,之前手上的專案雖然都遵循 Spiral 模型,慢慢將專案建置起來,但是專案裡面的程式就是不夠 OO,而且畫面與程式設計也切得不是很乾淨。而且,大家都是覺得認為非必要不可,覺得不會寫成類別,寫成 User Control ,導致程式碼無法 Re-Use,而且也難以管理。
一直重複地發明輪子也不是辦法,加上頂頭上司一直很想將部門導向正統的開發專案的路線,從 WBS 分配工作項目給每位程式設計師,然後每個人埋頭苦幹,之後在整合測試然後補齊一堆文件的現況中作一些改變。真的想從 SA -> SD -> Programming 一步一步來,所以現在我大部分的時間都是在寫類別資料庫。
一直在設計類別資料庫,就覺得產生欄位 (Field) 與屬性 (Property) 實在是單調的事情,沒有比較快速的辦法嗎?幸好,最近是用了一套軟體 Code Smith 可以幫忙從資料庫的欄位,將各欄位抽取出來快速產生欄位 (Field) 與屬性 (Property) 的程式碼,讓我輕鬆了不少。以下試用小心得:
圖二、Schema Explorer
由於,要從資料庫中抽取欄位,所以第一步就是在圖二中 Schema Explorer 中,點擊紅色按鈕新增資料庫連線。透過 Data Source 視窗,就可以設定連線名稱、設定連線字串,如下圖三所示。 (連線字串也可以透過圖三紅色框線所指示位置按鈕工具,會跳出圖四的設定畫面,介面如 Visual Studio 應該很熟悉吧)
圖四、Connection Properties 視窗幫助設定 Connection String
新增完連線字串後,點擊畫面中【OK】按鈕完成設定,如圖五:
圖五、Data Source 設定
完成後,Schema Explorer 就會出現剛剛新增的資料庫了,在把目光移到右邊的 Template Explorer (圖六)。Template Explorer 預設的 ActiveSinnpets 底下就有產生 Filed 與 Property 的執行檔案,以 CSharp 目錄為例在 TableProperties.cst 按下右鍵選擇 Excute,就會跳出 TableProperties.cst 執行視窗 (圖七)。
圖六、Template Explorer 畫面
圖七、TableProperties.cst 執行視窗
在 TableProperties.cst 執行視窗,我們就可以選擇剛剛新建立的資料庫中的資料表,例如 dbo.Customers,在點擊 Generate 按鈕,所有欄位會依照 SQL Server 的資料型態轉換成 .Net 平台上相對應的資料型態來產生程式碼,如圖八所示:
圖八、TableProperties.cst 執行結果,產生了欄位 (Field) 與屬性 (Property)
當然,有時候欄位的對應或是資料型態對應有小誤差,可以自己手動調整,不過總比通通自己 key-in 好多了!