El proyecto Mono ha llamado mi atención desde hace ya buen tiempo. He estado probándolo desde Ubuntu en una versión anterior. Pero en esta ocasión y con la versión actual vamos a probarlo desde plataforma Windows. En primer lugar para lo que no hayan escuchado de Mono, pues es una plataforma de software diseñada para permitir a los desarrolladores crear aplicaciones multi-plataforma de forma sencilla. Es una implementación de código abierto del .NET Framework de Microsoft basada en los estándares ECMA para C# y Common Language Runtime (CLR). Puedes encontrar mas información que explica mejor esto en los siguiente enlaces:

Vamos a empezar instalando los paquetes necesarios para el primer uso, luego codificaremos en lenguaje C# el cual usaremos en este y próximas entregas.

  1. Instala la plataforma de desarrollo Mono. Descarga el paquete desde http://www.go-mono.com/mono-downloads/download.html. Seleccionamos la plataforma Windows, descargamos e instalamos.
  2. Instalar el IDE. Bien ahora vamos a descargar el entorno para desarrollar nuestras aplicaciones. Descargaremos Xamarin Studio (llamado tambien MonoDevelop) desde http://monodevelop.com/Download, seleccionamos la versión estable y también tendremos que descargar e instalar dos paquetes adicionales: el SDK para Windows .NET Framework 4 y GTK (bibliotecas de objetos y funciones para crear interfaces gráficas de usuario) para Windows.
    Recomendación: Instala estos 2 últimos paquetes descritos antes de instalar el entorno de desarrollo Xamarin Studio.

Vamos a crear una pequeña aplicación para probar: detectar que versiones del .NET Framework tenemos instalada en nuestro equipo.
Abrir Xamarin Studio : Clic en New ó Archivo > Nuevo > Solución.
xamarin_screenshot
 
En el cuadro de dialogo: En el listado izquierdo seleccionamos C# y Proyecto de consola y le damos un nombre a nuestro proyecto, finalmente OK.
xamarin_new
Automáticamente se creará un archivo Program.cs que contiene la clase MainClass con el método Main que es el punto de inicio en toda aplicación desarrollada en C#.
Ahora vamos a agregar otro método ó función que realizará la labor de listar las versiones de .Net Framework instaladas. Luego del método Main, copia y pega lo siguiente:

private static void GetVersionFromRegistry() { using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\")) { foreach (string versionKeyName in ndpKey.GetSubKeyNames()) { if (versionKeyName.StartsWith("v")) { RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName); string name = (string)versionKey.GetValue("Version", ""); string sp = versionKey.GetValue("SP", "").ToString(); string install = versionKey.GetValue("Install", "").ToString(); if (install == "") //no install info, ust be later Console.WriteLine(versionKeyName + " " + name); else { if (sp != "" && install == "1") { Console.WriteLine(versionKeyName + " " + name + " SP" + sp); } } if (name != "") { continue; } foreach (string subKeyName in versionKey.GetSubKeyNames()) { RegistryKey subKey = versionKey.OpenSubKey(subKeyName); name = (string)subKey.GetValue("Version", ""); if (name != "") sp = subKey.GetValue("SP", "").ToString(); install = subKey.GetValue("Install", "").ToString(); if (install == "") //no install info, ust be later Console.WriteLine(versionKeyName + " " + name); else { if (sp != "" && install == "1")
  { Console.WriteLine(" " + subKeyName + " " + name + " SP" + sp); } else if (install == "1") { Console.WriteLine(" " + subKeyName + " " + name); } } } } } } }

Aparte de este método tendremos que incluir el espacio de nombre Microsoft.Win32, esta linea irá en la parte superior luego de using System; deberia quedar así:

using System; using Microsoft.Win32;

En el método Main tendremos que llamar a la función que hemos creado, debería quedar asi:

public static void Main (string[] args) { //Console.WriteLine ("Hello World!"); GetVersionFromRegistry (); }

Finalmente ejecutamos la aplicación presionando Ctrl+F5:
xamarin_console1
Este código quizá no sea tan funcional pero lo que queríamos mostrar era un ejemplo inicial de como instalar y usar Mono y Xamarin Studio para desarrollar una aplicación. En futuras entregas veremos mas del proyecto Mono y aplicaciones con interfaz gráfica.