Visual Studio T4 против CodeSmith
Я использую CodeSmith последние 2 года и люблю то, что он делает для меня. Тем не менее, я также знаю о T4, который встроен в Visual Studio и может делать довольно интересные вещи. Судя по разговорам с друзьями T4 в VS2010 T4 будет еще лучше.
Итак, вопрос в том, продолжаю ли я ездить на шине CodeSmith или пора начать конвертировать все мои шаблоны в T4?
Обновление Возможно, я не был ясно, как я задал вопрос. Очевидно, я не собираюсь удалять свои шаблоны cs и прекращать их использование, пока у меня не заработают новые шаблоны. Однако стоит ли в этот момент усилий? T4 на данный момент предлагает полное преимущество перед CodeSmith? Есть ли какая-то особенность или набор функций, которые, написав вместо этого мои шаблоны для T4, позволят мне повысить эффективность в 100 раз?
1 ответ
Я был очень взволнован и взволнован T4 и попытался преобразовать все мои вещи CodeSmith в T4 - только чтобы узнать, что есть довольно много вещей, которые не подходят или отсутствуют в T4.
- нет поддержки параметров для вашего шаблона - вам нужно жестко закодировать все в ваш шаблон.....
- хост Visual Studio для T4 довольно ограничен
- нет прямой и простой поддержки нескольких выходных файлов из одного шаблона
Прочитайте статью Кэтлин Доллард " Что не так" с постом в блоге T4 - она в значительной степени королева генерации кода в.NET, и она очень хорошо подводит итог - я полностью согласен с ее проблемами.
В общем, после долгих тренировок и попыток, я в основном разочаровался в T4 - он просто еще не готов к прайм-тайм, по крайней мере, не к тому типу шаблонов, с которыми я работал (в основном, к проверке таблиц базы данных для извлечения). значения, например, в качестве основы самодельного ORM, или для извлечения констант и параметров конфигурации и т. д. из базы данных)
И после экспериментов с T4 в VS2010 я не уверен, что многое из этого было исправлено, правда.... не так много, кажется. Есть несколько других интересных концепций ( предварительно обработанные шаблоны, предположительно, поддержка параметров и т. Д.), Но большинство основных недостатков, похоже, остаются...
Итак, пока: не выбрасывайте CodeSmith! Возможно, Т4 в VS2016 будет столь же мощным.... но до тех пор.....
Ресурсы:
- Сайт Олега Сыча с большим количеством учебников, статей, кода
- T4Toolbox от Олега Сыча
- Визуальный редактор T4 от Clarius Consulting
- Tangible T4Editor (с поддержкой VS2010)