Linux’ta Mono ile .NET Uygulaması Çalıştırma: Örnek Test

Linux’ta Mono ile .NET Uygulaması Çalıştırma: Örnek Test

📌 Bir Bakışta: Linux Üzerinde Mono ile .NET Testi

Geliştirme Aracı Microsoft Visual Studio & C# (Windows Forms / GDI+)
Hedef Çalışma Zamanı Mono Runtime (Açık Kaynak Kodlu .NET Çatısı)
Hedef İşletim Sistemi Linux (Debian / Ubuntu / Raspberry Pi OS)
Test Projesi Bouncing Ball (Yerçekimi ve Çarpışma Fiziği Simülasyonu)
Grafik Çizim Motoru System.Drawing ve Linux X11 Entegrasyonu
Amaç İki İşletim Sistemi Arasında Kod Değiştirmeden İkili Uyumluluğu Doğrulama

Modern .NET öncesinde, C# ile yazılmış Windows uygulamalarını Linux ortamında çalıştırmanın en popüler yolu açık kaynaklı Mono projesiydi. Bu eğitimde, Visual Studio ile geliştirilen hareketli bir top simülasyonunun Linux’ta nasıl sıfır hatayla çalıştığı gösterilmektedir.

Giriş: Çapraz Platform .NET Mimarisi ve Mono

Miguel de Icaza öncülüğünde başlatılan Mono projesi, Microsoft’un .NET çalışma zamanını Linux ve Unix türevlerine taşıyarak yazılım dünyasında çığır açmıştır. Bu rehberde, Windows ortamında derlenen bir ikili dosyanın (binary .exe) Linux’ta doğrudan nasıl çalıştırıldığı pratik bir simülasyonla ele alınmaktadır [1].

1. Windows Forms ve GDI+ Fizik Simülasyonu

Bouncing ball (zıplayan top) uygulaması, grafik tamponlama (double buffering) ve zamanlayıcı (Timer) döngüleriyle nesnenin ekran sınırlarına çarpmasını simüle eder:

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. Linux Ortamında Mono ile Çalıştırma

Linux terminalinde derlenmiş dosyayı çalıştırmak için tek yapılması gereken şu komutu vermektir [2]:

sudo apt update && sudo apt install mono-complete
mono BouncingBallApp.exe

Mono, System.Windows.Forms çağrılarını X11 pencere yöneticisine çevirerek görseli sorunsuz şekilde ekrana yansıtır.


Bağımsız Kaynaklar ve Referanslar

[1] Mono Project Documentation: Mono Project: Cross platform, open source .NET framework
[2] Linux Graphics Architecture: X.Org Foundation: X11 Windowing System Architecture

DigiLiner editoryal ekibi; iki bağımsız kaynak doğrulaması, düzeltme kaydı ve insan denetimli yapay zekâ kullanımı ilkeleriyle yayın yapar. Editorial Policy