CodeSmith 是一个基于模板的代码生成器,使用它可以自动产生像 C#、VB.NET 等高级语言代码。当前发布的这一版本支持 LINQ to SQL 模板和 Visual Studio 2008 Beat 2。
CodeSmith 模板的语法和 ASP.NET 的语法类似,它允许.NET 开发人员用 C#、VB.NET 或者 JScript.NET 等语言写模板。模板定 义了通过 CodeSmith 代码生成器可以产生的内容。 产生的代码也许可以用相关的属性进行定制。而属性可以是任何.NET 对象,从一个简单的布尔值到复杂的数据库元数据。
CodeSmith 从发布 4.1.0 后开始提供 LINQ to SQL 模板,增加了以下的几个属性:
- 支持微软 Visual Studio 2008- “Orcas”:CodeSmith 现在支持 Visual Studio 的最新版本“Orcas”;
- LINQ to SQL 模板:像创建管理类一样创建 LINQ 类,便于执行通用查询、托管验证、增加业务规则等。
- 新的 Schema Provider:CodeSmith 社区提供,现在已经包括 MySQL 和 Oracle 等 Schema Provider。
当前发布的这个版本包括“更新了 LINQ 模板以适应 Visual Studio 2008 Beta 2”。尽管 Visual Studio 2008 提供了一个可视化的编辑器,帮助创建 SQL to LINQ 的映射,CodeSmith 的代码生成方法还是有许多的优点:
- 完全控制如何创建映射;
- 映射的生成有可能整合进构建流程。CodeSmith 提供一个控制台生成器并且支持 MSBuild;
- 通过手动启动一个新的构建或者创建代码,可以让对数据库结构的改变自动与源代码同步。
David Hayden 在他的文章中比较了 Visual Studio 2008 的可视化设计器和 CodeSmith 的代码生成方法——使用 CodeSmith 4.1 版本生成代码:Visual Studio 2008 支持和 LINQ to SQL 模板,得出来下面的结论:
尽管 LINQ to SLQ 可视化设计器很酷而且高效,但在想起过去被可视化设计器搞的焦头烂额的时光我就心有余悸,我宁愿让每一个 LINQ to SLQ 实体都保留非可视化设计器的文件,就像 Visual Studio 中的其他类一样。
你怎么认为的呢?
评论