首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >T4对CodeDom对奥斯陆

T4对CodeDom对奥斯陆
EN

Stack Overflow用户
提问于 2009-01-29 14:56:23
回答 5查看 2.5K关注 0票数 4

在我工作的应用程序脚手架项目中,我试图决定是使用奥斯陆T4还是CodeDom来生成代码。我们的目标是将依赖性保持在最低程度,并从用户故事中驱动域驱动设计的代码生成。第一步将是从用户故事中创建测试,但我们希望领域专家能够在各种不同的媒体(例如自定义应用程序、Word等)中编写他们的故事。仍然从故事中产生测试。

到目前为止我所知道的是:

  1. CodeDom需要.NET,但只能输出.NET类文件(例如.cs、.vb)。难度相当高。
  2. T4需要CodeDom和VS Standard+。难度是相当合理的,特别是对于T4工具箱
  3. 奥斯陆是很新的。我不知道依赖项,但我认为您必须至少使用.NET 3.5。我也不确定代码生成能力或添加新语法的复杂性。然而,领域专家可能很容易用Intellipad编写用户故事。也不确定是否容易将Word中的故事转换为MGrammar。

使用上述任何一种工具,您的想法、经验等是什么?我们希望继续使用微软或开源工具。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-01-29 16:26:04

和T4一起走--很简单的决定。

  • 奥斯陆太新了,这些工具太原始了,不可能仅仅是一种简单的技术。
  • 如果您需要在运行时生成CLR类,并且愿意牺牲对您生成的输出的简单修改,CodeDOM是非常强大的。
  • T4 (与T4工具包一起)是一个易于使用的通用代码生成工具。到目前为止,我遇到的唯一困难是构建时集成。
票数 9
EN

Stack Overflow用户

发布于 2009-01-29 16:18:18

一般来说,我认为代码生成是一个完整的建模/编码故事的一部分。它应该伴随着一个通用的框架,其中大多数管道都是在这个框架内完成的。在我看来,生成巨大的类是没有用的,而拥有定义良好的扩展点或钩子的良好框架将更好地维护和扩展。

您需要为用户故事定义一些形式化语言,无论是XML还是奥斯陆域语言。奥斯陆将要求您的领域专家学习奥斯陆工具。您可以使用Word + XML。然后,使用嵌入的XML模式在Word中定义一个好看的模板,在编写完故事之后,您可以通过XSLT或Linq从形式化XML syntax.This XML中的Word中获得它。

CodeDOM功能强大,但相当麻烦。这是一个IMHO不容易使用的解决方案,它没有真正的模板支持。

我没有使用T4的经验,但它的模板特性是一个预。

奥斯陆产品确实很新,需要运行时环境.Net 4.0。它仍然只是一个CTP。这是一个非常强大的环境,尽管我对数据库生成的故事有些怀疑。

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2009-04-22 07:27:50

奥斯陆不符合这份名单。到目前为止,它还没有代码生成故事。所以要坚持使用T4。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/491900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档