T4vs CodeDom vs奥斯陆[封闭]
-
20-08-2019 - |
题
在应用程序的脚手架的项目上我的工作我只是想决定是否使用 奥斯陆, T4 或 CodeDom 为产生的代码。我们的目标是继续依赖关系到一个最小和驱动代码生成的一个领域驱动的设计,从用户的故事。第一步将是建立的测试,从用户的故事,但我们希望域的专家能够编写他们的故事在各种不同媒体(例如定制的应用程序,词,等等。) 并且仍然生成的试验的故事。
什么我知道迄今为止:
- CodeDom需要。网,但只能输出。净类文件(如.cs,.vb)。难度水平是相当高的。
- T4需要CodeDom和VS标准+.难度水平是相当合理的,尤其是与 T4"工具箱".
- 奥斯陆是非常新。我不知道的依赖,但我想你必须在至少一个。净3.5.我也不确定的代码生成能力或复杂性增加新的语法。然而,域专家可能可以编写用户的故事在Intellipad很容易。还不确定关于易于转换的故事字到MGrammar.
你有什么想法、经验,等等。与任何上述工具。我们要坚持与微软或开放源码工具。
解决方案
去T4-轻松的决定。
- 奥斯陆是过新的工具是太原被任何东西比一个eval-唯一的技术
- CodeDOM是强大的,如果你需要产生CLR课程在运行时间,并愿意牺牲很容易修改,以生成的产出。
- T4(与T4的工具包)是一个易于使用的通用代码生成的工具。唯一的困难,我们迄今为止在建立时的集成。
其他提示
一般来说,我看到代码生成的一部分作为一个完整的模型/编码的故事。这应该伴随一个一般框架,其中大多管道已经完成。在我看来,它不是用以产生巨大的课程,而体面的框架,以明确定义的扩展点或挂钩将大大更好的维持和延长。
你会需要定义的一些正式语文的用户故事,它XML或奥斯陆域的语言。奥斯陆会需要你域的专家了解《奥斯陆工具。你可以使用的词+XML。然后你一定好看的模板中的词语,有一个嵌入式XML模式和之后的故事写的是你可以把它从一词在正式化,XML语法。这XML当然可以用于驱动发电机、通过XSLT或皇宫.
CodeDOM是强大的,而繁琐。这是恕我直言,不是一个易于使用的解决方案,它并没有真正模板的支持。
我没有经验T4,但它模板功能的一个。
奥斯陆产品确实是相当新的,需要。净4.0,一个运行环境。它仍然只是一个CTP。这是一个非常强大的环境中,虽然我有些怀疑数据库生成的故事。
希望这会有所帮助。
好了,奥斯陆不适合名单。它没有代码生成的故事为止。所以坚持使用T4。
奥斯陆具有不意图产生的代码,用于你。你将不得不创建一个运行时间(C#程序为例),改变它的行为根据的数据。你可以看到这样一个互联网浏览器。
我不认为奥斯陆的需要。净4.0,如麻黄碱提及。我的实习生在埃维诺荷兰我创造的奥斯陆MSchema和MGrammars和C#3.5运行时间。根据特定数据,它将创造(未发生)WCF服务和运行的那些。
还有一些有趣的应用程序的奥斯陆
- "新LDAP"系统。身份,更PDC届会议的视频 http://microsoftpdc.com/Sessions/SVC28
- 系统。模型(I think)Microsoft。UML2在这里你可以推动有关信息的方法、课程、模块等等。在储存库中,进行分析,并创建报告。例如创建报告方法中增加或删除2之间结案 http://microsoftpdc.com/Sessions/SVR19
- 当然,建模