CodeSmith против T4: набор уровней.netTiers

Кто-то перенес шаблон netTiers на шаблоны Visual Studio T4? Или есть система подобного масштаба? Кто-нибудь использует Т4 в рабочей среде? Какие (если таковые имеются) основные различия между Codesmith и T4?

3 ответа

Я немного поболтал в T4 - эй, если он бесплатный и включен в VS2008, используйте его, верно?

Моя основная идея состояла в том, чтобы создать набор шаблонов для чтения таблицы базы данных и создать из нее наши собственные классы ORM.

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

Даже простая задача, такая как выбор используемого сервера, базы данных и таблицы, не может быть эффективно выполнена в T4 "извне" самого шаблона. Да, вы можете жестко закодировать все эти значения в виде строковых значений в шаблон T4 - но да, это действительно не решение, не так ли?

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

Мой вывод: Т4 многообещающий, но "пока нет". Это может работать для очень простых сценариев, но сейчас, на мой взгляд, это далеко не так гибко и мощно, как в Codesmith.

Для сценария, такого как.netTiers, я бы пока остановился на Codesmith.

Марк

Т4 не является CodeSmith. Да, вы указываете параметры в файле.tt в форме кода C# или Visual Basic и используете директиву <# @ include #> для ссылки на фактическую реализацию логики генерации кода. Это не более жесткое программирование, чем указание той же информации в XML-файле с помощью CodeSmith.

Для NetTiers-подобного набора шаблонов T4, проверьте S # arp Architecture: http://code.google.com/p/sharp-architecture/.

Если вы ищете реализацию T4 хорошо поддерживаемого DAL с открытым исходным кодом с интерфейсом Linq, а также собственный интерфейс Fluent, который создаст оболочки для таблиц, хранимых процедур, представлений и т. Д. Затем вам нужно попробовать SubSonic 3.0. SubSonic 2.2 имеет то же самое достоинство за исключением интерфейса T4 и Linq и находится в режиме выпуска. SubSonic 3.0 находится в Alpha, но вы можете скачать код или.dll и шаблоны T4, если хотите.

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