views:

414

answers:

7

T4 has existed for several years in Visual Studio, but doesn't get a lot of attention. However, for those that know it, there seems to be some very creative and useful purposes.

I am researching some different ways that T4 is used, and I would appreciate to hear how YOU may have used it for real life scenarios. I am primarily interested in non-standard and creative uses.

Some interesting examples:

  1. Phil Haack uses T4 to create static CSS files from .less
  2. To Generate WPF and Silverlight Dependency Properties using T4 Templates

Note: I realize this is a discussion-oriented question, but the answers could be helpful to others. I have tagged it as subjective and also marked as "community wiki", so please allow the question to remain open. Thanks!

+2  A: 

I've used the T4 Templates within the sharp-architecture to generate everything from models to controllers to basic views.

Definitely worth checking out, even if you just want to see some advanced examples of T4 templates in action

lomaxx
+1  A: 

SubSonic 3.0 makes heavy use of T4 templates for generating your entity code.

Essentially it calls GetSchema() on your database connection and runs each table it finds through the T4 entity template. The great thing about using T4 here is that if you don't like the way it's handling your database schema, just edit the template.

I've tweaked the T4's to handle MySQL databases better for my situation, as I make use of many tinyint columns which the default T4 maps to byte types. A quick edit to the T4 gave me the type I wanted instead for my application entities.

womp
+2  A: 

LINQ to SQL templates for T4
http://l2st4.codeplex.com/

Templates replicating the functionality of the SQLMetal and the LINQ to SQL classes designer code-generators for both C# and VB.Net requiring just Visual Studio 2008.

Robert Harvey
+1  A: 

Check out this podcast on T4 by Scott Hanselman talking with Kathleen Dollard.
http://www.hanselminutes.com/default.aspx?showID=170

Chuck
+1  A: 

T4 Templates are used heavily in the Web Service Software Factory (Service Factory).

John Saunders
+1  A: 

See here for a list of more than 30 T4 Generators from the community in several areas including ASP.NET,WCF, UML, ADO.NET, .NET

http://t4-editor.tangible-engineering.com/How-Do-I-With-T4-Editor-Text-Templates.htm

Tim Fischer
+2  A: 

I am not a big fan of the stringy-ness of app.config/web.config, so I use T4 to read those files and make an AppSettings/WebSettings class that wraps the connection strings and key/values in a real class. This means that, as long as I always use AppSettings.SomeValue to reference my app.config, I get compile time checking, which is really nice.

mattmc3
nice, do you have that T4 template available somewhere?
Stephane
I do now. http://sites.google.com/site/mattmc3/AppSettings_T4.zip
mattmc3