코드 생성 및 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라고 합니다.
단원 내용
T4 텍스트 템플릿을 사용하여 런타임 텍스트 생성
텍스트 파일을 생성하는 응용 프로그램에서 미리 컴파일된 텍스트 템플릿은 텍스트를 정의하는 쉽고 안정적인 방법입니다.그러나 이 방법은 런타임에 변경되는 텍스트 템플릿에 대해서는 사용할 수 없습니다.T4 텍스트 템플릿을 사용하여 디자인 타임 코드 생성
모델로부터 코드 및 기타 리소스를 생성하면 해당 모델을 업데이트하여 응용 프로그램을 업데이트할 수 있습니다.빌드 프로세스의 코드 생성
Visual Studio Visualization and Modeling SDK를 설치한 경우 생성되는 코드가 모델의 변경 사항과 항상 동기화되도록 할 수 있습니다.T4 텍스트 템플릿 쓰기
텍스트 템플릿 파일의 구문입니다.연습: 텍스트 템플릿을 사용하여 코드 생성
코드 생성을 사용하기 위한 한 가지 방법을 보여 줍니다.T4 텍스트 템플릿 디버깅
텍스트 템플릿 및 일반적인 일부 텍스트 템플릿 오류를 디버깅하는 방법입니다.TextTransform 유틸리티 사용하여 파일 생성
텍스트 템플릿 변환을 실행하는 데 사용 가능한 명령줄 도구입니다.T4 텍스트 변환 사용자 지정
지시문 처리기 및 고유한 데이터 소스를 위한 사용자 지정 템플릿 호스트를 작성하는 방법입니다.