Generowanie kodu i szablony tekstowe T4

W programie Visual Studio szablon tekstowy T4 to kombinacja bloków tekstu i logiki sterowania, która może wygenerować plik tekstowy. Logika sterowania jest zapisywana jako fragmenty kodu programu w języku Visual C# lub Visual Basic. Funkcje języka C# w wersji 6.0 można używać w dyrektywach szablonów T4. Wygenerowany plik może być tekstem, takim jak strona internetowa, plik zasobu lub kod źródłowy programu w dowolnym języku.

W przypadku języka specyficznego dla domeny (DSL), przeznaczonego do wyrażania instrukcji w określonej przestrzeni problemu, dowiedz się, jak wygenerować kod na podstawie języka specyficznego dla domeny

Istnieją dwa rodzaje szablonów tekstu T4: czas wykonywania i czas projektowania

Szablony tekstowe T4 czasu wykonywania

Szablony czasu wykonywania są również nazywane "wstępnie przetworzonymi" szablonami. Szablony są uruchamiane w aplikacji w celu utworzenia ciągów tekstowych w ramach danych wyjściowych. Możesz na przykład utworzyć szablon, aby zdefiniować stronę HTML:

<html><body>
 The date and time now is: <#= DateTime.Now #>
</body></html>

Zwróć uwagę, że szablon przypomina wygenerowane dane wyjściowe. Podobieństwo szablonu do wynikowych danych wyjściowych pomaga uniknąć błędów, gdy chcesz go zmienić.

Ponadto szablon zawiera fragmenty kodu programu. Za pomocą tych fragmentów można powtarzać sekcje tekstu, tworzyć sekcje warunkowe i wyświetlać dane z aplikacji.

Aby wygenerować dane wyjściowe, aplikacja wywołuje funkcję wygenerowaną przez szablon. Na przykład:

string webResponseText = new MyTemplate().TransformText();

Aplikacja może działać na komputerze, na którym nie zainstalowano programu Visual Studio.

Aby utworzyć szablon czasu wykonywania, dodaj do projektu wstępnie przetworzony plik szablonu tekstowego. Możesz również dodać plik zwykły tekst i ustawić jego właściwość Custom Tool na TextTemplatingFilePreprocessor.

Aby uzyskać więcej informacji, zobacz Generowanie tekstu w czasie wykonywania przy użyciu szablonów tekstu T4. Aby uzyskać więcej informacji na temat składni szablonów, zobacz Pisanie szablonu tekstowego T4.

Szablony tekstowe T4 czasu projektowania

Szablony czasu projektowania definiują część kodu źródłowego i innych zasobów aplikacji. Zazwyczaj używasz kilku szablonów, które odczytują dane w jednym pliku wejściowym lub bazie danych, i generują niektóre pliki .cs, vb lub inne pliki źródłowe. Każdy szablon generuje jeden plik i jest kompilowany w programie Visual Studio lub MSBuild.

Na przykład dane wejściowe mogą być plikiem XML danych konfiguracji. Za każdym razem, gdy edytujesz plik XML podczas programowania, szablony tekstowe ponownie wygenerują część kodu aplikacji. Jeden z szablonów może przypominać następujący przykład:

<#@ output extension=".cs" #>
<#@ assembly name="System.Xml" #>
<#
 System.Xml.XmlDocument configurationData = ...; // Read a data file here.
#>
namespace Fabrikam.<#= configurationData.SelectSingleNode("jobName").Value #>
{
  ... // More code here.
}

Wygenerowany plik cs ma następujący format na podstawie wartości pliku XML:

namespace Fabrikam.FirstJob
{
  ... // More code here.
}

Innym przykładem może być diagram przepływu pracy w działaniu biznesowym. Gdy użytkownicy zmienią swój przepływ pracy biznesowych lub gdy zaczniesz pracować z nowymi użytkownikami, którzy mają inny przepływ pracy, można łatwo wygenerować kod, aby dopasować go do nowego modelu.

Uwaga

Termin model jest czasami używany do opisywania danych odczytywanych przez co najmniej jeden szablon. Model może być w dowolnym formacie, w dowolnym rodzaju pliku lub bazie danych. Nie musi być modelem UML ani modelem języka specyficznego dla domeny. "Model" wskazuje tylko, że dane można zdefiniować pod względem pojęć biznesowych, zamiast przypominać kod. Szablony czasu projektowania są szybsze i bardziej niezawodne podczas zmiany konfiguracji w miarę zmiany wymagań. Zazwyczaj dane wejściowe są definiowane pod względem wymagań biznesowych, jak w przykładzie przepływu pracy. Szablony czasu projektowania są przydatnymi narzędziami w procesie programowania elastycznego.

Aby utworzyć szablon czasu projektowania, dodaj plik szablonu tekstowego do projektu. Alternatywnie można dodać plik zwykły tekst i ustawić jego właściwość Custom Tool na TextTemplatingFileGenerator.

Aby uzyskać więcej informacji, zobacz Projektowanie generowania kodu w czasie projektowania przy użyciu szablonów tekstowych T4. Aby uzyskać więcej informacji na temat składni szablonów, zobacz Pisanie szablonu tekstowego T4.

Funkcja przekształcania szablonu tekstu nosi nazwę T4.

Zobacz też