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