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.

57 Comentarios | deja el tuyo

2 enlaces entrantes

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

  1. ombro dice:

    Soy homosexual!!!

  2. Casidiablo dice:

    Vale, vale… eso no le interesa a nadie!

  3. jorking dice:

    Es muy interesante la publicacion que hace al trabajar con windows form. bueno particuale mente me ayuda mucho sabes ahora estiy buscando ayuda para hacer un chat en ipv6 en C# usando mono. si puedes ayudarme Gracias de antemano

  4. Casidiablo dice:

    Gracias por tu comentario… pero lamento decirte que ahora no cuento con mucho tiempo. De verdad lo siento mucho, pero no podré ayudarte :(

  5. michel dice:

    Hola, necesito saber si con la ultima version de mono puedo hacer una aplicacion para la gestion de archivo audiovisuales, usando Postgre.Ademas necesito que sea multiplataforma, y completamente libre, si serian tan amable, me gustaria saber si java es propietaria, y si c# lo es tambien.
    Saludos

  6. Casidiablo dice:

    Claro que puedes hacerlo.

    Con respecto a lo de Java, pues es un lío lo de las liciencias, ya que es mucho lo que se ha dicho. De momento te sirve saber que puedes usar Java sin pagar licencias a Sun, es decir, es gratuito. Más info aquí:

    http://www.sun.com/software/opensource/java/faq.jsp

    Y C#… pues es un estándar. Por eso, aunque lo creó Microsoft, es posible encontrar implementaciones gratuitas como la que usa Mono.

    Un saludo!

  7. michel dice:

    Gracias colega, es que trabajo en mi tesis, y necesitaba hacer una fundamentacion buena de la herramienta de trabajo que debo usar, y me voy con mono+ c#.
    saludos!!!

  8. michel dice:

    ¿netbeans 6.0 vs mono versión beta 1.2?.
    quien tenga experiencia con ambas plataformas que me de su criterio.
    Saludos!!!1

  9. Casidiablo dice:

    Ten enclaro dos conceptos: NetBeans es un IDE, y mono una implementación de .NET.

    Tal vez te refieres a MonoDevelop, que es un IDE para la plataforma Mono. Si te refieres a NetBeans vs MonoDevelop, pues lo que te puedo decir es que NetBeans es mucho más maduro que MonoDevelop.

    Pero ten en cuenta que uno es para Java y el otro para otros lenguajes (C#, C, Boo, etc.)

    Un saludo!

  10. michel dice:

    Casidiablo ¿Cuando intalas la versión Mono versión beta 1.2. Esta ya trae incluida el IDE monodevelop?

  11. Casidiablo dice:

    No. Vienen por separado :P

  12. Sphirot dice:

    Tengo una duditas y si usted seria tan amable se lo agradeceria:

    Yo desarrolle una aplicacion con monodeveloment en C#.
    Que requisitos de software debo tener para que me corra en windows y linux….
    saludos.

  13. Casidiablo dice:

    Eso depende de qué librerías usas. Por ejemplo, si usas el .NET básico y quizás algo de Windows.Forms, no deberías hacer practicamente nada.

    Ahora, si lo hiciste usando, por ejemplo, las librerías de Gtk#, pues tendrías que instalar dichas librerías en Windows.

    Lo pillas? Todo depende de la aplicación!

    Un saludo!

  14. Sphirot dice:

    bueno a lo que me referia era si debia tener intalado en mi pc la plataforma mono, para correr aplicaciones desarrollas en monodevelop.

  15. Casidiablo dice:

    No. La idea es solo tener el Framework de .NET

¡Déjanos tu comentario!