Generatori di NHibernate

Qual è lo strumento migliore per generare Entity Class e / o file hbm e / o script sql per NHibernate.

Questo elenco è di seguito http://www.hibernate.org/365.html , qual è il migliore per quale motivo?

  • Moregen Free, Open Source (GPL) O / R Generator che può fondersi in progetti esistenti di Visual Studio. Unisce anche le modifiche alle classi generate.
  • NConstruct Lite Strumento gratuito per la generazione del codice sorgente di mapping O / R NHibernate. Supporto di diversi database (Microsoft SQL Server, Oracle, Access).
  • GENNIT Generatore di codice di NHibernate Generazione di codice Web 2.0 gratuito / commerciale del codice NHibernate utilizzando il progettista UML online WYSIWYG.
  • GenWise Studio with NHibernate Template Prodotto commerciale; Importa il tuo database esistente e genera tutto XML e Classi, incluse le fabbriche. Può anche generare automaticamente un’applicazione web asp.net per il tuo BOibernate NHibernate.
  • HQL Analyzer e hbm.xml GUI Editor
  • ObjectMapper di Mats Helander è una GUI di mapping con supporto NHibernate
  • MyGeneration è una GUI del generatore di codice basata su template. La sua libreria di modelli include modelli per la generazione di file di mapping e classi da un database.
  • AndroMDA è un framework di generazione di codice open source che utilizza Model Driven Architecture (MDA) per trasformare i modelli UML in componenti distribuibili. Supporta la generazione di livelli di accesso ai dati che utilizzano NHibernate come framework di persistenza.
  • CodeSmith Template per NH
  • NHibernate Helper Kit è un componente aggiuntivo VS2005 per generare classi e file di mapping.
  • NConstruct – Intelligent Software Factory Prodotto commerciale; Generazione del codice sorgente completa di .NET C # per tutti i livelli del sistema di informazione attraverso una semplice procedura guidata. Mappatura O / R basata su NHibernate. Sia per WinForms che per ASP.NET 2.0.

Penso che dovresti dare un’occhiata a Fluent NHibernate . Generare mappature ti porta sempre al segno dell’80% e devi ancora personalizzare per ottenere quello che vuoi. Fluent-NHibernate ti consente di mappare le tue entity framework con un’API compile-safe e refactor-friendly.

Lì è disponibile una nuova release Beta 2 2.0 con molte nuove funzionalità e supporto per mappature fluide, da uno a molti e molti-a-molti.

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

Puoi provare Mindscape NHibernate Designer che si installa in Visual Studio 2010. Anche se non l’ho ancora provato.

Uno strumento commerciale per fare questo è Visual NHibernate . Nota che lavoro per Slyce Software, la società che crea Visual NHibernate.

Aggiornamento: Visual NHibernate è ora stato open source. Vedi: l’annuncio

La prima domanda che devi porci è perché hai bisogno di un generatore. Onestamente, nella mia esperienza di scrittura di file hbm non è affatto difficile.

Detto questo, se davvero non vuoi scrivere i file hbm, forse dovresti esaminare Active Record .

Ho sentito parlare di fluente, ma non l’ho mai usato, quindi non posso dirlo. Hai il tuo intellisense impostato per i file hbm? Scrivo solo i miei file xml, ma so che non è quello che stai cercando.

Cosa vorresti che fossero gli script SQL da fare, generare tabelle? Una delle bellezze di NHibernate è la generazione di query flay, quindi non devi creare SP per tutti i tuoi oggetti.

Dovresti dare un’occhiata a Devart’s NHibernate Designer: Entity Developer for NHibernate

Nota: Devart Company .

Ho provato entrambi, NConstruct lite e codemith. Avevo bisogno di ottenere il modello object da un database esistente per un progetto asp.net esistente scritto in VB, questa è la mia esperienza:

codesmith contro:

  • non rileva l’ereditarietà tra le tabelle
  • non mappa le viste del database
  • uso complesso

Codemith Pro:

  • genera c # e VB
  • supporto per molti motori DB, incluso PostgreSQL
  • Integrazione di Visual Studio

NConstruct:

  • non genera VB, solo c #
  • pochi motori DB, solo SQL-Server, Oracle e MS-Access

NConstruct pro:

  • mappe per le viste
  • riconosce automaticamente l’ereditarietà (per le relazioni 1-1)
  • semplice

Nel mio caso, NConstruct ha fatto per me circa il 60% del lavoro.

Sì, scrivere file hbm è molto semplice.

Tuttavia è un enorme dolore quando si dispone di un DB di grandi dimensioni.