Raspberry Pi Üzerinde .NET Uygulamaları Çalıştırma: Adım Adım Rehber

Raspberry Pi Üzerinde .NET Uygulamaları Çalıştırma: Adım Adım Rehber

📌 Bir Bakışta: Raspberry Pi Üzerinde Modern .NET Geliştirme

Hedef Donanım Raspberry Pi 3B+, 4B, 5 veya Pi Zero 2 W (ARM32 / ARM64)
Yazılım Çatısı .NET 8 / .NET 9 LTS (Linux ARM Runtimes)
İşletim Sistemi Raspberry Pi OS (64-bit Debian Bookworm önerilir)
Dağıtım Seçenekleri Framework-dependent veya Self-contained (Tek Dosya Çıktısı)
Donanım Erişimi System.Device.Gpio ve I2C/SPI Kütüphaneleri
Geliştirme Araçları Visual Studio 2022 / VS Code ile SSH Uzaktan Hata Ayıklama (Remote Debug)

Microsoft’un .NET platformunu tamamen açık kaynaklı ve platformlar arası hale getirmesiyle birlikte, güçlü C# dilini ve modern .NET kütüphanelerini Raspberry Pi üzerinde çalıştırmak son derece kolay ve yüksek performanslı hale geldi. Bu adım adım rehberde kurulumdan GPIO yönetimine kadar tüm süreci ele alıyoruz.

Giriş: IoT ve Kenar Bilişimde .NET Gücü

Eski Windows IoT Core günlerinin geride kalmasıyla, modern .NET (Core, 6, 7, 8 ve sonrası) doğrudan standart Linux dağıtımları üzerinde yerel performansla çalışabilmektedir. C# geliştiricileri artık bildikleri modern dil özelliklerini (async/await, LINQ, pattern matching) doğrudan gömülü sistem projelerine taşıyabilmektedir [1].

1. Raspberry Pi Üzerine .NET Runtime Kurulumu

En pratik kurulum yöntemi, Microsoft’un resmi kurulum betiğini kullanmaktır. Raspberry Pi terminalinde şu komutları çalıştırın:

# Kurulum betiğini indirme ve .NET 8 LTS kurma
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 8.0 --runtime dotnet

# Ortam değişkenlerini kalıcı hale getirme
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc

# Kurulumu doğrulama
dotnet --info

2. Uygulamayı Derleme ve Pi’ye Dağıtma

Geliştirici bilgisayarınızda (Windows veya macOS) hazırladığınız uygulamayı Raspberry Pi’de ek bir runtime kurmadan çalıştırmak istiyorsanız “Self-contained” olarak derleyebilirsiniz [2]:

dotnet publish -c Release -r linux-arm64 --self-contained true -p:PublishSingleFile=true

Oluşan tek çalıştırılabilir dosyayı SCP veya FileZilla ile Pi’ye aktarıp chmod +x appname yetkisi verdikten sonra doğrudan ./appname komutuyla çalıştırabilirsiniz.

3. GPIO Pinlerine C# ile Müdahale

Resmi System.Device.Gpio NuGet paketi sayesinde LED yakıp söndürme, röle kontrolü veya sensör okuma işlemleri sadece birkaç satır C# koduyla gerçekleştirilebilir:

using System.Device.Gpio;

int pin = 18;
using var controller = new GpioController();
controller.OpenPin(pin, PinMode.Output);
controller.Write(pin, PinValue.High); // LED yandı!

Bağımsız Kaynaklar ve Referanslar

[1] Microsoft Learn: .NET IoT Libraries Documentation & Hardware Programming
[2] Raspberry Pi Foundation: Raspberry Pi OS Documentation & ARM64 Linux 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