Вопрос
Какой лучший инструмент для генерации класса сущностей и / или файлов hbm и / или sql-скрипта для NHibernate?
Приведенный ниже список взят из http://www.hibernate.org/365.html, какой из них самый лучший, почему?
- Бесплатный O / R-генератор Moregen с открытым исходным кодом (GPL), который может интегрироваться в существующие проекты Visual Studio.Также объединяет изменения в сгенерированных классах.
- NConstruct Lite - бесплатный инструмент для генерации исходного кода NHibernate O / R mapping.Поддержка различных баз данных (Microsoft SQL Server, Oracle, Access).
- GENNIT NHibernate Code Generator Бесплатный / коммерческий веб 2.0 генерация кода NHibernate с помощью онлайн-дизайнера UML WYSIWYG.
- GenWise Studio с коммерческим продуктом шаблона NHibernate;Импортирует вашу существующую базу данных и генерирует весь XML и классы, включая фабрики.Он также может автоматически сгенерировать asp.net веб-приложение для вашего NHibernate BO-Layer.
- Анализатор HQL и hbm.xml Графический редактор
- ObjectMapper от Mats Helander - графический интерфейс для отображения с поддержкой NHibernate
- MyGeneration - это графический интерфейс генератора кода на основе шаблонов.Его библиотека шаблонов включает шаблоны для создания файлов сопоставления и классов из базы данных.
- AndroMDA - это платформа генерации кода с открытым исходным кодом, которая использует Model Driven Architecture (MDA) для преобразования моделей UML в развертываемые компоненты.Он поддерживает генерацию уровней доступа к данным, которые используют NHibernate в качестве своей платформы сохранения.
- Шаблон CodeSmith для NH
- NHibernate Helper Kit - это надстройка VS2005 для создания классов и файлов сопоставления.
- NConstruct - Коммерческий продукт Intelligent Software Factory;Полный .ЧИСТАЯ генерация исходного кода C # для всех уровней информационной системы с помощью простой процедуры мастера.Отображение O / R на основе NHibernate.Как для WinForms, так и для ASP.NET 2.0.
Решение
Я думаю, вам следует взглянуть на Свободно владеет NHibernate вместо этого.Генерация сопоставлений всегда приводит вас к отметке 80%, и вам все равно придется настраивать, чтобы получить то, что вы хотите.Fluent-NHibernate позволяет вам сопоставлять ваши объекты с помощью безопасного для компиляции и удобного для рефакторинга API.
Другие советы
Доступна новая версия 2.0 Beta 2 с множеством новых функций и поддержкой fluent nhibernate, сопоставления "один ко многим" и "многие ко многим".
Вы можете попробовать Современный Дизайнер Mindscape который устанавливается в Visual Studio 2010.Хотя я еще не пробовал этого делать.
Коммерческим инструментом для этого является Визуальный NHibernate. Пожалуйста, обратите внимание, что я работаю в Slyce Software, компании, которая создает Visual NHibernate.
Обновить: Visual NHibernate теперь доступен с открытым исходным кодом.Видишь: объявление
Первый вопрос, который вы должны задать себе, - зачем вам вообще нужен генератор.Честно говоря, по моему опыту, писать файлы hbm совсем не сложно.
При этом, если вы действительно не хотите записывать файлы hbm, возможно, вам следует заглянуть в Активная запись.
Я кое-что слышал о fluent, но никогда им не пользовался, поэтому не могу сказать.Настроен ли ваш intellisense для файлов hbm?Я просто пишу свои собственные xml-файлы, но я знаю, что это не то, что вы ищете.
Что бы вы искали в SQL-скриптах для создания таблиц?Одной из прелестей NHibernate является генерация запросов on flay, поэтому вам не нужно создавать SP для всех ваших объектов.
Вам стоит взглянуть на NHibernate Designer от Devart: Разработчик сущности для NHibernate
Примечание:Компания Devart ( Деварт).
Я попробовал оба варианта, NConstruct lite и codesmith.Мне нужно, чтобы получить объектную модель из существующей базы данных для существующего проекта ASP.NET написанные на VB, это мой опыт:
минусы кодировщика:
- не обнаруживает наследования между таблицами
- не отображает представления базы данных
- комплексное использование
профессионалы-программисты:
- генерирует c # и VB
- поддержка множества движков БД, включая PostgreSQL
- Интеграция с Visual Studio
Недостатки конструкции :
- не генерирует VB, только c#
- несколько движков БД, только SQL-Server, Oracle и MS-Access
Плюсы NConstruct :
- карты для просмотра
- автоматическое определение некоторого наследования (для отношений 1-1)
- простой
В моем случае NConstruct выполнил за меня около 60% работы.
Да, писать файлы hbm очень просто.
Однако это огромная боль, когда у вас большая база данных.