Генераторы NHibernate
Каков наилучший инструмент для создания Entity Class и/или hbm файлов и/или sql script для NHibernate.
Этот список приведен ниже http://www.hibernate.org/365.html, что лучше всего, почему?
- Генератор O/R с открытым исходным кодом (GPL) Moregen, который может объединиться в существующие проекты Visual Studio. Также объединяет изменения в сгенерированные классы.
- Инструмент NConstruct Lite Free для генерации исходного кода NHibernate O/R. Поддержка различных баз данных (Microsoft SQL Server, Oracle, Access).
- Генератор кода GENNIT NHibernate Бесплатный/Коммерческий генерация кода Web 2.0 кода NHibernate с использованием WYSIWYG онлайн-дизайнера UML.
- GenWise Studio с шаблоном NHibernate Коммерческий продукт; Импортирует существующую базу данных и генерирует все XML и классы, включая заводы. Он также может автоматически создавать веб-приложение asp.net для вашего BO-слоя NHibernate.
- Анализатор HQL и редактор графического интерфейса hbm.xml
- ObjectMapper by Mats Helander - это графический интерфейс с поддержкой NHibernate.
- MyGeneration - это графический интерфейс генератора кода на основе шаблонов. Его библиотека шаблонов включает шаблоны для генерации файлов сопоставления и классов из базы данных.
- AndroMDA - это среда генерации кода с открытым исходным кодом, которая использует Model Driven Architecture (MDA) для преобразования моделей UML в развертываемые компоненты. Он поддерживает создание слоев доступа к данным, которые используют NHibernate в качестве своей инфраструктуры персистентности.
- Шаблон CodeSmith для NH
- NHibernate Helper Kit - это надстройка VS2005 для создания классов и файлов сопоставления.
- NConstruct - интеллектуальное программное обеспечение Factory коммерческий продукт; Полная генерация исходного кода .NET С# для всех уровней информационной системы через простую процедуру мастера. O/R, основанное на NHibernate. Для WinForms и ASP.NET 2.0.
Ответы
Ответ 1
Я думаю, вам стоит вместо этого взглянуть на Fluent NHibernate. Генерирование сопоставлений всегда приводит вас к отметке 80%, и вам все равно придется настраивать, чтобы получить то, что вы хотите. Fluent-NHibernate позволяет вам сопоставлять ваши объекты с помощью компилируемого и рефакторингового API.
Ответ 2
Там есть новая версия 2.0 Beta 2 с множеством новых функций и поддержка свободного графического отображения nhibernate, one-to-many и many-to-many.
http://www.codeplex.com/Wikipage?ProjectName=nmg
Ответ 3
Коммерческий инструмент для этого - Visual NHibernate.
Обратите внимание, что я работаю для Slyce Software, компании, которая создает Visual NHibernate.
Обновление: Visual NHibernate теперь работает с открытым исходным кодом. Смотрите: объявление
Ответ 4
Вы можете попробовать Mindscape NHibernate Designer, который устанавливается в Visual Studio 2010. Хотя я еще не пробовал.
Ответ 5
Первый вопрос, который вам нужно задать себе, - это то, почему вам нужен генератор. Честно говоря, по моему опыту писать hbm файлы не сложно.
Если вы действительно не хотите писать файлы hbm, возможно, вам стоит заглянуть в Active Record.
Ответ 6
Я слышал кое-что о беглоте, но никогда не использовал его, поэтому не могу сказать. У вас есть intellisense для файлов hbm? Я просто пишу свои собственные XML файлы, но я знаю, что не то, что вы ищете.
Что бы вы искали SQL-скрипты для создания таблиц? Одна из красавиц NHibernate - это генерация запросов на флеш, поэтому вам не нужно создавать SP для всех ваших объектов.
Ответ 7
Я попробовал оба: NConstruct lite и codemith.
Мне нужно было получить объектную модель из существующей базы данных для существующего проекта asp.net, написанного на VB, это мой опыт:
codemith cons:
- не обнаруживает наследование между таблицами
- не отображает представления базы данных
- сложное использование
codemith pros:
- генерирует С# и VB
- поддержка многих движков БД, включая PostgreSQL
- Интеграция с Visual Studio
NConstruct cons:
- не генерирует VB, только С#
- несколько движков DB, только SQL-Server, Oracle и MS-Access
Преимущества NConstruct:
- карты для просмотров
- автоопределяет некоторое наследование (для отношений 1-1)
- просто
В моем случае NConstruct сделал около 60% работы для меня.
Ответ 8
Вы должны взглянуть на Devart NHibernate Designer: Entity Developer для NHibernate
Примечание: компания Devart.
Ответ 9
Да, писать hbm файлы очень просто.
Однако это огромная боль, когда у вас большая БД.