CodeSmith教程(1) 概述

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

时间: 2024-07-30 08:03:27

CodeSmith教程(1) 概述的相关文章

CodeSmith教程(3) 自动生成Yii Framework ActiveRecord

上例介绍了使用CodeSmith编写代码模板的基本方法,本例实现一个较为实用的代码模板,通过数据库自动为Yii Framework 生成所需要的ActiveRecord 类. 本例通过修改Yii Framework 开发教程(26) 数据库-Active Record示例 ,原例是手工编写 Employee.php ActiveRecord. 首先为工程添加一个C#项目(任意类型,我们只是利用这个项目来包含CodeSmith项目) ,然后添加一个CodeSmith项目和一个CodeSmith模板

CodeSmith教程(2) 编写第一个代码模板

在CodeSmith 使用教程(1): 概述我们通过使用CodeSmith从数据库自动生成NHiberate代码,可以了解到使用CodeSmith自动 生成代码的基本步骤: 选择使用合适的模板,CodeSmith随开发包自带了大量常用的模板,如果找不到合适的模板,CodeSmith支持自定义模板. 为模板选择合适的参数设置. 自动生成代码(可以为任意类型的代码,C#,Java, .XML 文本等) 其核心为代码模板文件,随CodeSmith自带了不少常用的模板,可以通过模板浏览器来查询,此外网上

CodeSmith教程(8) CodeTemplate对象

在使用代码模板产生代码时,CodeSmith引擎背后使用了不少对象来帮助代码的生成,其中常用的有 CodeTempate (类似于Asp.Net的Page类) Progress 用于显示代码生成的进度 CodeTemplateInfo 可以返回关于当前模板自身 的一些信息. 本篇介绍CodeTemplate ,CodeTemplate代表了由CodeSmith引擎处理的代码模板对象,可以通过CodeTemplate对象直接和 CodeSmith引擎交互,比如: 使用 GetFileName 修改

CodeSmith教程(5) 基本语法-使用注释

在模板中可以添加注释,注释通过 <%–和–%>块来定义,注释可以有多行.比如: <%-- Name: TestHarness.cst Description: Generates a standard test harness for an object --%> 如果在代码模板中使用C#,VB.Net或是JavaScripts脚本,可以使用所使用语言对应的注释,比如C#语言可以 使用 // 或 /* commented */. 如果需要在输出的文件中使用注释,和其它要输出的内容一

java的nio之:java的nio系列教程之概述

一:java的nio的核心组件?Java NIO 由以下几个核心部分组成: ==>Channels ==>Buffers ==>Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API.其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类.因此,在概述中我将集中在这三个组件上.其它组 件会在单独的章节中讲到. Channel 和 Buffer 基本上,所有的 IO 在

JSP初级入门教程--JSP概述

js|教程|入门教程 JSP(IAVA SERVER PAGES)是由Sun 公司在java语言上开发出来的一种动态网页制作技术,其可使您可以将网页中的动态部分和静态的HTML相分离.您可以使用平常得心应手的工具并按照平常的方式来书写HTML语句.然后,将动态部分用特殊的标记嵌入即可,这些标记常常以"<%"开始并以"%>"结束.例如,这儿有一个JSP页面: <html> <head><title>jsp教程</t

ASP入门教程-VBScript概述

1.VBScript简介 VBScript是一种脚本语言,也是ASP的默认语言,可以在HTML文件中直接嵌入VBScript脚本,从而扩展HTML,使它不仅仅是一种页面格式语言.带有VBScript脚本的网页可以对用户的操作作出反应. 2.HTML页面中添加VBScript代码 VBSript脚本作为HTML文档的一部分页存在.也就是说,这些代码必须放在HTML文档中才能执行.脚本代码可以放在HTML文档的任何位置,即BODY或HEAD部分之中.通常是将脚本代码集中放在HEAD部分中,这样能确保

CodeSmith教程(7) 基本语法-转义Asp.Net标记

由于CodeSmith的代码模板使用了和Asp.Net类似的语法,因此如果要使用CodeSmith 模板生成Asp.Net脚本时比如"<%" 就碰到了问题, <% 会被CodeSmith解释成CodeSmith自己的标记,因此需要使用转义标签来代替需要插入到Asp.Net代码中的 标签. 具体方法是使用 <%% 来替换需要生成的Asp.Net中的 <%标记. 比如我们要生成如下的Asp.Net代码 : <asp:FormView ID="Form

CodeSmith教程(6) 基本语法-声明和使用属性

CodeSmith的核心是模板,而使模板具有活力的就是属性,通过定义属性从而使代码模板能够根据配置生成所需的代码.在使 用代码模板时首先也必须给模板定义的属性定义值才能使用CodeSmith通过模板产生代码.有些属性具有缺省值,这些属性可以 不需要配置. 模板中的属性通过Property指令来定义: <%@ Property Name="ClassName" Type="String" Default="Class1" Category=&