Espacio de Dario Quintana

NHibernate no está integrado con el compilador, y qué ?

Bueno, sé que el titulo suena como “eh !?”, pero dejenme explicarlo un poco más en detalle.

NHibernate es una framework que usa Xml nativamente para configurar los mapeos entre objetos y tablas, que está encargado de juntar estos 2 mundos diferentes.

Ahora, qué tiene de malo esto? Mucha gente puede decir que los archivos Xml son malos, por que después de escribir muchas líneas, intentamos compilar nuestro proyecto, y el compilador de nuestro lenguaje host no sabe si el Xml está bien o no, no nos informa con ningún error. Esto es verdad, se debería correr el proyecto y ver que acontece en tiempo de ejecución, y obtener un error en runtime es simplemente molesto.

Pero bien, tenemos otra alternativa a esto? La respuesta es sí. Vayamos a los detalles. NHibernate tiene también un “compilador”, y si todavía no te lo imaginaste, es el método BuildSessionFactory(). No es necesario lanzar toda la aplicación para saber si nuestros mappings están bien o mal. Una manera de saber si todo está bien es crear un metodo de Test como este:

Luego solamente queda compilar nuestro proyecto, y correr este simple y tonto test. Si nuestro código pasa esta prueba, tus mapeos están bien.

Debemos recordar una cosa, se puede mapear no solamente entidades en los Xml, también se pueden mapear Queries (y otras cosas que no son relevantes en este post). El mapear queries en Xml se llama: Named Queries, y en este post hablamos un poco más de sus bondades. Pero el punto principal aquí es, que mapeando las queries sabrás si están bien formadas o no cuando el método BuildSessionFactory() es disparado (se hacen otras cosas aparte de compilar las queries, se discuten en ese post).

Otra cosa que DEBES recordar es usar Xsd para validar los mappings files. Esto es obligatorio si estás usando NHibernate y quieres pasar el tiempo programando en vez de luchando con errores de mapeo (aquí los errores pueden ser inclusive de Xmls mal formados, donde esto es más grave). Pero esto es tema para otro post.

XUnit 1.0.2 y Resharper 4.1

XUnit todavía no soporta correr los tests en Resharper 4.1, entonces decidí crear una release hecha en casa.

Podés descargar este paquete XUnit testeado con Resharper 4.1 y TestDriven 2.14.2190. Este no es un release oficial, podés obtener una oficial en su pagina de Codeplex.

Descargar

Abraza hoy a un programador

 

Via: mundogeek