GenWise: генерация кода туда и обратно для nHibernate - PullRequest
0 голосов
/ 08 июня 2009

Я экспериментировал с GenWise и CodeSmith. Я ищу инструмент, который будет:

а) позвольте мне отредактировать схему данных в SQL Server SSMS

b) генерировать все объекты C #, xml и т. Д. Из базы данных

в) имеет большой контроль над генерируемым XML и C #

d) делать "правильные вещи" при генерации кода, чтобы я мог использовать инструмент итеративно. то есть генерация кода туда-обратно, а не просто генерировать один или два раза, а затем сдаться, когда мне нужно внести изменения вручную.

e) Я не хочу решения, которое идет в обратном направлении: напишите C # с аннотациями и сгенерируйте схему БД. Это IMO отстой и винтик вам, когда вам нужно тонкую настройку схемы. Код БД следует выводить из схемы БД вверх, а не кода вниз.

Я должен сказать, что, похоже, GenWise делает все это. Кто-нибудь использовал его в течение длительного периода времени, включая итеративные изменения в схеме БД и регенерацию кода, а также настраивая бизнес-объекты / логику в коде?

1 Ответ

0 голосов
/ 08 июня 2009

Я использовал инструменты на основе шаблонов, такие как CodeSmith или MyGeneration, и я также использовал инструменты, такие как LLBGen, которые, как мне кажется, похожи на GenWise, хотя я никогда не использовал этот инструмент самостоятельно.

Лично я предпочитаю инструменты на основе шаблонов. ИМХО, они дают вам гораздо больше контроля и возможность точной настройки вашего сгенерированного кода. С такими инструментами, как LLBgen, мой опыт немного более ограничен, но мне не понравился тот факт, что я не понимал весь сгенерированный код до того, как нажал «генерировать». Такие инструменты, как LLBGen, сделают работу быстрее, но если вы не справляетесь с управлением и хотите знать, что делает сгенерированный код, вам нужно будет просмотреть весь сгенерированный код и понять, как он работает.

Кстати, я перешел от этого подхода к проектированию на основе домена несколько лет назад, но в некоторых случаях я все еще нахожу, что генерирование кода из БД является лучшим решением.

...