NHibernate: Generar Entities C# 3.0

Durante estos días he estado metido en un proyecto para una universidad del Perú, la solución está basada en .Net y entre tantas reuniones que tuvimos para definir la arquitectura del proyecto, nos decidimos por usar: Spring .Net, NHibernate y algunos controles de AjaxToolkit. No entraré mucho en detalle en las partes que usamos de Spring .Net, pero pronto les daré una buena noticia al respecto.

Al punto al que iremos hoy es NHibernate, todos sabemos que Hibernate es para Java y NHibernate para .Net, por lo cual muchas veces encontramos más información para la versión de Java. Otro problema que tenemos siempre es el generar las entidades y los xml para mapear nuestra BD, sabemos (y lo sabemos muy bien) que el mapear con NHibernate es realmente pesado, tenemos diversas formas de hacerlo, manejar una "herencia", llaves compuestas, entre otras cosas. Pero gracias a Dios siempre tenemos algunos generadores de entidades y xml, que no debemos tomarlos como absolutos, pues todo generador puede tener errores.

Uno bueno que encontré fue el MyGeneration(1.3), que me permite ver varios templates de NHibernate e incluso poder modificarlos a nuestras necesidades. Llegué a probar todos estos y el que más me convenció fue el "Nhibernate Sharp 1.4", todo estaba bien, pero.......encontré que para cada entidad me generaba una interfaz e implementaba algunas cosas más que de repente no eran tan necesarias para mí. Otro punto en contra fue, estamos usando el framework 3.5, aprovechémoslo al máximo, utilicemos los constructores anónimos y la nueva forma de definir propiedades (más info aquí).

Entonces, teniendo la necesidad de eliminar algunas cosas que uno de repente no usa y actualizando la definición de la clase, además de tener la posibilidad de poder modificar el template, por qué no hacerlo? Ya que no encontraba ninguno por internet, me decidí a modificarlo y logré una versión "beta" por así decirlo de un generador de mapeos NHibernate que te genera, aparte de los xml, las entidades con lo básico que uno necesita, así como también utiliza el estilo de C# 3.0 que te permite tener constructores anónimos. El archivo lo pueden bajar de este link:

NHibernate C#3.0

Como podrán notar es solo un archivo de texto, lo único que tienen que hacer es, abrir el template de "Nhibernate Sharp 1.4", backupear el template (por si las dudas), y pegar el txt que han bajado del link, luego le dan grabar y listo.
Con esto ya tendrían listo su generador de entidades NHibernate basado en C# 3.0, pero OJO, lo repito, es una versión "beta", si obtienen algún error o algo por el estilo (que sea causado por el template), pueden escribir acá al respecto y si pueden dar recomendaciones o modificaciones que se deban hacer al template.

Cualquier actualización que llegue a realizar de este template lo colocaré avisando que hay nueva versión. Espero les sirva a todos este generador tal como me está sirviendo a mí.

Gracias por las visitas y los comentarios, me animan bastante a seguir colocando las cosas que investigo o vivo como Informático.

Enjoy it


Shinji

4 comentarios:

Dac dijo...

bastante interesante, eso ahorrará mucho trabajo y tiempo a muchos. Nice job ;)

Unknown dijo...

buen post! creo que esto resuelve el problema de muchos... que nos resignamos con un herramienta que haga lo que necesitamos pero no necesariamente de la mejor manera, o de la manera mas optima. =)

robertogt dijo...

Muchas gracias por este trabajo, estoy empezando con esto y la verdad si pensaba que era muy pesado mapear todas las entidades a "pie"

Anónimo dijo...

Podrias enviarme el template a mi correo dado que el enlace a rapidshare ya no esta mas.. adanfrancisco@gmail.com
desde ya muchicimas gracias..!!