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 будет столь же мощным.... но до тех пор.....

Ресурсы:

Другие вопросы по тегам