miércoles, 4 de junio de 2008

Mono + NHibernate + MySQL

Hace tiempo conocí Hibernate que es una biblioteca ORM para el lenguaje Java, después supe que existe un port para .NET llamado NHibernate. Así pues, como buen linuxero me he dado a la tarea de probar las ventajas de este framework en Mono. En esta ocasión, dejo un ejemplo básico. La distribución Linux que he utilizado es Ubuntu Hardy Heron 8.04.

Integración paso a paso
Antes que otra cosa deben verificar que tienen correctamente instalados los siguientes paquetes y sus respectivas dependencias:
mono, monodevelop, mysql.
Ah, por supuesto NHibernate.

Paso 0: Crear una nueva tabla en MySQL con las siguientes características.
--
-- CREATE DATABASE: x
--
CREATE DATABASE IF NOT EXISTS x;
--
-- CREATE TABLE: infra_perfiles
--
CREATE TABLE IF NOT EXISTS x.infra_perfiles
(
    ClavePerfil SMALLINT(5) NOT NULL,
    DescribePerfil VARCHAR(255) NULL,
    EstatusPerfil VARCHAR(2) NULL,
    CONSTRAINT PRIMARY KEY (ClavePerfil)
);

Paso 1: Abrir MonoDevelop y crear una nueva solución que se llame NHibernateEjemplo.sln (no es necesario escribir la extensión).
nueva_solucion
Paso 2: Agregar una nueva clase al proyecto; la llamaremos Perfil.cs .
clase_perfil
codigo_perfil
Paso 3: Agregar un nuevo archivo de mapeo de tipo XML llamado Perfil.hbm.xml
mapeo_xml
mapeo_perfil
Paso 4: Agregar un archivo de configuración llamado app.config .
app_config
Paso 5: Agregar las referencias de NHibernate y MySQL al proyecto.
referencias
Paso 6: Agregar código a la clase principal.
codigo_main
Paso 7: Ejecutar la aplicación y ver la magia.
ejecucion
Finalmente, haciendo una consulta en la tabla infra_perfiles podemos comprobar que existe un nuevo registro.
Espero que este ejemplo les sea de utilidad para poder manipular los datos de las tablas haciendo Update y Delete.