NHibernate Generadores [cerrado]


Cuál es la mejor herramienta para generar Clase de Entidad y/o archivos hbm y/o script sql para NHibernate.

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

  • Más un Generador de O/R Libre y de Código Abierto (GPL) que puede fusionarse con Proyectos existentes de Visual Studio. También fusiona los cambios a las clases generadas.
  • NConstruct Lite Herramienta gratuita para generar código fuente de asignación de O/R de NHibernate. Soporte de diferentes bases de datos (Microsoft SQL Server, Oracle, Access).
  • GENNIT NHibernate Code Generator Free/Commercial Web 2.0 code generation of NHibernate code using WYSIWYG online UML designer.
  • GenWise Studio con NHibernate Template Commercial product; Importa su base de datos existente y genera todos los XML y Clases, incluidas las fábricas. También puede generar un asp.net aplicación web para su NHibernate BO-Layer automáticamente.
  • Analizador HQL y hbm.xml GUI Editor
  • Mapeador de objetos por Mats Helander es una GUI de mapeo con soporte NHibernate
  • MyGeneration es una GUI de generador de código basada en plantillas. Su biblioteca de plantillas incluye plantillas para generar archivos de asignación y clases a partir de una base de datos.
  • AndroMDA es un framework de generación de código abierto que utiliza la Arquitectura dirigida por modelos (MDA) para transformar modelos UML en componentes implementables. Admite la generación de capas de acceso a datos que utilizan NHibernate como su marco de persistencia.
  • Plantilla CodeSmith para NH
  • NHibernate Helper Kit es un complemento VS2005 para generar clases y archivos de asignación.
  • NConstruct - Producto comercial de Fábrica de Software inteligente; Generación completa de código fuente.NET C# para todos los niveles del sistema de información a través del procedimiento simple wizard. O / R mapping basado en NHibernate. Tanto para WinForms como para ASP.NET 2.0.
 32
Author: swilliams, 2008-09-03

9 answers

Creo que deberías mirar NHibernate fluido en su lugar. Generar asignaciones siempre te lleva a la marca del 80%, y aún tienes que personalizar para obtener lo que quieres. Fluent-NHibernate le permite mapear sus entidades con una API segura de compilación y fácil de refactorizar.

 22
Author: Ben Scheirman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-10 16:48:48

Hay una nueva versión 2.0 Beta 2 disponible con un montón de nuevas características y soporte para fluent nhibernate, uno a muchos y muchos a muchos mapeo.

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

 8
Author: Jack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-01 15:33:17

Puedes probar Mindscape NHibernate Designer que se instala en Visual Studio 2010. Aunque aún no lo he probado.

 5
Author: lafama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-30 22:35:59

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 ha sido de código abierto. Ver: el anuncio

 5
Author: Gareth Hayter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-15 23:35:38

La primera pregunta que debes hacerte es por qué necesitas un generador. Sinceramente, según mi experiencia, escribir archivos de hbm no es nada difícil.

Dicho esto, si realmente no desea escribir los archivos de hbm, tal vez debería buscar en Active Record.

 3
Author: bmurphy1976,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-03 14:29:47

He oído algunas cosas sobre fluent, pero nunca lo usé, así que no puedo decirlo. ¿Tiene configurado intellisense para los archivos de hbm? Solo escribo mis propios archivos xml, pero sé que eso no es lo que estás buscando.

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

 2
Author: Sara Chipps,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-03 14:17:55

Deberías echar un vistazo a NHibernate Designer de Devart: Entity Developer for NHibernate

Nota: Devart Company .

 2
Author: Devart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-10 10:52:27

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

Codesmith contras:

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

Codesmith pros:

  • genera c# y VB
  • soporte para muchos motores de bases de datos, incluyendo PostgreSQL
  • Visual Studio integración

NConstruct contras:

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

NConstruct ventajas:

  • mapas de vistas
  • autodetecta alguna herencia (para relaciones 1-1)
  • simple

En mi caso NConstruct hizo alrededor del 60% del trabajo para mí.

 2
Author: edu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 23:36:32

Sí, escribir archivos de hbm es muy sencillo.

Sin embargo, es un gran dolor cuando se tiene un DB grande.

 1
Author: cmang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-06 16:30:43