前面正在介紹hibernate的開發教程,提到hibernate 在.Net 平台上相應的ORM工具為NHibernate ,使用NHibernate 就不能 不提到CodeSmith。
CodeSmith 是一種基於模板的代碼生成工具,它使用類似於 ASP.NET 的語法來生成任意類型的代碼或文 本。與其他許多代碼生成工具不同,CodeSmith 不要求您訂閱特定的應用程序設計或體系結構。使用 CodeSmith,可以生成包括 簡單的強類型集合和完整應用程序在內的任何東西。當您生成應用程序時,您經常需要重復完成某些特定的任務,例如編 寫數據訪問代碼或者生成自定義集合。CodeSmith 在這些時候特別有用,因為您可以編寫模板自動完成這些任務,從而不僅提高 您的工作效率,而且能夠自動完成那些最為乏味的任務。CodeSmith 附帶了許多模板,包括對應於所有 .NET 集合類型的模板以 及用於生成存儲過程的模板,但該工具的真正威力在於能夠創建自定義模板。
CodeSmith可以從網站 http://www.codesmithtools.com/ 下載,個人開發版費用在300美元左右,個人認為還是物有所值。
還是用一個例子來 說明一下使用CodeSmith可以大大減輕程序代碼的工作量,對於數據庫應用來說,盡管數據庫表不盡相同,但基本過程都是定義 數據庫表,設計表對應的類,然後使用ADO或是SQL語句來訪問數據庫,創建對應的類對象等。
使用CodeSmith提供的模板 ,可以幾乎不用手工編寫一行代碼,就可以自動生成上述數據庫相關的代碼。
本例使用Visual Studio 2010 , Codesmith 安裝時提供了Visual Studio 插件支持。使用的示例數據庫也是Sales,可以參見Hibernate開發教程(2):准備開始。
由於使用MySQL數據庫,需要下載MySQL .Net 庫。使用SQL Server 可以直接使用。
1. 創建一個命令行應用 solution。
2. 使用CodeSmith的Schema Explorer 添加一個MySQL 數據源
這裡的Connection String 為: SERVER=localhost;DATABASE=sales;UID=username;PASSWORD=password; (根據你自己服務器自行修改參數)
添加成功後,在Schema Explorer 中會顯示所連接的數據庫的表定義等
3. 在這個solution 中添加一個Sales.Data Class Library. 然後在項目中添加一個CodeSmith 項目Item