在过去的两年中,我一直在使用CodeSmith,并且喜欢它为我所做的事情。但是,我还了解Visual Studio内置的T4,它也可以做一些非常酷的事情。根据在VS2010中与 friend T4的交谈,T4将会变得更好。
所以问题是:我是否继续乘坐CodeSmith总线,还是该将所有模板都转换为T4了?
更新
也许我问问题的方式不清楚。显然,在新模板可以使用之前,我不会删除CS模板并停止使用它们。但是,在这一点上是否值得付出努力?在这一点上,T4是否提供了比CodeSmith更好的优势?通过编写T4模板,是否有某些功能或一组功能可以使效率提高100倍?
最佳答案
我对T4感到非常兴奋和兴奋,并试图将我的所有CodeSmith内容都转换为T4-只是了解到T4有很多错误或缺少。
查看Kathleen Dollard的What Wrong with T4博客文章-她几乎是.NET上的代码生成女王,她总结得非常好-我完全同意她的问题100%。
总而言之,经过大量的尝试之后,我基本上放弃了T4-尚未做好黄金时段的准备,至少没有为我正在使用的模板类型做准备(主要是检查数据库表以提取内容)值,例如作为自制ORM的基础,或从数据库中提取常量和配置设置等)
从在VS2010中使用T4进行实验之后,我不确定其中有多少已得到修复,真的....似乎很多。还有一些其他有趣的概念(preprocessed templates,据说是support for parameters等),但是大多数基本缺陷似乎仍然存在。
所以,现在:不要扔掉CodeSmith!也许VS2016中的T4会同样强大....但是直到那时.....
资源:
关于c# - Visual Studio T4与CodeSmith,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2538746/