Posts Tagged NHibernate

NHibernate Validator 1.2 Beta3 liberado

Descarga NHibernate Validator 1.2 beta3 con fuentes, binarios y ejemplos aquí.

Listo para usarse con NHibernate 2.1 GA.

Para leer ejemplos y documentación, es obligatorio darse una vuelta por el blog de Fabio, y seguir la serie de post acerca de NHibernate Validator. Aquí.

A disfrutarlo ;)

, ,

No Comments

NHibernate Validator 1.2 Beta2 liberado

Descarga NHibernate Validator 1.2 beta2 con fuentes, binarios y ejemplos aquí.

Listo para usarse con NHibernate 2.1 GA.

A disfrutarlo ;)

,

No Comments

SessionImpl, Unit Testing… y las flores siguen en la mesa

El truco de sacar el mantel y que el florero quede en el centro de la mesa intacto lo hizo el Sr. Fabio Maulo con una de las clases más importantes del core de NHibernate: SessionImpl.

En este post nos dice:

El la versión 1.2.x la session es de 5819 lineas de código.
Después de la modificación quedó en 3819.

Hagan las cuentas y son muchas lineas de código para tirarlas a la basura sin pensarlo! Claro, pero toda la tranquilidad viene del lado de las pruebas de unidad, que es practicamente lo que mantiene viva a la integridad en NHibernate.

Después de esto, uds sacarán sus conclusiones: si vale ponerle atención a las pruebas de unidad en nuestros proyectos, si es muy laborioso como para prestarle atención, o es una inversión y una tranquilidad sabiendo que la aplicación a medida que va creciendo en el ciclo de desarrollo se vá integrando bien.

Otra cosa a resaltar:

Hay muchos que para probar algo crean un proyecto de consola, prueban una clase y luego tiran el proyecto. Bueno… ya que hay que probar conviene escribir la prueba una sola vez y
verificar que siga funcionando siempre.

Totalmente de acuerdo, y hasta hace un tiempo yo hacia esto… me incluyo y lo reconozco. Al principio, al iniciarte en el arte de las pruebas de unidad puede que no se note la diferencia entre un test y una sesión de debug, puede que los tests los hagas mal, o puede que no sean muy legibles, pero todo se mejora con un poco de ejercicio.

Y lo más lindo del resultado de usar pruebas de unidad es que cuando terminás de hacer las modificaciones pertinentes, realizás las pruebas, hacés commit…y

puedo dormir tranquilo.

,

3 Comments

uNHAddins: UnOfficial NHibernate AddIns

Fabio Maulo, con quien tengo el honor de moderar a NHibernate-Hispano, ah puesto a nuestra disposición este nuevo proyecto llamado uNHAddIns.

UnOfficial NHibernate Addins nos provee recursos para interactuar con NHibernate que no están en la versión Oficial de NHibernate, una especie de paquete Contrib, al cual podemos hacer llegar requerimientos ó inquietudes para tenerlas en cuenta y en un futuro hacerlas formar parte del framework.

Por ahora,  ya podemos disfrutar de features: DetachedCriteria, DetachedQuery, DetachedDynQuery y Pagination.

DetachedQuery es el hermano de DetachedCriteria. DetachedCriteria existe actualmente en el core de NHibernate, pero no habia algo similar para HQL.

Se utiliza DetachedQuery/DetachedCriteria en lugares donde no contamos con una ISession. Es un modo de retardar hasta el ultimo momento la asociación del query con la sesión y esto ayuda a jugar mucho en las implementaciones de DAO Genericas.

Recursos:

Luego postearé codigos de ejemplo, pero pueden unirse al grupo de discución para hacer llegar las preguntas.

, ,

1 Comment

Tutorial de NHibernate, primeros pasos

Acabo de publicar este tutorial: Tutorial de NHibernate – Primeros Pasos. Espero que sea de ayuda para comenzar a utilizar NHibernate. Cualquier consulta ó duda me pueden enviar un correo ó suscribirte a NHibernate Hispano, así lo discutimos entre todos.

,

6 Comments

Oren Eini en dnrTV hablando de NHibernate

Hace un tiempo Ayende (Oren) estuvo en Dot net Rocks pero tambien realizó un screencast de NHibernate en dnrTV. Aquí les dejo el link para que lo vean.
El video muestra a NHibernate como funciona, un ejemplo de como conectarse con NHibernate, con la generacion del esquema de la base, muestra un ejemplo de herencia y las 2 formas de implementarlos: por medio de discriminadores y también con 2 tablas (una para la superclase y la otra para la subclase) sin decirle nada a NHibernate sobre la relación estas, solamente basandose en la relación de herencia entre las clases. A lo último muestra su herramienta NHibernate Query Generator, que se integra al Visual Studio y permite por medio de los mappings files generar codigo para realizar las consultas.
Y como dijo Ayende: “Very, very cool”. Y que lo disfruten.

, ,

No Comments

Ayende en DotNetRocks!

Ya se puede descargar el episodio de .DotNetRocks con Oren Eini (Ayende) aquí hablando sobre NHibernate.
Sino lo conocías, este es su blog.

, ,

No Comments

