Visual Studio T4与CodeSmith

Jak*_*ake 17 c# t4 generative-programming codesmith visual-studio

我在过去的两年里一直在使用CodeSmith,并喜欢它为我做的事情.但是,我也知道T4内置于Visual Studio中,并且可以做一些很酷的东西.基于与VS2010中的朋友T4的对话,T4会更好.

所以问题是:我是否继续使用CodeSmith总线或是时候开始将我的所有模板转换为T4了?

更新 也许我对问题的解释方式并不清楚.显然,我不会删除我的cs模板并停止使用它们,直到我有新的模板工作.但是,在这一点上是否值得努力?T4在这一点上是否提供了优于CodeSmith的优势?是否有一些功能或一组功能,通过为T4编写我的模板,我会看到我的效率提高了100倍?

mar*_*c_s 24

我对T4感到非常激动和兴奋,并试图将我所有的CodeSmith转换为T4 - 只是为了了解T4中存在的一些错误/缺失的东西.

  • 不支持您的模板参数 - 您需要将所有内容硬编码到模板中.....
  • T4的Visual Studio主机相当有限
  • 没有直接和轻松支持单个模板的多个输出文件

看看Kathleen Dollard的T4博客文章中有什么错误 - 她几乎是.NET代码生成的女王,她总结得非常好 - 我完全同意100%的问题.

总而言之,有很多的玩耍和努力后,我已经基本上放弃了对T4 - 它只是还没有准备好黄金时段,至少对于我与(主要是检查数据库表中提取工作模板类型值,例如作为自制ORM的基础,或从数据库中提取常量和配置设置等)

而且,在VS2010中使用T4进行实验时,我不确定这有多少已被修复,真的....不是很多,似乎.还有一些其他有趣的概念(预处理模板,据说支持参数等),但大多数基本缺陷似乎仍然存在......

所以现在:不要扔掉CodeSmith!也许VS2016中的T4会同样强大......但直到那时......

资源:

  • 落后5年.CodeSmith vs T4的战斗中有什么新东西? (3认同)