CodeSmith v.s. T4: комплект уровня .netTiers

Делай, как говорит ошибка, и превращай свой string в bytes объект

def create_xml():
    xml = b'''<?xml version="1.0" encoding="UTF-8"?>
    <zAppointments>
    </zAppointments>
    '''
6
задан John Saunders 27 July 2009 в 17:00
поделиться

3 ответа

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

Для набора шаблонов T4, подобных NetTiers, ознакомьтесь с архитектурой S # arp: http://code.google.com/p/sharp-architecture/ .

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

Для набора шаблонов T4, подобных NetTiers, ознакомьтесь с архитектурой S # arp: http://code.google.com/p/sharp-architecture/ .

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

Для набора шаблонов T4, подобных NetTiers, ознакомьтесь с архитектурой S # arp: http://code.google.com/p/sharp-architecture/ .

5
ответ дан 9 December 2019 в 22:39
поделиться

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

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

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

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

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

Мой вывод: T4 многообещающий, но пока «не там». Он может работать для очень простых сценариев, но сейчас, на мой взгляд, он далеко не такой гибкий и мощный, как Codesmith.

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

Марк

5
ответ дан 9 December 2019 в 22:39
поделиться

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

1
ответ дан 9 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: