2010-01-11 136 views
25

T4在Visual Studio中已經存在好幾年了,但並沒有得到很多關注。但是,對於那些瞭解它的人來說,似乎有一些非常有創意和有用的目的。你爲什麼使用T4?

我正在研究使用T4的一些不同方式,我希望能聽到您如何將它用於真實生活場景。我主要對非標準和創意用途感興趣。

一些有趣的例子:

  1. 菲爾哈克使用T4 to create static CSS files from .less
  2. Generate WPF and Silverlight Dependency Properties using T4 Templates

注意:我知道這是一個面向討論個問題,但答案可能是有幫助給他人。我將它標記爲主觀並且標記爲「社區wiki」,因此請允許問題保持開放。謝謝!

+1

哈哈,菲爾哈克的網站顯示[ASP.NET]死亡的黃色屏幕。 – 2010-01-12 00:43:29

回答

4

我已經使用sharp-architecture中的T4模板來生成從模型到控制器到基本視圖的所有內容。

絕對值得一試,即使你只是想在行動中看到

2

SubSonic 3.0的T4模板一些先進典型,大量使用T4模板生成你的實體代碼。

本質上,它在您的數據庫連接上調用GetSchema()並運行通過T4實體模板找到的每個表。這裏使用T4的好處是,如果你不喜歡它處理數據庫模式的方式,只需編輯模板即可。

我已經調整了T4來更好地處理MySQL數據庫,因爲我使用了許多默認T4映射到byte類型的tinyint列。對T4的快速編輯給了我想要的類型,而不是我的應用程序實體。

+0

如果你真的很好,你可以讓它支持它不打算的數據庫。我只通過編輯模板文件獲得了部分SubSonic端口到PostgreSQL。 – Earlz 2010-12-10 18:35:34

2

的LINQ to SQL模板T4
http://l2st4.codeplex.com/

模板複製SQLMetal和LINQ的功能,SQL類設計器的代碼生成器爲C#和VB.Net僅需的Visual Studio 2008

+0

我正在考慮切換我的代碼以使用這些模板。任何人都有任何推薦資源或使用l2st4的鼓勵詞? – jpierson 2010-12-07 03:37:30

8

超過30臺T4發電機的名單我不是一個大因此我使用T4來讀取這些文件並創建一個AppSettings/WebSettings類,它將連接字符串和鍵/值封裝在一個真實的類中。這意味着,只要我總是使用AppSettings.SomeValue引用我的應用程序。配置,我得到編譯時檢查,這是真的不錯。

+0

不錯,你有T4模板可用嗎? – 2010-07-05 18:54:39

+6

我現在要做。 http://sites.google.com/site/mattmc3/AppSettings_T4.zip – mattmc3 2010-07-07 01:46:55

4

我用T4到:

  1. 生成CRUD SQL Server和Oracle腳本。
  2. 生成數據訪問層,基於數據庫模式
  3. 生成一層業務邏輯層,基於數據庫模式
  4. 生成ASP.Net Web窗體,HTML和代碼隱藏,基於數據庫架構(scafolding)。

它爲我的項目提供了一個很好,快速,簡單,基本的起點。

最好的是我在控制。

Here you can download an example of my templates

2

我用T4生成:

  • 代理(設計時間,注入/包裝監控 碼/日誌/ ...在一個非常特殊的暴露API)。
  • 接口生成對於一對一的接口/類映射
  • 通過「直接/真正的」主叫代碼替換反射 代碼(的 反射代碼維護優勢,但實際的代碼的性能),例如 時允許通過索引器訪問屬性,或者在該方向上訪問屬性 。
  • XML生成的Java項目(找不到一個Java T4樣的解決方案,這是很容易在公司內共享,T4 是容易的,因爲它是建立在,你可以從命令行運行它)
  • 從主數據庫生成枚舉(我們爲它們生成一個delphi代碼庫和.Net代碼庫)
相關問題