Trabajando con C# y MySQL en Mono y Monodevelop

BBDD, Programación

David | 26/04/2009

Últimamente me ha dado por ponerme un poco al día en C#, y es que la noticia de que Micrososft haya liberado el framework ASP.NET MVC bajo licencia MS-PL, es decir, como software libre, me ha motivado bastante para ponerme con esta tecnología. Pero antes de entrar al trapo con ASP.NET MVC, he querido echar un vistazo a las alternativas de BBDD de las que disponía para programar con Mono en Linux.

Después de mirar los diferentes SGBD de que disponía decidí quedarme con MySQL, porque que estoy muy familiarizado ya que en PHP casi siempre me ha tocado usar esta base de datos. Postgre SQL me ha parecido me ha parecido una alternativa muy buena a MySQL, sobre todo después de la incertidumbre que se me ha generado después de la compra de Sun por parte de Oracle.

Para conectar con MySQL desde .NET lo primero que hay que hacer es bajarse el conector desde el sitio web de MySQL. Yo he bajado la versión 5.2, aunque ya van por la 6.0. Bajaros el que pone “Windows Binaries, no installer ”, estos son los binarios compilados para Windows del conector,es decir, el ensamblado, o dll, como quieras llamarlo.

No te asustes, que aunque estén compilados para Windows, Mono es compatible con estos binarios.

Una vez descargado el fichero lo descomprimes y lo que nos interesa es el directorio “bin”, donde se encuentra la dll del conector.

Ahora hay que instalar el ensamblado en la caché de ensamblados global de Mono, esto se hace con la utilidad gacutil, para ello usamos el comando:

sudo gacutil -i MySql.Data.dll

Se supone que se ha descomprimido el paquete del conector y se tiene acceso al directorio bin, donde se encuentra el fichero MySql.Data.dll.

Ahora ya se encuentra instalado el ensamblado en el entorno Mono.

Lo siguiente es abrir monodevelop y crear un nuevo proyecto, yo lo he creado de consola. Hace poco escribí un post donde puse un vídeo con el proceso de instalación de monodevelop en Suse Linux 11.1, por si te lías con la instalación.

Crear un proyecto de consola en Monodevelop

Crear un proyecto de consola en Monodevelop

Ahora pinchamos con el botón derecho del ratón sobre el directorio Referencias->Editar Referencias.

Agregar referencia a System.Data

Agregar referencia a System.Data

Hay que agregar el ensamblado del conector que acabamos de descargar y una referencia a la librería System.Data de .NET para trabajar con bases de datos.

Agregar el ensamblado del conector MySQL en Monodevelop

Agregar el ensamblado del conector MySQL en Monodevelop

Ahora ya podemos comenzar a programar usando el conector de MySQL desde Mono. Yo he creado una base de datos llamada “NET” y he creado una tabla dentro de ella, a continuación pongo el código SQL necesario para crear la tabla.

CREATE DATABASE `NET` ;
CREATE TABLE `NET`.`miTabla` (
`id` INT NOT NULL AUTO_INCREMENT ,
`cuerpo` VARCHAR( 300 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
INSERT INTO `NET`.`miTabla` (
`id` ,
`cuerpo`
)
VALUES (
NULL , 'datos de prueba, 1'
), (
NULL , 'más datos de prueba, 2'
);

El ejemplo que he creado es muy simple, uso un Reader para obtener los datos de la tabla, lo recorro y lo imprimo por la pantalla.

A continuación pongo el código.

using System;
using System.Data;
using MySql.Data.MySqlClient;
namespace pruebaMySQL
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			string connectionString = "Server=localhost;Database=NET;User ID=root;Password=;Pooling=false;";
  			MySqlConnection conn = new MySqlConnection(connectionString);
 
        	string query = "SELECT id,cuerpo FROM miTabla";
 
			conn.Open();
 
           MySqlCommand myCommand = new MySqlCommand(query, conn);
           MySqlDataReader myReader = myCommand.ExecuteReader();
 
           while (myReader.Read())
           {
			Console.Write("El ID es: " + myReader["id"].ToString());
			Console.WriteLine("  El cuerpo es: " + myReader["cuerpo"].ToString());
 
           }
           myReader.Close();
           myCommand.Dispose();
           conn.Close();
		}
	}
}

Se han añadido los espacios de nombres a : System.Data y MySql.Data.MySqlClient, necesarios para trabajar con el conector de MySQL sin tener que estar poniendo siempre la ruta completa de cada objeto.

En la connectionString se ha de poner la cadena con este formato siempre a piñón fijo, sustituyendo los valores dependiendo del servidor y base de datos que quieras consultar. En el objeto myReader se almacena el resultado de la consulta, que se ejecuta con el método ExecuteReader del objeto mySqlCommand, que a su vez necesita una conexión con el servidor (objeto mySqlConnection) y una string que contenga la consulta SQL que se desea realizar (query). Como se puede comprobar es muy sencillo.

