Visual Studio T4 против CodeSmith - PullRequest
       17

Visual Studio T4 против CodeSmith

17 голосов
/ 29 марта 2010

Я использую CodeSmith последние 2 года и люблю то, что он делает для меня. Тем не менее, я также знаю о T4, который встроен в Visual Studio и может делать довольно интересные вещи. Судя по разговорам с друзьями T4 в VS2010 T4 будет еще лучше.

Итак, вопрос заключается в следующем: я продолжаю ездить на шине CodeSmith или пора начать конвертировать все мои шаблоны в T4?

Обновление Возможно, я не был ясен в том, как я задал вопрос. Очевидно, что я не собираюсь удалять свои шаблоны cs и прекращать их использование, пока у меня не заработают новые шаблоны. Однако стоит ли в этот момент усилий? T4 на данный момент предлагает полное преимущество перед CodeSmith? Есть ли какая-то функция или набор функций, которые, написав вместо этого мои шаблоны для T4, позволят мне повысить эффективность в 100 раз?

1 Ответ

24 голосов
/ 29 марта 2010

Я был очень взволнован и взволнован по поводу T4 и пытался преобразовать все мои вещи из CodeSmith в T4 - только чтобы узнать, что есть довольно много вещей, которые не подходят или отсутствуют в T4.

  • нет поддержки параметров для вашего шаблона - вам нужно жестко закодировать все в ваш шаблон .....
  • хост Visual Studio для T4 довольно ограничен
  • нет прямой и простой поддержки нескольких выходных файлов из одного шаблона

Посмотрите сообщение Кэтлин Доллард Что не так с T4 - она ​​в значительной степени королева генерации кода в .NET, и она очень хорошо подводит итог - я полностью согласен с ее проблемами.

В целом, после долгих тренировок и попыток, я в основном разочаровался в T4 - он просто еще не готов к прайм-тайм, по крайней мере, не к типу шаблонов, с которыми я работал (в основном, проверяя базу таблицы для извлечения значений, например, в качестве основы самодельного ORM, или для извлечения констант и параметров конфигурации и т. д. из базы данных)

А из экспериментов с T4 в VS2010 я не уверен, насколько это было исправлено, правда ... не так много, кажется. Существует несколько других интересных концепций ( предварительно обработанные шаблоны , предположительно поддержка параметров и т. Д.), Но большинство основных недостатков, похоже, все еще остаются .....

Итак, пока: не выбрасывайте CodeSmith! Возможно, Т4 в VS2016 будет таким же мощным .... но до тех пор .....

Ресурсы:

...