我们目前使用T4模板生成基于C#代码(实体POCO)和EDMX(在旧应用程序中)的C#代码文件
迁移到ASP.NET 5以支持跨平台开发,是否有任何代码生成工具可以读取项目类和元数据结构,并在设计时生成C#文件,类似于T4模板?
甚至在asp.net-5项目中也不支持tt模板。它最近已添加(在Visual Studio 2015 Update 1中)。
讨论在这里:https://github.com/aspnet/Home/issues/272
在线程中,Eilon说Roslyn是分析代码并生成新代码的方式......他再次表示ASP团队没有立即计划。所以目前我们没有微软的解决方案。
但我做了一些搜索,没有找到任何跨平台社区工具来生成基于其他代码的代码。 :(
yeoman似乎是个不错的选择。已经存在一些用于搭建asp.net 5应用程序的生成器,你可以使用create your own generators
它是跨平台的,可以在linux / mac / windows上使用。
你可以尝试Scripty - 它是基于Roslyn的脚本。
新的LeMP preprocessing engine for C#可以用作T4模板的替代品。请问“项目类和元数据结构”具体是什么意思?
为此我创建了一个简单的python script called "autogen"。
工作原理:脚本采用jinja模板文件(而不是T4)和数据文件(json),并根据模板生成一个或多个输出文件(例如C#或任何格式)。
如何使用(示例):描述json文件中的接口(方法,参数)定义,为C#,Java,Python等创建* .j2模板文件。然后运行autogen.py脚本和代理/存根的文件将创建所有语言。
这可以帮助创建许多类似的代码而无需复制/粘贴,只需更改单个json文件即可更改代码。
此外,它可以与构建管道,msbuild(.net,.net核心)集成,并且是跨平台的。
Scriban为我工作,替代T4模板来生成单元测试代码。但它是一个纯粹的模板引擎。