코드 생성 및 T4 텍스트 템플릿

Visual Studio에서 T4 텍스트 템플릿에는 텍스트 파일을 생성할 수 있는 텍스트 블록과 제어 논리가 함께 포함되어 있습니다.제어 논리는 Visual C# 또는 Visual Basic을 사용하여 프로그램 코드 조각으로 작성됩니다. 생성되는 파일은 웹 페이지 같은 모든 종류의 텍스트, 리소스 파일 또는 모든 언어로 작성된 프로그램 소스 코드일 수 있습니다.

T4 텍스트 템플릿은 다음과 같은 두 가지 종류가 있습니다.

  • 런타임 T4 텍스트 템플릿('전처리된' 템플릿)은 응용 프로그램에서 실행되어 일반적으로 출력의 일부로서 텍스트 문자열을 생성합니다.
    예를 들어 다음과 같이 HTML 페이지를 정의하는 템플릿을 만들 수 있습니다.

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

    템플릿은 생성된 출력과 유사합니다.템플릿이 결과 출력과 유사하기 때문에 템플릿을 편집하려는 경우 실수를 피하는 데 도움이 됩니다.

    또한 템플릿에는 프로그램 코드 조각이 포함되어 있습니다.이 조각을 사용하여 텍스트 섹션을 반복함으로써 조건부 섹션을 만들고 응용 프로그램에서 데이터를 표시할 수 있습니다.

    응용 프로그램에서는 템플릿에 의해 생성되는 함수를 호출하여 출력을 생성합니다.예를 들면 다음과 같습니다.

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

    Visual Studio가 설치되어 있지 않은 컴퓨터에서도 응용 프로그램을 실행할 수 있습니다.

    런타임 템플릿을 만들려면 전처리된 텍스트 템플릿 파일을 프로젝트에 추가합니다.또는 일반 텍스트 파일을 추가한 후 파일의 사용자 지정 도구 속성을 TextTemplatingFilePreprocessor로 설정할 수 있습니다.

    자세한 내용은 T4 텍스트 템플릿을 사용하여 런타임 텍스트 생성을 참조하십시오.템플릿 구문에 대한 자세한 내용은 T4 텍스트 템플릿 쓰기을 참조하십시오.

  • 디자인 타임 T4 텍스트 템플릿은 Visual Studio에서 실행되어 응용 프로그램의 소스 코드 및 다른 리소스의 일부를 정의합니다.
    일반적으로 단일 입력 파일 또는 데이터베이스에서 데이터를 읽는 몇 가지 템플릿을 사용하며, .cs, .vb 또는 기타 소스 파일의 일부를 생성합니다.각 템플릿마다 하나의 파일을 생성합니다.템플릿은 Visual Studio 또는 MSBuild에서 실행됩니다.

    예를 들어 입력 데이터가 구성 데이터의 XML 파일일 수 있습니다.개발 도중 XML 파일을 편집할 때마다 텍스트 템플릿은 응용 프로그램 코드의 일부를 생성합니다.템플릿이 다음 예제와 비슷할 수 있습니다.

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

    생성되는.cs 파일은 XML 파일의 값에 따라 다음과 비슷합니다.

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

    또 다른 예로, 비즈니스 동작에서 입력은 워크플로의 다이어그램일 수 있습니다.사용자가 비즈니스 워크플로를 변경하거나 다른 워크플로가 있는 새 사용자와 함께 작업을 시작하는 경우, 새 모델에 맞도록 코드를 다시 생성하기가 쉽습니다.

    디자인 타임 템플릿을 사용하면 요구 사항이 변경되는 경우 더 쉽고 안정적으로 구성을 변경할 수 있습니다.일반적으로 워크플로 예제와 같이 입력이 비즈니스 요구 사항과 관련하여 정의됩니다.따라서 사용자와 변경 내용에 대해 더욱 쉽게 논의할 수 있으므로디자인 타임 템플릿은 Agile 개발 프로세스에서 유용한 도구입니다.

    디자인 타임 템플릿을 만들려면 텍스트 템플릿 파일을 프로젝트에 추가합니다.또는 일반 텍스트 파일을 추가한 후 파일의 사용자 지정 도구 속성을 TextTemplatingFileGenerator로 설정할 수 있습니다.

    자세한 내용은 T4 텍스트 템플릿을 사용하여 디자인 타임 코드 생성을 참조하십시오.템플릿 구문에 대한 자세한 내용은 T4 텍스트 템플릿 쓰기을 참조하십시오.

[!참고]

하나 이상의 템플릿에서 읽는 데이터를 설명하기 위해 모델이라는 용어를 사용하는 경우도 있습니다.모델은 모든 형식 및 유형의 파일이나 데이터베이스일 수 있으며UML 모델이나 도메인별 언어 모델일 필요가 없습니다. '모델은 코드와 비슷하지 않고 비즈니스 개념과 관련하여 데이터를 정의할 수 있음을 나타냅니다.

텍스트 템플릿 변환 기능을 T4라고 합니다.

단원 내용

참고 항목

개념

방법: UML 모델에서 파일 생성

기타 리소스

도메인별 언어에서 코드 생성