Text Template Transformation Toolkit

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Microsoft's Text Template Transformation Toolkit (usually referred to as "T4") is a template based text generation framework included with Visual Studio. T4 source files are usually denoted by the file extension ".tt".

T4 is used by developers as part of an application or tool framework to automate the creation of text files with a variety of parameters. These text files can ultimately be any text format, such as code (for example C#), XML, HTML or XAML.

T4 uses a custom template format which can contain .NET code and string literals in it, this is parsed by the T4 command line tool into .NET code, compiled and executed. The output of the executed code is the text file generated by the template.[1] T4 can also be completely run within the .NET applications via the use of the TextTransformation class which eliminates the need for the end user to have Visual Studio installed.

T4 is used within Microsoft in ASP.NET MVC for the creation of the views and controllers, ADO.NET Entity Framework for entity generation, and ASP.NET Dynamic Data.[2] It is also used outside of Microsoft in projects such as SubSonic[3]

T4 templating is also supported in MonoDevelop.

Criticism

Microsoft has often been criticized for the lack of tooling support for T4 within the Visual Studio IDE, and relies on third parties namely Tangible Engineering and Clarius Consulting,[4] however later revisions have included better tooling support.[5]

History

  • 2005: Microsoft released the first version of T4 as an out of band release for Visual Studio 2005
  • 2008: Microsoft includes it in the box with Visual Studio 2008
  • 2010: Microsoft includes it in the box with Visual Studio 2010 which included significant new features to improve performance, usability for both template authors and tool builders and better integration into Visual Studio's DSL tools.[5]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.