前面正在介绍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