Кто-нибудь портировал шаблон netTiers для шаблонов T4 в Visual Studio? Или существует система подобного масштаба? Кто-нибудь использует T4 в рабочей среде? Какие (если есть) основные различия между Codesmith и T4?CodeSmith v.s. T4: .netTiers level
ответ
Я немного ругался в T4 - эй, если он бесплатный и включен в VS2008, используйте его, правильно?
Основная идея заключалась в том, чтобы создать набор шаблонов для чтения таблицы базы данных и создать из него собственные классы ORM «roll-your-own».
Я отказался от T4, разочаровался и не смог получить даже самые простые вещи для работы, которые являются куском пирога в CodeSmith.
Даже простая задача, такая как выбор того, какой сервер, база данных и таблица использовать, не может быть выполнена в T4 эффективно из «вне» самого шаблона. Да, вы можете скопировать все эти значения в виде строковых значений в шаблон T4, но c'mon, это действительно не решение, не так ли?
CodeSmith имеет большую поддержку для выбора сервера, базы данных и таблиц, и вы можете установить их как свойства в шаблоне и просто выбрать то, что хотите, и позволить шаблону делать ваши вещи на той конкретной таблице, которую вы выбрали.
Мое заключение: T4 многообещающий, но «еще нет». Это может работать для очень простых сценариев, но сейчас это, на мой взгляд, нигде не столь гибко и мощно, как Codesmith.
Для сценария, такого как .netTiers, я придерживаюсь Codesmith на данный момент.
Marc
Конечно, вы можете иметь настройки в отдельном шаблоне и просто включать его в свой основной шаблон генерации. Таким образом, ваш файл настроек будет небольшим, и все будет содержаться в одном файле. Может быть названо 'settings.tt' –
@Robert: конечно - но это не решает фундаментальной проблемы - нет простого способа передать параметры шаблонам T4 прямо сейчас - недостаток ** MAJOR ** по-моему –
Я знаю это старый вопрос, но на всякий случай кто-то спотыкается о дискуссии - у T4 теперь есть директива «Параметр». http://www.olegsych.com/2010/05/t4-parameter-directive/ – EBarr
T4 не является CodeSmith. Да, вы указываете параметры в файле .tt в виде кода C# или Visual Basic и используете директиву < # @ include #> для ссылки на фактическую реализацию логики генерации кода. Это не более жесткое кодирование, чем указание одной и той же информации в файле XML с помощью CodeSmith.
Для набора шаблонов T4, подобных NetTiers, ознакомьтесь с S # arp Architecture: http://code.google.com/p/sharp-architecture/.
Если вы ищете реализацию T4 хорошо поддерживаемого DAL, который является Open Source с интерфейсом Linq, а также собственным интерфейсом Fluent, который создаст обертки для таблиц, хранимых прокси, просмотров и т. Д. Затем вам нужно попробовать SubSonic 3.0. SubSonic 2.2 имеет такую же добротность минус интерфейс T4 и Linq и находится в режиме деблокирования. SubSonic 3.0 находится в Alpha, но вы можете скачать код или DLL и T4-шаблоны, если хотите.
- 1. Visual Studio T4 vs CodeSmith
- 2. Структура решения Visual Studio с использованием фреймворков Codesmith (NetTiers/Plinqo)
- 3. Nettiers WPF MVVM
- 4. Куда NetTiers?
- 5. Netty 4.1: ioBuffer v.s. directBuffer v.s. heapBuffer
- 6. StackOverflowException сериализация объекта .netTiers
- 7. Внутренние соединения с NetTiers
- 8. NetTiers 2.3 сбой генерации
- 9. Powermockito mock operation on level level level
- 10. Плюсы и минусы CodeSmith
- 11. Сохранить SQL с CodeSmith
- 12. Бесплатные альтернативы Codesmith?
- 13. CodeSmith.Insight.ClientError CodeSmith 5.2
- 14. netTiers вызывает FatalExecutionEngineError в WPF
- 15. выбор элементов из NetTiers EntityGridView
- 16. Тест производительности: sem_t v.s. dispatch_semaphore_t и pthread_once_t v.s. dispatch_once_t
- 17. kses v.s. strip_tags
- 18. Angular2 Http v.s HTTP_PROVIDERS
- 19. ArrayList v.s Hash Tables
- 20. Терминал Linux v.s. Eclipse
- 21. Алгоритм Карацубы v.s. Оператор «*»?
- 22. C# delegate v.s. eventHandler
- 23. Date.getTime() v.s. Date.now()
- 24. V.S 2008 Отчетность
- 25. java.util.zip - ZipInputStream v.s. ZipFile
- 26. Notepad v.s. другие платформы
- 27. QtConcurrent blockingMappedReduced v.s MappedReduced
- 28. IPC: Ramdisk V.S. socket
- 29. PCLPointCloud2 v.s. PointCloud
- 30. CodeSmith: Как ссылаться на сборку
Мне также интересно узнать, как люди преодолевают тот факт, что каждый шаблон T4 генерирует только один выходной файл. –
http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/ –