Mono, A Developer's Notebook
Por Jacobo Tarrío
24 de noviembre de 2004

Mono es una implementación de la plataforma .NET de Microsoft, con la particularidad de que esta implementación es libre y es multiplataforma; entre las plataformas soportadas están Linux, MacOS X y Windows.

Mono, A Developer’s Notebook, de Edd Dumbill y Niel M. Bornstein es un libro pensado para esos desarrolladores que no quieren un guiaburros, sino un mapa para orientarse y saber lo más rápido posible qué pueden encontrar en Mono.

Este no es uno de esos libros con 800 páginas rellenadas a toda costa con un tipo de letra grande, gigantescas capturas de pantalla y colosales tablas enumerando todas las funciones miembro de la clase XMLTextReader. Son sólo 262 páginas de texto, pero 262 páginas que se aprovechan desde la primera hasta la última palabra, y en las que, con sencillos ejemplos y sin detenerse más de la cuenta, se nos muestra un poco de todo lo que puede hacer Mono: desde sencillas aplicaciones en consola usando C#, hasta aplicaciones y servicios Web, programación con GTK# y GNOME#, incluir código Java o Basic en nuestras aplicaciones, etc.

Contenido del libro

En los tres primeros capítulos se nos muestra cómo instalar el entorno Mono en Linux, Windows y MacOS, y se describen los principales componentes del sistema Mono, así como MonoDevelop, el IDE de Mono hecho en GTK#.

También se introduce en el lector en C# de una forma muy rápida pero efectiva (se supone que el lector ya conoce otros lenguajes, por lo que no es necesario explicar qué es una variable, una clase, ni cosas por el estilo), describiendo primero las principales características del lenguaje y luego algunas de las clases del sistema. Para que se hagan una idea de la velocidad a la que corre el libro, vean de qué habla el capítulo 3: trabajo con ficheros, manipulación de cadenas, expresiones regulares, colecciones de datos, ensamblajes (ficheros .DLL y .EXE), procesos, multithreading y pruebas de unidad. Todo esto en 30 páginas. Y, de algún modo, los autores consiguen “regular” lo que nos cuentan de forma que no se acumulen muchas cosas en poco espacio, pero nos quedemos con la impresión de que nos han contado lo más importante.

Los capítulos 4 y 5 explican cómo programar en GTK#, desde la aplicación más básica con un botón y una etiqueta, pasando por ejemplos cada vez más interesantes: gestión de eventos, cajas de diálogos, gráficos, menús, drag’n’drop, aplicaciones GNOME, diseño de interfaces gráficos con GLADE, druidas, incorporación de Gecko (el sistema de visualización HTML de Mozilla) en un programa propio, ficheros de ayuda y traducción utilizando Gettext.

Normalmente, cuando leía un libro sobre programación de GUI, siempre terminaba asustado, pues los ejemplos “sencillos” no me dejaban en absoluto la impresión de ser sencillos. En estos capítulos, una frase que se repite bastante es “esto es fácil, pero nos da mucho que teclear, así que he aquí la forma en que se hace realmente esto”, y luego pasan a explicar GLADE, por ejemplo.

Ahora bien, la explicación al final del capítulo 5 sobre cómo traducir utilizando Gettext desluce un poco, pues es bastante farragosa y no deja muy claro por qué usar Gettext en lugar de System.Globalization; incluso me parece a mi que los autores no quedaron muy convencidos acerca de este tema…

El capítulo 6 trata sobre el proceso de XML: cómo producir y consumir XML usando diversas técnicas y sistemas (XMLReader, DOM, …), cómo validarlo, cómo hacer consultas, transformaciones XSLT… Junto con los GUIs, el XML es una de mis bestias negras, pero después de leer este capítulo las ideas se me han quedado más o menos claras.

El capítulo 7 discute el tema de las comunicaciones: aplicaciones y servicios web con ASP.NET, programación de sockets, llamadas a procedimientos remotos con SOAP y XML-RPC, cifrado, y, de algún modo, han metido aquí las consultas a bases de datos.

Después de leer el capítulo 7 me he quedado con ganas de saber más sobre ASP.NET, así que esta noche entré de forma voluntaria por primera vez en muchos años en la web de Microsoft para aprender más sobre el tema. Es el objetivo del libro: mostrar un poco sobre cada uno de los temas, para que cada uno se informe en profundidad de los que le interesen, pero creo que podrían haber hablado un poco más sobre aplicaciones web. Yo propondría eliminar en la próxima edición la discusión acerca de Gettext; así ya tendrían siete páginas más para ASP.NET ;-)

Finalmente, el capítulo 8 nos habla de ciertos temas avanzados, como el empleo de las Autotools (otro que, en mi opinión podrían eliminar, aunque me sentiría más feliz si eliminaran las propias autotools, directamente), consejos para realizar aplicaciones Mono multiplataforma, y tres características que no están soportadas en Mono 1.0 (se pueden activar, pero están incompletas), pero que aparecerán en futuras versiones del sistema: la utilización de IKVM para incluir código y bytecode Java en aplicaciones Mono, el empleo de “Generics” (lo que en C++ se denominan “plantillas”) y la programación Mono en Basic.

Otros artículos sobre “Web personal (2004-2008)”, “libros”, “programación”.
Índice.
Salvo indicación en contrario, esta página y su contenido son Copyright © Jacobo Tarrío Barreiro. Todos los Derechos Reservados. Información sobre tratamiento de datos y condiciones de uso.