Tutoriales

Instalar Linux y correr aplicaciones C# en la Raspberry Pi - Instalación del Mono Runtime para ejecutar C#

Instalación del Mono Runtime para ejecutar C#

El Mono Runtime es la máquina virtual del .Net Framework diseñada para sistemas operativos Linux. Raspbian cuenta con soporte para el .Net Framework 4.0 a través de Mono. Con este ambiente se podrán ejecutar aplicaciones de consola de C# en Linux sin tener que emularlas.

Ejecuta los siguientes comandos:

pi@raspberrypi:~$ sudo aptitude update

Cuando haya terminado te mostrará los paquetes y releases que actualizó. En mi caso mostró:

Current status: 4 updates [+4], 4 new [+4].

Ejecuta el siguiente comando para descargar Mono.

pi@raspberrypi:~$ sudo aptitude install mono-runtime

Una vez terminado ya podrás correr aplicaciones .Net en tu Raspberry Pi. Creemos un Hello World para verificarlo.

Es importante comentar que la versión de Mono que se instaló sólo soporta el .Net Framework 4.0. Si tu aplicación será escrita en otra versión, tendrás que bajar el runtime completo de Mono. Hazlo con los siguientes comandos.

pi@raspberrypi:~$ sudo apt-get update

pi@raspberrypi:~$ sudo apt-get install mono-complete

Programando un Hola Mundo en C# para Raspberry Pi

Instala Visual C# 2012 en tu equipo Windows. Ábrelo y crea un nuevo proyecto de consola.

 

visual c sharp console raspberry pi

 

 En el archivo Program.cs, que contiene la función main() de nuestra aplicación, colocar el siguiente código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace hello_world
{
    class Program
   
{
        static void Main(string[] args)
       
{
            Console.WriteLine("Hello World!");
            OperatingSystem os = Environment.OSVersion;
           
PlatformID pid = os.Platform;

           
Console.WriteLine("Running on [" + pid.ToString() + "] OS");

       
}
    }
}

Compila el programa con Build. Esto te generará un archivo.exe que podrás encontrar en la carpeta bin/Debug o bin/Release, dependiendo de qué configuración hayas puesto en tu compilación.

Puedes ejecutar el programa en Windows. Su salida será como lo siguiente.

C:\Users\Link\Desktop\raspberry_pi\hello world\hello world\bin\Release>"hello wo
rld.exe"
Hello World!
Running on [Win32NT] OS

Ahora ese mismo programa lo podremos correr en Linux, basta con mover el archivo.exe generado a la Pi. Esto se puede lograr con Filezilla o con la aplicación de archivos de SSH Secure Shell. Con Filezilla basta configurar lo siguiente para conectarte al File System de tu Raspberry Pi.

 

Filezilla Raspberry Pi

 

 Con SSH Secure Shell, la configuración es exactamente la misma que se usó para SSH. Sólo da click en el ícono de la carpeta ssh file transfer.

Una vez conectado a tu Pi, simplemente copia el archivo.exe a cualquier directorio, te sugiero que sea en /home/pi/Desktop ya que ese directorio pertenece al usuario default de la Pi. Entra al directorio y verifica que tu archivo esté ahí.

pi@raspberrypi:~$ cd Desktop
pi@raspberrypi:~/Desktop$ ls *.exe
hello world.exe

Por último ejecuta tu archivo con Mono con permisos de super usuario (no siempre hacen falta).

pi@raspberrypi:~/Desktop$ sudo mono "hello world.exe"
Hello World!
Running on [Unix] OS
pi@raspberrypi:~/Desktop$ 

Como te habrás dado cuenta, los ensamblados del .Net Framework son como los de Java, deben poder correr en cualquier equipo donde su correspondiente máquina virtual esté corriendo.

He hecho algunas pruebas con aplicaciones visuales pero no funcionan correctamente como en otros SO como Ubuntu para PC.

En la siguiente sección de curso te daré algunos links útiles para echar a andar los periféricos SPI, UART, I2C, GPIO que trae tu Pi.