是否可以在不需要Visual Studio 2010的情況下運行T4代碼生成?基本上我必須建立一個內部ORM(不要問..如果我有選擇,我不會)。我打算使用亞音速作爲基礎,但改變一些事情以及它們的工作方式。然而,我的主要問題是我可以從我編寫的外部應用程序運行T4,所以我可以使用T4的功能?還是我最好自己做(我懷疑)?沒有Visual Studio 2010的T4代碼生成?
回答
AFAIK T4模板從Visual Studio IDE中調用。
構建一個ORM需要的不僅僅是文本模板。我建議你看看AtomWeaver(在http://www.atomweaver.com)這是一個代碼生成器,可以讓你從單個構建模塊(稱爲「Atoms」)建立模型。這些Atom是智能模板,既可以作爲文本模板,也可以作爲迷你程序使用,使您可以做更多簡單的字符串替換。
您可以開發自己的「原子」,將數據庫結構轉換爲源代碼。然後,對於每個新的數據庫,將這些Atom結合起來構建模式,並啓動生成器以獲取源代碼。因爲你創建的實際上是你的數據庫的一個模型,你可以稍後做出任何改變並重新生成你的代碼。 AtomWeaver實現了ABSE,這是一種模型驅動的軟件開發(與UML或MDA無關)。瞭解ABSE的機制http://www.abse.info
AtomWeaver目前處於公開測試版。目前沒有太多的文檔,所以你可能很難加快速度。
有一個名爲TextTransform.exe的命令行實用程序,可用於生成T4模板的代碼。我無法評論它是否是構建ORM的正確工具,但我非常喜歡從XML文件生成狀態機。
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中創建的模板:
將有運行Visual Studio之外亞音速T4模板的一些問題:
How can I automate the t4 code generation for SubSonic
我會堅持到T4,而不是推出自己的模板引擎。
T4是Visual Studio的一部分。如果你的ORM工具可以假定Visual Studio可用,T4是一個不錯的選擇。您可以選擇使用應用程序重新分發包含T4的Visual Studio外殼程序。或者,您可以使用preprocessed templates將模板編譯爲可執行代碼生成器。在編譯的形式下,這些模板不需要Visual Studio,但也不能修改。
奧列格
- 1. Visual Studio 2010用於模板類型的T4代碼生成
- 2. 其中Visual Studio.Uml.extension.dll用於Visual Studio 2010中的代碼生成?
- 3. T4編輯生成的代碼生成
- 4. 用於生成C++代碼的Visual Studio 2010擴展?
- 5. Selenium C#爲Visual Studio 2010自動生成的代碼
- 6. 用於方法或屬性的Visual Studio UML 2010代碼生成
- 7. 爲Visual Studio 2010編寫代碼生成插件的教程
- 8. 分享Visual Studio 2010代碼
- 9. 沒有自動完成Visual Studio 2010
- 10. 有沒有辦法阻止Visual Studio 2010自動生成CSS
- 11. Visual Studio 2010數據庫項目和代碼生成
- 12. Visual Studio 2010:如何從代碼生成組件圖
- 13. Visual Studio的Python代碼生成器?
- 14. OpenXML生成的代碼凍結Visual Studio
- 15. Visual Studio 2012體系結構中的錯誤使用T4生成代碼
- 16. 如何在Visual Studio 2010中從C++源代碼生成彙編代碼
- 17. Visual Studio從UML圖生成代碼?
- 18. 從Visual Studio擴展生成代碼
- 19. 生成的T4文件沒有添加到項目從Visual Studio擴展
- 20. Visual Studio 2010中的UML圖生成器
- 21. Visual C++ 2010代碼完成
- 22. T4模板和EF與代碼生成
- 23. 使用T4模板生成代碼
- 24. 在Visual Studio 2010中替換/擴展Visual Studio的生成存根
- 25. T4模板 - 適合生成C++代碼?
- 26. 尋找T4 CSLA代碼生成器
- 27. VsAddin或T4代碼生成(VS 2008)
- 28. Visual Studio 2010中的源代碼管理?
- 29. 的Visual Studio 2010 - 錯誤代碼22
- 30. 只是我的代碼 - Visual Studio 2010