Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio T4 vs CodeSmith_C#_Visual Studio_T4_Codesmith_Generative Programming - Fatal编程技术网

C# Visual Studio T4 vs CodeSmith

C# Visual Studio T4 vs CodeSmith,c#,visual-studio,t4,codesmith,generative-programming,C#,Visual Studio,T4,Codesmith,Generative Programming,在过去的两年里,我一直在使用CodeSmith,我喜欢它为我所做的一切。不过,我也知道T4内置于VisualStudio中,可以做一些非常酷的事情。根据VS2010中与朋友T4的对话,T4将变得更好 所以问题是:我是继续乘坐CodeSmith巴士,还是该开始将所有模板转换为T4了 更新 也许我问这个问题的方式不清楚。显然,我不会删除我的cs模板,并停止使用它们,直到我有了新的模板工作。然而,在这一点上值得付出努力吗?T4在这一点上是否比CodeSmith具有完全的优势?通过为T4编写模板,是否有

在过去的两年里,我一直在使用CodeSmith,我喜欢它为我所做的一切。不过,我也知道T4内置于VisualStudio中,可以做一些非常酷的事情。根据VS2010中与朋友T4的对话,T4将变得更好

所以问题是:我是继续乘坐CodeSmith巴士,还是该开始将所有模板转换为T4了

更新
也许我问这个问题的方式不清楚。显然,我不会删除我的cs模板,并停止使用它们,直到我有了新的模板工作。然而,在这一点上值得付出努力吗?T4在这一点上是否比CodeSmith具有完全的优势?通过为T4编写模板,是否有一些功能或一组功能可以使我的效率提高100倍?

我对T4感到非常激动和兴奋,并尝试将我所有的CodeSmith内容转换为T4-但我发现T4中有很多错误/不足之处

  • 不支持模板的参数-您需要将所有内容硬编码到模板中
  • T4的Visual Studio主机相当有限
  • 不直接且轻松地支持来自单个模板的多个输出文件
看看Kathleen Dollard的博客文章——她几乎是.NET上的代码生成女王,她总结得非常好——我完全同意她的观点

总而言之,经过大量的尝试和尝试,我基本上已经放弃了T4——它还没有为黄金时间做好准备,至少不适合我使用的模板类型(主要检查数据库表以提取值,例如作为自制ORM的基础,或从数据库中提取常数和配置设置等)

通过在VS2010中试用T4,我不确定这其中有多少得到了修复,真的……似乎不是很多。还有一些其他有趣的概念(,据说是等等),但大多数基本缺陷似乎仍然存在

所以现在:暂时不要抛弃CodeSmith!!也许VS2016中的T4也会同样强大…但在那之前

资源:

  • 有很多教程、文章和代码
  • 作者:Oleg Sych
  • Clarius咨询公司
  • (支持VS2010)

谢谢。这更符合我的要求。例如,我有一个模板,可以为实体框架edmx文件中的所有类生成分部。因此,必须能够在模板之间传递参数。能够从一个模板生成多个文件也非常好。@Jake:如果你在VS中已经有你的东西(比如在你的EDMX文件中),您可以使用T4做很多很酷的事情,因为它可以轻松解析构成EDMX的XML。此外,使用Oleg Sych的T4Toolbox,您可以从一个模板输出多个文件-这远没有它应该的那么简单…..T4只是.NET,您可以在T4中做几乎任何可以在.NET中做的事情。它实际上没有这些c在你抱怨的培训中,这可能并不像你希望的那么容易。Codesmith希望比T4更好,否则他们将破产。“只是要了解T4有很多错误/不足之处。”-你对T4还有同样的感觉吗?如果我继承的项目需要一些模板、代码片段和某些任务自动化怎么办?我应该选择哪一个?任何建议,谢谢。5年过去了。CodeSmith与T4的战斗中有什么新的内容?回答你的更新:不,T4与CodeSmith相比没有令人信服的优势,除了是ing包含在VS2008及以上版本中,因此对VS用户来说是“免费的”。