Es importante cerrar el reader con el método Close, ejecutar el método Dispose del objeto myCommand para liberar memoria, y cerrar la conexión (objeto conn) con el método Close, para cerrar el socket con el servidor de MySQL y colapsarlo.

Por último, pulsamos F5 y …


Ejecución del programa

Ejecución del programa


25 plantillas de joomla libres para descargar

En tutzone han hecho una recopilación de 25 plantillas para Joomla libres para su descarga.
Por : David           comentarios 1

Recursos sobre Joomla en SmashingMagazine

Ya era hora que esta popular y prestigiosa web (smashingmagazine) hiciera uno de sus extensos recopilatorios de recursos sobre Joomla. Parece que Joomla no tiene tanta popularidad como Wordpress en la blogosfera, lógico ya que Wordpress es un software solo para blogs.Dejo los enlaces a continuación.
Joomla developers toolbox
Beautifu free and commercial joomla templates
Por : David           comentarios 1

Chuleta de jQuery 1.3

Leyendo por tweetter me he encontrado con esta chuleta de jQuery actualizada a la versión 1.3.  Está en formato pdf.
Por : David           Comentarios desactivados

jQuery image dropdown: Combobox más bonitos con jQuery

Javascript, Recursos

David | 16/04/2009

Leyendo Anieto2k encuentro este plugin de jQuery que permite añadir iconos descriptivos a los combobox de nuestras aplicaciones.

jquery combobox image

Ultimamente salen plugins de jQuery hasta de debajo de las piedras, un framework que para mí se ha convertido ya en imprescindible a la hora de escribir javascript.


StorePapers, gestión de documentación en grupos de trabajo

General, Joomla

David | 16/04/2009

storepapersv1

Francisco Ruiz, estudiante de ingeneria Informática en la Escuela Politécnica de Cáceres, me ha enviado un correo electrónico avisandome de su trabajo en Joomla. Me alegra ver que lo que escribo sirve a la gente. Lo copio a continuación.

Hola, antes de nada darte las gracias por el contenido de esta web, me ha servido de mucho tus tutoriales en mi trabajo. Gracias a ellos he podido desarrollar un componente para joomla y me gustaria mandarte un enlace de mi trabajo por si quieres y te apetece nombrarlo en tu blog.

Creo que puede ser interesante en el ambito de la educación, su función es administrar de forma centralizada las publicaciones de un grupo de trabajo. Como yo trabajo con investigadores me muevo con ellos y necesitan tener de forma centralizada sus publicaciones. En el siguiente enlace incluyo un manual con capturas de pantalla que explican mejor su cometido.

La dirección es “http://gim.unex.es/index.php?option=com_content&view=article&id=250&noticias&Itemid=129

Por supuesto la utilización es totalmente gratuita y esta sujeta a la licencia GPLv3.

Si publicaras la noticia de este componente en tu blog se daria mucha publicidad, yo no me llevo nada con esto simplemente me mueve el dar a conocer mi trabajo a otras personas que puedan necesitarlo.

Un saludo.

Y a continuación copio la descricpción del componenete que me ha enviado Francisco:

Seguir leyendo..


Trasteando con Monodevelop y Suse Linux 11.1

Frameworks

David | 8/04/2009

Después de ver que Microsoft ha publicado su framework ASP.NET MVC como software libre (bajo licencia MS-PL) y que el proyecto mono lo soporta al 100%, hoy me he puesto a trastear con monodevelop y Linux. Me he instalado la última versión de Suse Linux, la 11.1 y monodevelop, el IDE oficial del proyecto mono para Linux, y la verdad es que me ha sorprendido la facilidad de instalación y lo bien que funciona. Para instalar monodevelop en Suse Linux solo hay que hacer click en el paquete de instalación donde pone “1 click install”, y el gestor de paquetes yum hará el resto. Supongo que en el resto de distribuciones como debian y ubuntu, apt-get funcionará de una forma similar. Una vez instalado monodevelop ya se puede empezar a desarrollar en .NET, pero para desarrollar con el framework MVC se necesita la última versión de la máquina virtual de mono (2.4 en este momento, o superior). La última versión de mono se encuentra en el paquete mono_complete. Una vez instalado todo esto, solo queda instalar el plugin que permite crear proyectos MVC y que nos ayudará con el autocompletado y demás historias.

De paso que lo he instalado he grabado un video del proceso, he hecho un hola mundo muy sencillo y lo he subido a youtube. Es el primer video que grabo de mi escritorio, así que mis capacidades de edición de video no son muy grandes, jejejeje.

Para finalizar el post pongo algunos de los recursos que me he encontrado por la web sobre ASP.NET MVC en Linux.


Otro plugin jQuery para montar galerías: galleryview

Leyendo webintenta me encuentro con este (otro) plugin para montar galerías de imágenes en jQuery, se llama galleryview ..
Por : David           Comentarios desactivados