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

업데이트: 2011년 3월

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라고 합니다.

단원 내용

리소스

T4 Developer Center는 T4에 대한 샘플, 팁 및 질문과 대답을 모아 놓은 사이트입니다.

참고 항목

개념

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

기타 리소스

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

변경 기록

날짜

변경 내용

이유

2011년 3월

런타임 템플릿과 디자인 템플릿의 차이점을 강조합니다.

고객 의견