.net - T4 vs CodeDom vs 奥斯陆

标签 .net code-generation t4 codedom oslo

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




10年前关闭。




在我正在处理的应用程序脚手架项目中,我试图决定是否使用 Oslo , T4CodeDom用于生成代码。我们的目标是将依赖关系保持在最低限度,并根据用户故事为领域驱动设计驱动代码生成。第一步是从用户故事创建测试,但我们希望领域专家能够在各种不同的媒体(例如自定义应用程序、Word 等)中编写他们的故事,并且仍然从故事。

到目前为止我所知道的:

  • CodeDom 需要 .NET,但只能输出 .NET 类文件(例如 .cs、.vb)。难度级别相当高。
  • T4 需要 CodeDom 和 VS Standard+。难度级别相当合理,尤其是 T4 Toolbox .
  • 奥斯陆很新。我不知道依赖关系,但我想你必须至少在 .NET 3.5 上。我也不确定代码生成能力或添加新语法的复杂性。但是,领域专家可能很容易在 Intellipad 中编写用户故事。也不确定将 Word 中的故事转换为 MGrammar 的难易程度。

  • 您对上述任何工具有什么想法、经验等。我们希望坚持使用 Microsoft 或开源工具。

    最佳答案

    选择 T4 - 轻松决定。

  • Oslo 太新了,工具也太原始了,只能是 eval 技术
  • CodeDOM 功能强大,如果您需要在运行时生成 CLR 类,并且愿意牺牲对生成的输出的简单修改。
  • T4(带有 T4 工具包)是一个易于使用的通用代码生成工具。到目前为止,我遇到的唯一困难是构建时集成。
  • 关于.net - T4 vs CodeDom vs 奥斯陆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/491900/

    相关文章:

    c# - 从 T4 模板调用同一项目中的类

    .net - 线程安全的一次计算最佳实践

    c# - Infragistics UltraListView 自动滚动

    c# - 使用一个函数从 DataRow 或 DataReader 中提取

    c# - 为什么一个基本的单线程 C# 控制台应用程序需要 3 个线程?

    t4 - 在运行 T4 模板时确定解决方案配置(调试/发布)

    php - 代码生成缩进

    orm - 代码生成器还是 ORM?

    c# - 如何检查 ObjectQuery<T> 表达式树中是否存在 OrderBy

    c# - T4 - 字段初始值设定项不能引用非静态字段、方法或属性