CodeSmith v.s. T4: набор уровней .netTiers - PullRequest
6 голосов
/ 13 мая 2009

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

Ответы [ 3 ]

5 голосов
/ 13 мая 2009

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

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

5 голосов
/ 13 мая 2009

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

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

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

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

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

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

Поскольку для такого сценария, как .netTiers, я бы пока использовал Codesmith.

Марк

1 голос
/ 13 мая 2009

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

...