martes, enero 04, 2005

Actualizando Mono Hispano

He terminado la documentación de los 3 gestores de base de datos que me propuse estas vacaciones, aunque siento que esta un poco débil esa parte, aún faltan muchos otros gestores, mi intención es que al menos exista la forma de utilizar todos los gestores indicados en la página de mono, es decir, la lista de los gestores soportados por mono hasta ahora en comparación con el manual de ADO.net es lo siguiente:

  1. PostgreSQL
  2. MySQL
  3. MS SQL
  4. IBM DB2
  5. Firebird Interbase
  6. ODBC
  7. OLE DB
  8. ODBC
  9. Oracle
  10. Sybase
  11. SQL Lite
  12. TDS Generic

Es decir que va un 25% de BD documentadas, así que cualquier ayuda es aceptable. Como referencia la página de ADO.NET en mono es la guía actual de la cual estoy partiendo, además de las bases de datos anteriores me falta agregar el proveedor interno de GNOME, GDA, además de los clásicos ejemplos GUI de los componentes gnome-db para gtk#, aunque no estoy seguro si estos estarían fuera de contexto en este manual, quizás debería hacerse un tutorial propio para GDA, no lo se, luego veré q hacer.

Por otro lado creo que sería bueno comenzar a hacer un conjunto de Preguntas de Uso Frecuente de Programación con Mono, hasta ahora he visto las siguientes:

  1. GTK#. ¿Cómo designo un icono a la ventana de mi aplicación?

    Utilizando la propiedad Icon de la ventana, esta propiedad necesita un Gdk.Pixbuf para que funcione, por lo tanto se debe de agregar la imagen a los resources del proyecto y luego llamarla así: Gdk.Pixbuf.LoadFromResource("imagen.png").

  2. GTK#. ¿Existe una forma de distribuir mi ensamblado/ejecutable, el cual utiliza imágenes internamente, sin la necesidad de distribuir también las imágenes?

    La forma de hacerlo es incluir las imágenes a los resources del ensamblado/ejecutable y luego utilizarlas mediante la instrucción Gdk.Pixbuf.LoadFromResource("imagen.png").

  3. GTK#. ¿Cómo hago un botón (desde código) que tenga una imagén en vez de una etiqueta (Gtk.Label)?

    Hay que reemplazar la propiedad Child del botón con la imagen correspondiente, es decir:

    Gtk.Image img = new Gtk.Image ();
    img.SetFromStock (Gtk.Stock.Add, IconSize.Button);
    Gtk.Button boton = new Gtk.Button ();
    boton.Child = img;
    

    El ejemplo anterior es utilizando una imagén de Stock pero también es útil para imágenes incluidas en los resources.

  4. GTK#. ¿Cómo puedo imprimir/crear reportes/crear informes con mono?

    La única forma hasta ahora que se (al menos en Linux/Unix) y que me conste es utilizando Gnome.Print, posiblemente pronto se puedan algunas otras formas, como CrystalReports.

  5. GTK#. ¿Cómo puedo definir el tamaño de mi botón/label/entry/otro-widget en una ventana?

    Aunque no es recomendado, es posible, utilizando el contenedor Gtk.Fixed y luego agregando los widgets que se quieran redimensionar a un tamaño especifico, aunque repito, no es recomendado.

Si alguien tiene alguna otra pregunta que considera que debería ser agregada, no dude en contactarme.

Por cierto: 'Si que esta largo el capitulo 14 del ECMA, pero falta poco :)'