Описание тега t4
T4 используется разработчиками для автоматизации повторяющихся процессов создания текстовых файлов. Текстовые файлы могут быть любыми, от HTML-кода, XML, XAML и наиболее часто компилируемых файлов кода (Visual Basic, C# или других языков).
T4 использует настраиваемый формат шаблона, который может содержать исполняемый код C# или Visual Basic вместе со строковыми литералами, которые становятся частью сгенерированного файла.
Преимущества
Интеграция с Visual Studio
Каждый раз, когда разработчик создает и сохраняет файл с расширением *.tt, Visual Studio автоматически запускает механизм шаблонов T4 и обрабатывает сохраненный шаблон. Нет необходимости запускать какой-либо внешний инструмент, что делает его прозрачным для разработчиков.
Поддержка языка.NET
Разработчикам проще использовать то, что они знают, чем изобретать велосипед. Разработка шаблонов T4 очень похожа на написание файлов ASPX, в которых исполняемый код располагается вдоль строковых литералов (HTML-код, интерпретируемый клиентским браузером) и манипулирует им по мере необходимости.
Недостатки
Отсутствие поддержки инструментов Visual Studio
Можно писать и сохранять шаблоны T4 внутри Visual Studio, но у разработчиков не будет других преимуществ современной среды разработки, таких как форматирование / раскраска кода или код IntelliSense. Для обеспечения этой функции требуются сторонние инструменты. Доступные расширения, среди прочего, включают Tangible T4 Editor и Devart T4 Editor.
Один шаблон, один выходной файл
Иногда требуется, чтобы шаблон обрабатывал несколько ресурсов (файлы, таблицы базы данных и т. Д.) Одновременно и выводил столько же текстовых файлов. По умолчанию T4 не поддерживает вывод в несколько файлов. Но есть и решения, позволяющие преодолеть это ограничение.
Применение
Существует множество различных сценариев использования шаблонов T4, которые могут значительно помочь разработчикам сократить время разработки. В Интернете есть шаблоны для:
- Генерация кода LINQ to SQL/EF
- Шаблон T4MVC для создания строго типизированных помощников ASP.NET MVC
- Шаблон T4CSS для автоматического создания файлов CSS из менее подробного формата LESS
-
enum
генерация из универсального шаблона таблицы поиска в базе данных - и т.п.
Microsoft также использует шаблоны T4 для контроллера ASP.NET MVC и создания представлений, когда разработчики добавляют новый контроллер или представление из Visual Studio.