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.



domingo, 25 de mayo de 2008

Software para el control de versiones

Me gustaría comenzar mi blog compartiendo la experiencia que he tenido en el uso de este tipo de software:
  • MS Visual SourceSafe: Conocido también como VSS, creo que no es necesario comentar mas allá de que se trata de un software con bastantes fallas aunque por suerte solo es "funcional" para el software de Microsoft. Tuve oportunidad de usarlo en un proyecto basado en .NET con Visual Studio 2005 como IDE.
  • Subversion: Mejor conocido como SVN. El mejor en su categoría, es OpenSource corre en ambientes Linux y Windows. Lo utilizé por vez primera en un proyecto basado en Java utilizando Eclipse como IDE. Me sorprendió tanto la facilidad de configuración y uso así como su versatilidad que ahora lo utilizo en mis proyectos personales:
  1. Visual Studio 2005 con el plugin AnkhSVN,
  2. Monodevelop con su respectivo addin,
  3. Eclipse con el plugin Subclipse.
  • CVS: Tengo entendido que es uno de los primeros sistemas de control de versiones y fue muy bueno en su epoca. Unicamente he sido un usuario final al momento de descargar algún código fuente que este en un repositorio CVS.
  • Plastic SCM: Interesante. El de mas reciente aparición, fué creado por la empresa española Codice Software. Originalmente para correr en Windows pero rapidamente migrado a Linux. Hace aproximadamente 1 año baje la version de prueba y lo instalé en mi XP. funciona de maravilla. Un nuevo concepto en el control de versiones. Lástima que no existe una version Comunity, lo que sí es que han creado una version gratuita a proyecto OpenSource. Espero pronto hacer la prueba.