【发布时间】:2010-09-26 18:49:29
【问题描述】:
您对T4 和T4 Editor 有任何经验吗?你能和CodeSmith或MyGeneration比较吗?
您使用什么代码生成器?你有什么推荐的?
我想用它来生成 SP。你觉得代码生成还有什么有用的吗?
【问题讨论】:
标签: .net code-generation t4 codesmith
您对T4 和T4 Editor 有任何经验吗?你能和CodeSmith或MyGeneration比较吗?
您使用什么代码生成器?你有什么推荐的?
我想用它来生成 SP。你觉得代码生成还有什么有用的吗?
【问题讨论】:
标签: .net code-generation t4 codesmith
作为代码生成引擎,T4 与 CodeSmith 或 MyGeneration 一样强大。它的主要优点是与 Visual Studio 的紧密集成;主要缺点是即用型模板数量较少。
我个人更喜欢T4 editor from Tangible,因为它适用于T4 Toolbox。
奥列格
【讨论】:
你到底想做什么?我想这也取决于您尝试从哪里生成代码(模型)。
Codesmith 和 MyGeneration 的优势在于,它们为您提供了多种生成代码的选项 - 例如,在 MyGeneration 中,您可以使用各种语言编写模板。
MyGeneration 可以提供任何数据库的元模型和许多内置的生成器脚本——因此,如果你想生成 SP,最简单的方法就是使用 MyGeneration 的生成器——你可以在那里找到 CRUD SP 的生成器.如果您想修改生成器,它还提供了一个相当不错的编辑器。
如果您正在构建 DSL 或其他东西(我的意思是,模型来自其他地方),那么您可能会考虑使用 T4。然而,T4 编辑并不是我做过的最简单的事情,因为 Visual Studio 中没有 T4 编辑支持。您可以考虑购买 Clarius T4 编辑器以获得良好的编辑支持。
【讨论】:
使用 Visual Studio 的内置 sn-ps 可以提高您的工作效率。
tab tab
就像输入if 并按两次Tab 会为您生成一个if 语句,然后基本上您只需填写空白
try 和两个 tab 会生成一个 try-catch 块
等等……
您可以使用完整的 sn-ps 列表。
【讨论】:
除了现在推荐的 T4 模板,还有另一种在 VS 中生成代码的方式——MVC Scaffolding,可以用于任何代码生成(不仅是 ASP.NET MVC)。
它基于 T4,但添加了一些有用的功能,如模板参数、与 VS 的集成(打开文档等)、PowerShell 脚本和多文件生成。
【讨论】: