C#, crear una aplicación usando Mono [referenciando Windows.Forms]
Ya daba un pequeño ejemplo en la entrada "Acerca de Mono", mas en la anterior ( C#, crear una aplicación usando Visual Studio) ponÃa dos ejemplos:
- Crear una aplicación en modo consola
- Crear una aplicación que usaba levemente la API de Windows.Forms
Pues bien, teniendo en cuenta que ya he explicado cómo se compilan y ejecutan aplicaciones simples, hagamos una en la que se utilice el namespace System.Windows.Forms. Supongamos que tenemos la aplicación en C# siguiente:
//Un mensaje en un MessageBox con C#
using System.Windows.Forms;
class Hola3
{
static void Main(string[] args)
{
MessageBox.Show("Hola Bill, no me gusta tu sistema");
}
}
Lo primero que debes tener en cuenta, es que es necesario que esté instalado el módudo Windows Forms para Mono. Ahora debemos referenciar el archivo System.Windows.Forms.dll al compilar la aplicación. En mi caso, dicho archivo se encuentra en /usr/lib/mono/1.0/, asà que ejecutamos el compilador de mono para C Sharp (mcs) con el flag -reference (o solo -r), seguido de la ruta del archivo a referenciar:
casidiablo@punko:~/c#> mcs -reference:/usr/lib/mono/1.0/System.Windows.Forms.dll Hola3.cs
casidiablo@punko:~/c#> mono Hola3.exe
Lo cual mostrará lo siguiente:

Como ven funciona perfectamente... y me gustarÃa hacer una recomendación a los interesados en el tema: ustedes pueden usar en Mono en cualquier distribución de Gnu/Linux (y en muchas otras plataformas), pero yo les recomiendo que usen openSuse. ¿por qué? Bien:
- Mono es un proyecto sustentado por Novell (al igual que openSuse), y como se podrán dar cuenta en la página de descargas, el centro de atracción de la paqueterÃa es openSuse y sus RPM.
- openSuse viene además con la posibilidad de que instales Mono desde el CD, asà que desde el principio tendrás tu sistema con la capacidad de compilar y ejecutar aplicaciones con Mono. (además de venir con servidores Web y otras herramientas)
- Ubuntu no es un buen sistema para desarrollar software, es más para usuarios "normales"... por ejemplo al instalarlo no tienes nisiquiera el gcc preinstalado, asà que, aunque puedas usarlo con Mono, lo más probable es que tengas más problemas que usando openSuse. Pero claro, todo es decisión tuya.








sawyer21 dice:
Junio 5th, 2008 a las 5:36 pm
Muchas Gracias, este servicio esta muy bueno. Estas Invitado a mi tesis de Postgrado. Es una aplicacion desarrollada en Mono trata reconociemiento de patron del audio.
silenay dice:
Junio 6th, 2008 a las 3:39 pm
el monodevelop tiene los mismo componentes visuales que el visual estudio.Net
silenay dice:
Junio 6th, 2008 a las 4:28 pm
Alguien me podria decir si monodevelop tiene los mismo componentes visuales que el visual estudio.Net?
Casidiablo dice:
Junio 6th, 2008 a las 4:39 pm
Hola sinlenay.
Pues no. El generador de interfaces gráficas de MonoDevelop solo permite desarrollar aplicaciones en Gtk#.
Sin embargo, Mono tiene implementados todos los componentes visuales de .NET (aunque no tenga diseñador gráfico).
Un saludo!
silenay dice:
Junio 6th, 2008 a las 5:29 pm
Gracias Casidiablo, muy amable.
1-.Pero si yo intalo las dependencia de Gtk# en windows puedo correr la aplicacion en windows?
2-Pero, yo lo que uso es el IDE de programacion MonoDevelop. Y lo compilo con Mono. Mono como tal es la maquina virtual.
Mira yo debo usar componente como por ejemplo el datetimepiker, para fecha y hora,tambien el opendialog para cargar fichero, ademas de los otros componentes clasicos . Esos componente si ya estan implementado en Mono, porque son componente de Visual Studio.Net, entonces que IDE de Mono me sirve para desarrollar aplicaciones con todos estos componentes visuales.?
Casidiablo dice:
Junio 6th, 2008 a las 5:34 pm
Hola de nuevo.
1. SÃ, si puedes correr las aplicaciones en Windwos
Con respecto a lo demás, te explico un poco más a fondo. Con el IDE Monodevelop SI puedes desarrollar aplicaciones con componentes visuales de .NET, PERO no de manera gráfica. Es decir, podrás codificar las aplicaciones, compilar y construir ejecutables, pero (repito) codificandolas. O sea, que no puedes simplemente arrastrar un botón, y con un par de clics cambiarle el nombre, etc.
Para “dibujar” la interfaz gráfica, tienes que usar el diseñador de interfaces de Monodevelop, el cual las hace en Gtk#.
Un saludo!
ramon dice:
Junio 7th, 2008 a las 2:18 pm
necesito si alguien de ustedes conoce que nombre tiene los componentes visuales que se usan en gtk#, para hacer aplicaciones en Monodevelop.
Me refiero a los clasicos:
Edit.
Button.
Opendialog.
Label.
Datetimepiker.
listbox.
michel dice:
Junio 7th, 2008 a las 11:17 pm
Mira Ramon, si te refieres a los componentes visuales, intala la version de monodevelop en linux y busca ahi…ahora si lo que vas hacer es hacer graficos y cosas de ese estilo, si tendras que usar GTK#. Acabo de migrar una aplicacion hecha en Visual Studio.Net a Mono usando el MoMA1-2-6. Oye pincho perfecto lo unico que no se ven son los graficos….pero todos los componentes visuales como los botones, los label, todo eso…ect, perfecto…esta barbaro, creo que con el Mono en desarrollo Visual Studio va a tener que cojer la cola, porque lo que es propietario sera ahora libre, ademas que migrar aplicaciones sera muy comodo.