Cómo escribir programas C# en una Raspberry Pi usando Mono


Dado que Raspberry Pi es capaz de ejecutar una distribución completa de Linux, su potencial como herramienta de desarrollo es enorme. Pi no solo es compatible con los principales lenguajes compilados como C, C++ y Java, sino que también admite lenguajes de secuencias de comandos populares como Python, Perl y Lua. Pi también puede usar algunos de los lenguajes compilados menos conocidos (pero igual de poderosos), como el lenguaje Go de Google y C#. Usar este último en Raspberry Pi es simple gracias al proyecto Mono de código abierto.

Mono es un conjunto de herramientas (incluido un compilador de C# y Common Language Runtime) que se utiliza para crear programas compatibles con ".NET" basados en los estándares ECMA publicados. En esencia, le permite compilar y ejecutar código C# en Linux, y los archivos binarios resultantes son totalmente compatibles con Microsoft.NET.

Para instalar Mono en el uso de Raspberry:

                
                  sudo
                
                
                  apt-get install
                
                 mono-complete
              

El siguiente paso es compilar el programa estándar "Hello World". Cree un archivo llamado "hello.cs" usando su editor de texto favorito. Para crearlo con nano, escriba:

                
                  nano
                
                 hello.cs
              

Corta y pega el siguiente código:

                
                  using
                
                
                  System
                
                
                  ;
                
                
                  public
                
                
                  class
                
                 HelloWorld

                
                  {
                
                
                  static
                
                
                  public
                
                
                  void
                
                 Main 
                
                  (
                
                
                  )
                
                
                  {
                
                
        Console
                
                  .
                
                
                  WriteLine
                
                
                  (
                
                
                  "Hello Make Tech Easier"
                
                
                  )
                
                
                  ;
                
                
                  }
                
                
                  }
                
              

C# es un lenguaje orientado a objetos, lo que significa que todo se define dentro de una clase. El código anterior crea una clase llamada "HelloWorld" y define una función dentro de la llamada "Main". Main() es siempre el punto de partida para los programas de C#. “Console.WriteLine” imprime texto en el terminal (consola).

Para compilar el tipo de programa:

                mcs hello.cs
              

Esto creará un archivo llamado "hello.exe" en el directorio actual. Normalmente en Linux los archivos binarios no usan la extensión “.exe”, es algo que viene de DOS y Windows. Si verifica el tipo de archivo de "hello.exe", verá que en realidad es un ejecutable de Intel:

                
                  file
                
                 hello.exe
              

mono-file-hello

El resultado muestra que "hello.exe" es un ensamblado Mono/.Net que se creó para ejecutarse en una PC con Windows, usando un procesador Intel. ¡Pero lo compilamos en Linux, usando un procesador ARM!

Esto se debe a que .NET en realidad usa un lenguaje intermedio que es interpretado por Common Language Runtime. El comienzo del archivo .exe es el código Intel/Windows real que inicia automáticamente el tiempo de ejecución y permite que se ejecute el resto del programa (como código intermedio).

La forma oficial de iniciar el programa en una Raspberry es a través del comando "mono":

                mono hello.exe
              

Y como era de esperar, la salida mostrará "Hello Make Tech Easier" en la terminal. Debido a que la salida de Mono es compatible binariamente con Windows, puede copiar el archivo "hello.exe" a una PC con Windows y ejecutarlo directamente.

También es posible escribir programas GUI usando GTK. Pero primero necesitas instalar los enlaces entre Mono y GTK:

                
                  sudo
                
                
                  apt-get install
                
                 gtk-sharp2
              

Cree un archivo llamado "hellogtk.cs" con el siguiente código:

                
                  using
                
                
                  Gtk
                
                
                  ;
                
                
                  using
                
                
                  System
                
                
                  ;
                
                
                  class
                
                 Hello 
                
                  {
                
                
                  static
                
                
                  void
                
                 Main
                
                  (
                
                
                  )
                
                
                  {
                
                
                Application
                
                  .
                
                
                  Init
                
                
                  (
                
                
                  )
                
                
                  ;
                
                
 
                Window window 
                
                  =
                
                
                  new
                
                 Window 
                
                  (
                
                
                  "Hello MTE"
                
                
                  )
                
                
                  ;
                
                
                window
                
                  .
                
                
                  Show
                
                
                  (
                
                
                  )
                
                
                  ;
                
                
 
                Application
                
                  .
                
                
                  Run
                
                
                  (
                
                
                  )
                
                
                  ;
                
                
                  }
                
                
                  }
                
              

Este es un programa GTK muy, muy simple que abrirá una nueva ventana. Para compilarlo escribe:

                mcs hellogtk.cs -pkg:gtk-sharp-
                
                  2.0
                
              

El indicador "pkg" le dice a Mono que este programa necesita usar el kit de herramientas GTK. Para ejecutar "hellogtk.exe", debe asegurarse de que el escritorio se esté ejecutando en su Pi. Desde el administrador de archivos o desde una terminal iniciada desde el escritorio, ejecute el binario.

mono-hellogtk

Se abrirá una pequeña ventana con el título "Hola MTE". La aplicación no hace nada más, pero muestra que puede escribir programas GUI en su Pi usando C#.

Mono tiene un proyecto hermano IDE multiplataforma, conocido como MonoDevelop. Los proyectos facilitan la escritura de aplicaciones web ASP.NET y de escritorio en Linux, Windows y Mac OSX. También está disponible en Raspberry Pi. Para instalarlo, escriba lo siguiente en una terminal:

                
                  sudo
                
                
                  apt-get install
                
                 monodevelop
              

mono-monodevelop

Si te quedas atascado usando Mono, entonces elpágina de soporte del proyectotiene enlaces a los foros, listas de correo, así como a las preguntas frecuentes. MonoDevelop también tiene una ampliadocumentacióny unPreguntas más frecuentespágina.

¡Suscríbete a nuestro boletín!

Nuestros últimos tutoriales enviados directamente a su bandeja de entrada

Regístrese para recibir todos los boletines.

Al registrarse, acepta nuestra Política de privacidad y los usuarios europeos aceptan la política de transferencia de datos. No compartiremos tus datos y puedes darte de baja en cualquier momento.

Suscribir