2010-07-29 50 views
4

是否可以在不需要Visual Studio 2010的情況下運行T4代碼生成?基本上我必須建立一個內部ORM(不要問..如果我有選擇,我不會)。我打算使用亞音速作爲基礎,但改變一些事情以及它們的工作方式。然而,我的主要問題是我可以從我編寫的外部應用程序運行T4,所以我可以使用T4的功能?還是我最好自己做(我懷疑)?沒有Visual Studio 2010的T4代碼生成?

回答

0

AFAIK T4模板從Visual Studio IDE中調用。

構建一個ORM需要的不僅僅是文本模板。我建議你看看AtomWeaver(在http://www.atomweaver.com)這是一個代碼生成器,可以讓你從單個構建模塊(稱爲「Atoms」)建立模型。這些Atom是智能模板,既可以作爲文本模板,也可以作爲迷你程序使用,使您可以做更多簡單的字符串替換。

您可以開發自己的「原子」,將數據庫結構轉換爲源代碼。然後,對於每個新的數據庫,將這些Atom結合起來構建模式,並啓動生成器以獲取源代碼。因爲你創建的實際上是你的數據庫的一個模型,你可以稍後做出任何改變並重新生成你的代碼。 AtomWeaver實現了ABSE,這是一種模型驅動的軟件開發(與UML或MDA無關)。瞭解ABSE的機制http://www.abse.info

AtomWeaver目前處於公開測試版。目前沒有太多的文檔,所以你可能很難加快速度。

7

TextTransform.exe會做你想要什麼簡單的場景:

http://msdn.microsoft.com/en-us/library/bb126245.aspx

這裏是如何從自己的代碼運行T4模板在VS 2010中創建的模板:

http://msdn.microsoft.com/en-us/library/ee844259(VS.100).aspx

這裏是如何運行T4 t從你自己的代碼emplate在VS 2008中創建的模板:

http://www.capprime.com/software_development_weblog/PermaLink,guid,104d9faf-5780-42ca-88e5-c04cb88f61b3.aspx

將有運行Visual Studio之外亞音速T4模板的一些問題:

How can I automate the t4 code generation for SubSonic

我會堅持到T4,而不是推出自己的模板引擎。

3

T4是Visual Studio的一部分。如果你的ORM工具可以假定Visual Studio可用,T4是一個不錯的選擇。您可以選擇使用應用程序重新分發包含T4的Visual Studio外殼程序。或者,您可以使用preprocessed templates將模板編譯爲可執行代碼生成器。在編譯的形式下,這些模板不需要Visual Studio,但也不能修改。

奧列格

相關問題