using NHibernate.Tool.hbm2ddl

Una herramienta muy importante de NHibernate, a la vez, deseable por los ORM, es la generación de código.

Para generar el DDL de la base de datos, nos podemos valer de la información del esquema, que nos brindan los archivos de mapeo ó mapping files: hbm.xml.

Un vez que tenemos bien configurados estos archivos, podemos generar las tablas con solamente incluir un par de sentencias en .Net y configurar un archivo xml. Tambien se tiene que tener referenciado a NHibernate.

Código en C#:

using System;
using NHibernate.Cfg;
using  NHibernate.Tool.hbm2ddl;
public class MyClass
{
    public static void Main()
    {
            Configuration config = new Configuration();
            config.Configure();
            SchemaExport exporter = new SchemaExport(config);
            //exporter.SetOutputFile(@"c:testDDL.sql");
            exporter.Drop(true, true);
            exporter.Create(true, true);
    }
}

Archivo hibernate.cfg.xml (debe ir copiado en el directorio de salida):

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.0" >
 <session-factory name="NHibernate">
	<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
	<property name="connection.driver_class">NHibernate.Driver.FirebirdClientDriver</property>
	<property name="connection.connection_string">
	ServerType=1;
	User=sysdba;password=masterkey;Database=C:ruraldata.fdb;
	Pooling=false
	</property>
	<property name="show_sql">true</property>
	<property name="dialect">NHibernate.Dialect.FirebirdDialect</property>
	<property name="use_outer_join">true</property>
	<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>

	<mapping assembly="RuralSolution.Entities" />

 </session-factory>
</hibernate-configuration>

En este caso es la exportación del schema de una base de datos Firebird embebida.

Esta herramienta me ha sido de mucha utilidad. Estoy desarrollando una aplicación en SQL Server 2005 y NHibernate, pero, me dí cuenta que la aplicación debía ser portable, de modo que tuve que migrar la base de datos a una portable, y como Firebird está pasando todos los test de NH, la elegí. Ya tenía los hbm, así que no requirió trabajo demás.

Importante para la generación con Firebird: en el directorio de salida entonces tendriamos que tener: fbembed.dll, FirebirdSql.Data.FirebirdClient.dll, y hibernate.cfg.xml.

Si quieren saber como trabajar con MyGeneration y Firebird embedded léanse este post de mi amigo Matias.

, ,

2 Comments

Gmane y NHibernate-Hispano

Si sos un desarrollador de Software, profesional o más bien novaton (en este caso más aún) es casi imposible que no estes participando de al menos alguna lista de Correos, y si te interesan muchos temas lo más probable es que estés suscripto a varias.Hace tiempo que participo en listas de correos, más activas en algunas que otras, y en algunas solamente en modo “listen and learning” (mmm…no sé por qué me acorde de bridges). Por lo tanto, tener una herramienta que gestione los correos y que te facilite la lectura, es importante.

Bloggeando encontré hace ya hace un tiempo un mailing list archives, que basicamente es un archivador grandote que centraliza información de cientos (y me quedo corto…miles) de listas de correo en un lugar común.

Dos muy usados son Gmane y The Mail Archive.

NHibernate-Hispano, que como una bolita de nieve está creciendo de a poquito, me deja muy contento ya que el grupo se está poniendo bueno y muchos están conformes con las cositas que se están posteando. Porque de pronto no entontrabas un bendito ejemplo de NHibernate en la web, y ahora con el Grupo por lo menos entrás y recorrés la bandeja de entrada, encontrás ejemplos o soluciones que quizás te pueden servir, e inclusive, hay para todos lo gustos y colores.

Decidí, para probar, inscribir a nuestro fabuloso grupo en estos archivadores de listas de mail y estas son las direcciones:

La que más me gusta es Gmane, tiene inclusive un gráfico que te muestra la actividad del grupo en los pasados días.
Gmane, para registrar los tracks del grupo, se infiltra en el mismo como si fuera un miembro más. De modo que todos los mails que se manden al grupo, se manden tambien a Gmane para que él los archive.También Gmane te permite revisar tus mails en una vista tipo blog, es decir, te permite ver tu lista como si fuera un super-extenso blog que hasta si querés, podés cambiar el estilo modificando el CSS.

Y como todo: “Es cuestión de gustos”. Porque sino, podés usar Gmail y listo! (que es lo que uso). Lo que no me puedo imaginar es: alguien participando en más de 5 listas de correos muy activas y usando la bandeja de entrada de Yahoo ó Hotmail; la verdad que creo que no debe ser muy cómodo. En fin, creo que Gmail se presta muy bien para esto, y las felicitaciones son para él, pero los aplausos…para Ajax, la verdad este conjunto de tecnologías metidas en una sola, se lleva todos los premios, y como viene la mano…es lo que se viene.

,

1 Comment

Grupo de Usuarios de NHibernate en Español

Google Groups Es un Grupo de Usuarios de NHibernate en Español que está formandose, queremos sumar más gente e ir creciendo en experiencia con respecto a este Framework de Persistencia tan conocido, y con tan poca info en español.
Bueno, nos vemos ahí !!!

Correo electrónico:

,

4 Comments