CodeSmith v.s. T4:.netTiers级套件

时间:2009-05-13 01:05:38

标签: .net t4 codesmith

是否有人将netTiers模板集移植到Visual Studio的T4模板?或者是否有类似范围的系统?有人在工作环境中使用T4吗? Codesmith和T4之间有什么(如果有的话)主要差异?

3 个答案:

答案 0 :(得分:5)

我在T4中涉猎了一下 - 嘿,如果它是免费的并包含在VS2008中,请使用它,对吗?

我的基本想法是创建一组模板来读取数据库表,并从中创建我们自己的“自己动手”ORM类。

我放弃了T4,感到很沮丧,甚至无法获得最基本的工作,这些都是CodeSmith的小菜一碟。

即使是一个简单的任务,例如选择要使用的服务器,数据库和表,也无法在T4中从模板本身的“外部”有效地完成。是的,您可以将所有这些值硬编码为字符串值到T4模板中 - 但是来吧,这真的不是解决方案,是吗?

CodeSmith非常支持选择服务器,数据库和表格,您可以将它们设置为模板上的属性,只需选择您想要的内容,让模板在您选择的特定表格上完成您的工作。

我的结论:T4很有前景,但“还没有”。它可能适用于非常简单的场景,但是现在,在我看来,它远没有Codesmith那么灵活和强大。

对于像.netTiers这样的场景,我暂时坚持使用Codesmith。

马克

答案 1 :(得分:5)

T4不是CodeSmith。是的,您可以使用C#或Visual Basic代码的形式在.tt文件中指定参数,并使用<#@ include#>指令引用代码生成逻辑的实际实现。与使用CodeSmith在XML文件中指定相同信息相比,这不是更难编码。

对于类似NetTiers的T4模板套件,请查看S#arp架构:http://code.google.com/p/sharp-architecture/

答案 2 :(得分:1)

如果您正在寻找支持良好的DAL的T4实现,该DAL是具有Linq接口的开源,以及它自己的Fluent接口,它将为表,存储过程,视图等创建包装器。然后您需要尝试SubSonic 3.0。 SubSonic 2.2具有相同的优点,减去T4和Linq接口,处于释放模式。 SubSonic 3.0在Alpha中,但如果您愿意,可以下载代码或.dll和T4模板。