📌 De un vistazo: Pruebas de .NET con Mono en Linux
| Herramienta de desarrollo | Microsoft Visual Studio yC# (Formularios de Windows/GDI+) |
|---|---|
| Tiempo de ejecución objetivo | Mono Runtime (Marco .NET de código abierto) |
| Sistema operativo de destino | Linux (sistema operativo Debian/Ubuntu/Raspberry Pi) |
| Proyecto de prueba | Bola que rebota (simulación de física de gravedad y colisión) |
| Motor de dibujo gráfico | System.Drawing y la integración de Linux X11 |
| Apuntar | Verificación de la compatibilidad binaria sin cambiar el código entre dos sistemas operativos |
Antes de .NET moderno, la forma más popular de ejecutar aplicaciones de Windows escritas en C# en un entorno Linux era a través del proyecto Mono de código abierto.Este tutorial muestra cómo una simulación de bola en movimiento desarrollada con Visual Studio se ejecuta sin errores en Linux.
Introducción: Arquitectura .NET multiplataforma y Mono
El proyecto Mono, iniciado bajo el liderazgo de Miguel de Icaza, abrió nuevos caminos en el mundo del software al trasladar el tiempo de ejecución .NET de Microsoft a derivados de Linux y Unix.En esta guía, se explica cómo ejecutar un archivo binario (binario .exe) compilado en el entorno Windows directamente en Linux mediante una simulación práctica [1].
1. Simulación física de Windows Forms y GDI+
La implementación de la pelota que rebota simula el objeto que golpea los bordes de la pantalla con doble almacenamiento en búfer de gráficos y bucles de temporizador:
private void timer1_Tick(object sender, EventArgs e)
{
ballX += speedX;
ballY += speedY;
// Duvarlardan sekme kontrolleri
if (ballX < 0 || ballX + ballRadius > this.ClientSize.Width) speedX = -speedX;
if (ballY < 0 || ballY + ballRadius > this.ClientSize.Height) speedY = -speedY;
this.Invalidate(); // Yeniden çiz
}
2. Ejecutar con Mono en un entorno Linux
Para ejecutar el archivo compilado en la terminal de Linux, todo lo que necesita hacer es dar el siguiente comando [2]:
sudo apt update && sudo apt install mono-complete
mono BouncingBallApp.exe
Mono traduce las llamadas System.Windows.Forms al administrador de ventanas X11, mostrando perfectamente la imagen en la pantalla.
Fuentes y referencias independientes
[1] Documentación del proyecto Mono: Proyecto Mono: marco .NET multiplataforma y de código abierto
[2] Arquitectura de gráficos de Linux: Fundamentos X.Org: Arquitectura del sistema de ventanas X11