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 довольно ограничен.
  • нет прямой и простой поддержки нескольких выходных файлов из одного шаблона

Отъезд Kathleen Dollard Что не так с T4 в блоге - она ​​в значительной степени королева генерации кода на .NET, и она суммирует ее очень красиво - я полностью согласен на 100% с ее проблемами.

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

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

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

Ресурсы