是否可以在不需要Visual Studio 2010的情况下运行T4代码生成?基本上我必须建立一个内部ORM(不要问..如果我有一个选择,我不会)。我计划使用亚音速作为基础但改变一些事情以及它们如何工作。但是我的主要问题是我可以从我编写的外部应用程序运行T4,所以我可以使用T4的功能吗?或者我自己做得更好(我怀疑)?
答案 0 :(得分:7)
TextTransform.exe将针对简单方案执行您想要的操作:
http://msdn.microsoft.com/en-us/library/bb126245.aspx
以下是如何从您自己的代码中为在VS 2010中创建的模板运行T4模板:
http://msdn.microsoft.com/en-us/library/ee844259(VS.100).aspx
以下是如何从您自己的代码中为VS 2008中创建的模板运行T4模板:
在Visual Studio之外运行Subsonic T4模板会出现一些问题:
How can I automate the t4 code generation for SubSonic
我会坚持使用T4,而不是推出自己的模板引擎。
答案 1 :(得分:3)
T4是Visual Studio的一部分。如果您的ORM工具可以假定Visual Studio可用,那么T4是一个不错的选择。您可以选择将Visual Studio shell(也包括T4)与您的应用程序一起重新分发。或者,您可以使用preprocessed templates将模板编译为可执行代码生成器。在编译形式中,这些模板不需要Visual Studio,也不能修改。
奥列格
答案 2 :(得分:0)
从Visual Studio IDE中调用AFAIK T4模板。
构建ORM需要的不仅仅是文本模板。我建议你研究AtomWeaver(http://www.atomweaver.com),这是一个代码生成器,可以让你从各个构建块(称为“Atoms”)构建模型。这些Atoms是智能模板,既可以作为文本模板,也可以作为迷你程序,允许您进行更简单的字符串替换。
您可以开发自己的“原子”,将数据库结构转换为源代码。然后,对于每个新数据库,您组合这些Atom来构建模式,并启动生成器以获取源代码。因为您构建的实际上是数据库的模型,您以后可以进行任何更改并重新生成代码。
AtomWeaver实现了ABSE,一种模型驱动的软件开发(与UML或MDA无关)。在http://www.abse.info
了解ABSE的机制AtomWeaver目前处于公开测试阶段。此时没有太多文档,因此您可能很难掌握它。
答案 3 :(得分:0)
有一个名为TextTransform.exe的命令行实用程序,可用于为T4模板生成代码。我不能评论它是否是构建ORM的正确工具,但我非常喜欢从XML文件生成状态机。