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

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:

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:

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:

mono-archivo-hola

El resultado muestra que «hello.exe» es un ensamblado Mono/.Net que se creó para ejecutarse en una PC con Windows, utilizando 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»:

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 utilizando 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-monorevelado

Si te quedas atascado usando Mono, entonces el página de soporte del proyecto tiene enlaces a los foros, listas de correo, así como a las preguntas frecuentes. MonoDevelop también tiene una amplia documentación y un Preguntas más frecuentes página.

Experto Geek - Tu Guía en Tendencias Tecnológicas