Text Template Transformation Toolkit: Difference between revisions

Content deleted Content added
mNo edit summary
m Bot: http → https
 
(26 intermediate revisions by 14 users not shown)
Line 1:
{{Short description|Open-source template-based text generation framework}}
{{Infobox software
| name = Text Template Transformation Toolkit (T4)
Line 4 ⟶ 5:
| developer =
| released = {{Start date and age|2005}}
| latest release version = v2.0.5
| latest release date = {{Start date and age|2019|06|13}}<ref>{{cite web|url=https://github.com/mono/t4/tags|title=Tags · mono/t4 · GitHub|website=GitHub T4 repository|language=en|access-date=2020-01-06}}</ref>
| latest release date =
| repo = {{URL|https://github.com/mono/t4}}
| programming language = [[C Sharp (programming language)|C#]]
| operating system = [[Linux]], [[Microsoft Windows|Windows]]
| platform = [[.NET Framework]],<br />[[.NET Core]],<br />[[Mono (software)|Mono]]
| genre = [[Software framework]]
| license = [[MIT License]]
| website = {{URL|1=https://docs.microsoft.com/en-us/visualstudio/modeling/code-generation-and-t4-text-templates?view=vs-2019|2=Code Generation and T4 Text Templates}}
}}
[[Microsoft]]'s '''Text Template Transformation Toolkit''' (usually referred to as "T4") is a template[[free and open-source]] template-based text generation framework included with [[Visual Studio]]. T4 source files are usually denoted by the file extension ".tt".
 
==Overview==
T4 is used by [[Developer (software)|developers]] as part of an application or tool [[Framework (computer science)|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 Sharp (programming language)|C#]]), [[XML template engine|XML]], [[HTML]] or [[XAML Browser Applications|XAML]].
 
T4 uses a custom template format which can contain .NET code and [[string literal]]s 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.<ref name="Templatesza">{{citation|author=Web Templates|title=Website templates|url=http://www.websitetemplates.org.za/website-templates-type/|accessdateaccess-date=19 November 2013|year=2013|publisher=Website Templates South Africa|isbn=978-1-4251-3374-0}}</ref> By using the Text Transformation class, T4 can also be completely run entirely from within thea .NET applications via the use of the TextTransformation class whichapplication, eliminateseliminating 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]].<ref>{{cite web|url=http://blogs.msdn.com/b/davidebb/archive/2008/11/26/fun-with-t4-templates-and-dynamic-data.aspx |title=Fun with T4 templates and Dynamic Data - Angle Bracket Percent - Site Home - MSDN Blogs |publisher=Blogs.msdn.com |date=2008-11-26 |accessdateaccess-date=2012-05-17}}</ref> It is also used outside of Microsoft in projects such as SubSonic.<ref>{{cite web|author=|url=httphttps://gcapnias.wordpress.com/2009/01/12/subsonic-v3%e2%80%99s-t4-templates/ |title=SubSonic v3’sv3's T4 Templates « Daily Cycle |publisher=Gcapnias.wordpress.com |date=2009-01-12 |accessdateaccess-date=2012-05-17}}</ref>
 
T4 templating is also supported in [[Visual Studio]], [[MonoDevelop]] and JetBrains Rider.<ref>{{Cite web|url=https://www.jetbrains.com/rider/|title = Rider: The Cross-Platform .NET IDE from JetBrains}}</ref>
 
==Controls==
There are four types of controls handedhandled by the T4 template transformation engine.
 
{| class="wikitable" style="font-size: 0.9em; margin-left: 1em"
Line 47 ⟶ 51:
| Class and function definitions
|}
 
==Criticism==
{{Advert section|date=May 2017}}
Microsoft has often been criticized{{By whom|date=May 2017}} for the lack of tooling support for T4 within the Visual Studio IDE, and relies on third parties namely [https://web.archive.org/web/20110714235509/http://www.olegsych.com/2009/04/t4-editor-by-tangible-engineering/ Tangible Engineering] and [http://www.t4editor.net/ Clarius Consulting],<ref>{{cite web|last=Sych |first=Oleg |url=http://www.olegsych.com/2007/12/text-template-transformation-toolkit/ |title=T4: Text Template Transformation Toolkit |publisher=Oleg Sych |date=2007-12-22 |accessdate=2012-05-17}}</ref> however later revisions have included better tooling support.<ref name="autogenerated1">{{cite web|url=http://blogs.msdn.com/b/garethj/archive/2010/04/15/what-s-new-in-t4-in-visual-studio-2010.aspx |title=What's new in T4 in Visual Studio 2010 - [Profoundly Esoteric Image&#93; - Site Home - MSDN Blogs |publisher=Blogs.msdn.com |date=2010-04-15 |accessdate=2012-05-17}}</ref>
 
==History==
* 2005: Microsoft released the first version of T4 as an out -of -band release for Visual Studio 2005
* 2008: Microsoft includes it with Visual Studio 2008
* 2010: Microsoft includes it 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.<ref name="autogenerated1">{{cite web|url=http://blogs.msdn.com/b/garethj/archive/2010/04/15/what-s-new-in-t4-in-visual-studio-2010.aspx |title=What's new in T4 in Visual Studio 2010 - [Profoundly Esoteric Image&#93; - Site Home - MSDN Blogs |publisher=Blogs.msdn.com |date=2010-04-15 |access-date=2012-05-17}}</ref>
* 2015: Visual Studio 2015 Update 2 can use C# version 6.0 features <ref>{{Cite web|url=https://docs.microsoft.com/en-us/visualstudio/modeling/code-generation-and-t4-text-templates|title = Code Generation and T4 Text Templates - Visual Studio (Windows)| date=12 January 2024 }}</ref>
* 2017: Open source version of engine released which supports [[.NET Core]] <ref>{{Cite web|url=https://github.com/mono/t4|title = Mono.TextTemplating| website=[[GitHub]] |date = 22 October 2021}}</ref>
* 2019: JetBrains adds support for T4 in Rider<ref>{{Cite web|url=https://github.com/jetbrains/fortea|title = ForTea| website=[[GitHub]] |date = 20 October 2021}}</ref>
 
==See also==
{{Portal|Free and open-source software}}
* [[Comparison of code generation tools]]
* [[m4 (computer language)]]
Line 67 ⟶ 69:
{{Reflist|3}}
 
==External links==
{{MS DevTools}}
* [https://github.com/mono/t4 GitHub - mono/t4: T4 text templating engine]
 
{{Microsoft development tools}}
{{Microsoft APIs}}
{{Microsoft FOSS}}
Line 75 ⟶ 80:
{{DEFAULTSORT:Visual Studio}}
<!-- Please do not add [[Category:Microsoft development tools]] or [[Category:Integrated development environments]]. Category:Microsoft Visual Studio is already a sub-category of those categories. -->
[[Category:.NET Framework]]
[[Category:Free and open-source software]]
[[Category:Microsoft free software]]
[[Category:Microsoft Visual Studio]]
[[Category:Software that uses Mono (software)]]
[[Category:Software using the MIT license]]
[[Category:Template engines]]