Generadores de NHibernate

¿Cuál es la mejor herramienta para generar clase Entity y / o archivos hbm y / o sql script para NHibernate?

Esta lista a continuación es de http://www.hibernate.org/365.html , ¿cuál es el mejor por qué?

  • Generador gratuito O / R de fuente abierta (GPL) de Moregen que puede fusionarse en proyectos existentes de Visual Studio. También combina cambios a las clases generadas.
  • NConstruct Lite Herramienta gratuita para generar el código fuente de la asignación O / R de NHibernate. Soporte de diferentes bases de datos (Microsoft SQL Server, Oracle, Access).
  • GENNIT NHibernate Code Generator Generador de código Web gratuito / comercial Web 2.0 de código NHibernate utilizando el diseñador UML en línea WYSIWYG.
  • GenWise Studio con NHibernate Template Producto comercial; Importa su base de datos existente y genera todos los XML y clases, incluidas las fábricas. También puede generar una aplicación web asp.net para su NHibernate BO-Layer automáticamente.
  • Analizador de HQL Analyzer y hbm.xml GUI
  • ObjectMapper por Mats Helander es una GUI de mapeo con soporte NHibernate
  • MyGeneration es una GUI del generador de código basado en plantillas. Su biblioteca de plantillas incluye plantillas para generar archivos de mapeo y clases desde una base de datos.
  • AndroMDA es un marco de generación de código de fuente abierta que utiliza Model Driven Architecture (MDA) para transformar los modelos UML en componentes desplegables. Admite la generación de capas de acceso a datos que utilizan NHibernate como marco de persistencia.
  • Plantilla de CodeSmith para NH
  • NHibernate Helper Kit es un complemento VS2005 para generar clases y mapear archivos.
  • NConstruct – Intelligent Software Factory Producto comercial; Generación completa del código fuente de .NET C # para todos los niveles del sistema de información a través del sencillo procedimiento del asistente. Asignación O / R basada en NHibernate. Para WinForms y ASP.NET 2.0.

Creo que deberías mirar a Fluent NHibernate en su lugar. Generar asignaciones siempre te lleva a la marca del 80%, y aún tienes que personalizar para obtener lo que deseas. Fluent-NHibernate le permite mapear sus entidades con una API segura y amigable con la refactorización.

Existe una nueva versión 2.0 Beta 2 disponible con muchas características nuevas y soporte para mapeo nhibernate, uno a muchos y muchos a muchos.

http://www.codeplex.com/Wikipage?ProjectName=nmg

Puede probar Mindscape NHibernate Designer que se instala en Visual Studio 2010. Aunque todavía no lo he probado.

Una herramienta comercial para hacer esto es Visual NHibernate . Tenga en cuenta que trabajo para Slyce Software, la compañía que crea Visual NHibernate.

Actualización: Visual NHibernate ahora tiene código abierto. Ver: el anuncio

La primera pregunta que debe hacerse es por qué necesita un generador. Honestamente, en mi experiencia escribiendo archivos hbm no es difícil en absoluto.

Dicho eso, si realmente no desea escribir los archivos hbm, tal vez debería consultar Active Record .

He escuchado algunas cosas sobre fluidez, pero nunca lo he usado, así que no puedo decirlo. ¿Tienes tu intellisense configurado para los archivos hbm? Solo escribo mis propios archivos xml, pero sé que eso no es lo que estás buscando.

¿Qué estarías buscando para hacer scripts SQL, generar tablas? Una de las bellezas de NHibernate es su generación de consultas flay, por lo que no tiene que crear SP para todos sus objetos.

Debería echar un vistazo al Diseñador NHibernate de Devart: Entity Developer para NHibernate

Nota: Devart Company .

Intenté ambos, NConstruct lite y codesmith. Necesitaba obtener el modelo de objetos de una base de datos existente para un proyecto asp.net existente escrito en VB, esta es mi experiencia:

contras de codesmith:

  • no detecta herencia entre tablas
  • no mapea las vistas de la base de datos
  • uso complejo

Pros de codesmith:

  • genera c # y VB
  • soporte para una gran cantidad de motores de DB incluyendo PostgreSQL
  • Integración de Visual Studio

Contras NConstruct:

  • no genera VB, solo c #
  • pocos motores DB, solo SQL-Server, Oracle y MS-Access

Profesionales de NConstruct:

  • mapas de vistas
  • autodetecta algo de herencia (para 1-1 relaciones)
  • sencillo

En mi caso, NConstruct hizo aproximadamente el 60% del trabajo para mí.

Sí, escribir archivos hbm es muy simple.

Sin embargo, es un gran dolor cuando tienes una gran base de datos.