gentoo linux, java, software libre y otras hierbas
Dic, 10 2007 - 1:28 pm

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:

windows forms en openSuse

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.
Etiquetas: C++, ejemplos, hack, mono, opensuse

47 Comentarios | deja el tuyo

2 enlaces entrantes

45 Comentarios en “C#, crear una aplicación usando Mono [referenciando Windows.Forms]”

  1. silenay dice:

    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.?

  2. Casidiablo dice:

    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!

  3. ramon dice:

    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.

  4. michel dice:

    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.

  5. loispose dice:

    Solo me falta saber como o de donde descargar System.Windows.Forms.dll porque al instalar modevelop no me lo instaló.

  6. loispose dice:

    Resuelto. Buscando lo encontre en la carpeta 2.0

    A la hora de referenciarlo me encuentro el siguiente problema:
    mcs -reference:/usr/lib/mono/2.0/System.Windows.Forms.dll Hola3.cs

  7. loispose dice:

    Gracias Cristian. Me va a servir de gran ayuda cuando tenga que buscar otro del estilo, porque yo de ignorante buscando en el google..

  8. loispose dice:

    Cada problema que resuelvo me da otro.
    he instalado mcs. que era el error que me daba.

    Ahora :
    hola3.c(6,13): error CS0103: The name `MessageBox’ does not exist in the current context
    cuando lo referencio me dice que no encuentra messagebox, que puede estar
    pasando?

  9. Ademir dice:

    Hola amigo tengo una consulta me podrias explicar algo mas detalladamente la parte de ejecutar el conpilador de c# mcs.
    Se ejecuta en la consola o donde???
    saludos….

  10. Cristian dice:

    Sí, ademir, desde la consola. Aunque también puedes usar MonoDevelop si no te gusta usar la consola.

    Un saludo.

  11. rodrigo dice:

    gracias por el material. puedo utilizar los devexpress compilar en mono y correr esa aplicacion en ubuntu?. puedo crear toda mi aplicacion en sharpdevelop compilar en mono usando windows.forms y correr en ubuntu. si esto es asi podria crear mi interfaz graficamente y conectarme a codigo???? Y GRACIAS POR COMPARTIR LA INFORMACION MUY BUEN MATERIAL (Y)

  12. Muajaja dice:

    hola oye ami me gustaria que me ayudaras con mi duda.

    Hay algun complemento que tenga Mono que pueda usar para hacer juegos.

    por ejemplo en Windows esta VS y su complemento es XNA

    en linux esta Mono y su complemento es??? y ademas que pueda hacer juegos para linux y windows o windows minimo.

    gracias

  13. jhony dice:

    como conecto postgres cpn monodevelop en ubuntu con wuindow.form porfavos una ayuda.

¡Déjanos tu comentario!