最近,我在公司裡面的角色有點變動,終於從原本的程式勞工 (Code) 變成比較像是程式設計師 (Programmer)

(雖然說是程式設計師,但是 SA、SD、MIS、DBA、寫文件、跟客戶交涉...通通我都不會少。 Orz MSDN 技術論壇討論: 超大資料表分頁的效能問題  看的也不知道怎麼講,不過我也沒有那麼惡劣就是了!)

怎麼說呢?原因就是,之前手上的專案雖然都遵循 Spiral 模型,慢慢將專案建置起來,但是專案裡面的程式就是不夠 OO,而且畫面與程式設計也切得不是很乾淨。而且,大家都是覺得認為非必要不可,覺得不會寫成類別,寫成 User Control ,導致程式碼無法 Re-Use,而且也難以管理。

一直重複地發明輪子也不是辦法,加上頂頭上司一直很想將部門導向正統的開發專案的路線,從 WBS 分配工作項目給每位程式設計師,然後每個人埋頭苦幹,之後在整合測試然後補齊一堆文件的現況中作一些改變。真的想從 SA -> SD -> Programming 一步一步來,所以現在我大部分的時間都是在寫類別資料庫。

Class0001.

一直在設計類別資料庫,就覺得產生欄位 (Field) 與屬性 (Property) 實在是單調的事情,沒有比較快速的辦法嗎?幸好,最近是用了一套軟體 Code Smith 可以幫忙從資料庫的欄位,將各欄位抽取出來快速產生欄位 (Field) 與屬性 (Property) 的程式碼,讓我輕鬆了不少。以下試用小心得:

CodeSmith-0000 
圖一、CodeSmith 的歡迎畫面

CodeSmith-0001

圖二、Schema Explorer

由於,要從資料庫中抽取欄位,所以第一步就是在圖二中 Schema Explorer 中,點擊紅色按鈕新增資料庫連線。透過 Data Source 視窗,就可以設定連線名稱、設定連線字串,如下圖三所示。 (連線字串也可以透過圖三紅色框線所指示位置按鈕工具,會跳出圖四的設定畫面,介面如 Visual Studio 應該很熟悉吧)

CodeSmith-0003 
圖三、Data Source 設定

CodeSmith-0004
圖四、Connection Properties 視窗幫助設定 Connection String

新增完連線字串後,點擊畫面中【OK】按鈕完成設定,如圖五:

CodeSmith-0005

圖五、Data Source 設定

完成後,Schema Explorer 就會出現剛剛新增的資料庫了,在把目光移到右邊的 Template Explorer (圖六)。Template Explorer 預設的 ActiveSinnpets 底下就有產生 Filed 與 Property 的執行檔案,以 CSharp 目錄為例在 TableProperties.cst 按下右鍵選擇 Excute,就會跳出 TableProperties.cst 執行視窗 (圖七)。

CodeSmith-0006

圖六、Template Explorer 畫面

CodeSmith-0007

圖七、TableProperties.cst 執行視窗

在 TableProperties.cst 執行視窗,我們就可以選擇剛剛新建立的資料庫中的資料表,例如 dbo.Customers,在點擊 Generate 按鈕,所有欄位會依照 SQL Server 的資料型態轉換成 .Net 平台上相對應的資料型態來產生程式碼,如圖八所示:

CodeSmith-0008

圖八、TableProperties.cst 執行結果,產生了欄位 (Field) 與屬性 (Property)

當然,有時候欄位的對應或是資料型態對應有小誤差,可以自己手動調整,不過總比通通自己 key-in  好多了!


DotBlogs Tags: .Net工具 chhuang 系統設計 軟體教學

Feedback

  • dotjum 2008/4/1 下午 06:48 回覆

    # re: CodeSmith - 快速產生欄位 (Field) 與屬性 (Property)

    怎麼不發到首頁給更朋友分享呢~

  • Cacb 2008/4/1 下午 08:37 回覆

    # re: CodeSmith - 快速產生欄位 (Field) 與屬性 (Property)

    終於看到台灣有人介紹這個
    感謝大大 希望以後有更多介紹

  • chhuang 2008/4/1 下午 09:01 回覆

    # re: CodeSmith - 快速產生欄位 (Field) 與屬性 (Property)

    CodeSmith 最近才剛剛使用,希望有同好能一起討論研究。 ^^

    感謝 dotjum 與 Cacb ...

  • topcat 2008/4/2 上午 11:02 回覆

    # re: CodeSmith - 快速產生欄位 (Field) 與屬性 (Property)

    好工具...請教有沒有支援VB.NET呢....

    確實把資料庫欄位設計成為類別的屬性欄位是個很累的一件事,小喵目前是自己寫個程式來產生相關的程式碼。如果有外掛工具當然更好囉

    ^_^

  • chhuang 2008/4/2 上午 11:42 回覆

    # re: CodeSmith - 快速產生欄位 (Field) 與屬性 (Property)

    to topcat:

    VB.Net 也是可以支援的唷,可以參考【圖六、Template Explorer 畫面】,同樣是 TableProperties.cst 。 ^^

  • 匿名 2008/4/8 上午 03:10 回覆

    # re: CodeSmith - 快速產生欄位 (Field) 與屬性 (Property)

    有了Visual Studio 2008 ORM設計工具,應該就夠用了吧~
    只是產生程式碼的話,就不用再花錢買一套類似的工具!

  • chhuang 2008/4/8 上午 07:59 回覆

    # re: CodeSmith - 快速產生欄位 (Field) 與屬性 (Property)

    請問該如何使用 Visual Studio 2008 ORM 設計工具? 有更好的辦法當然歡迎囉!!

    ps. 當然 Code Smith 不會只拿來產生 Filed 和 Property,還有其它的功用啦。

     

標題 *

名稱 *

Email 

Url  

回應 *

登入後使用進階評論

Please add 2 and 1 and type the answer here: