Raspberry Pi’de C# Uygulamalarını Çalıştırma
Merhabalar;
Bu yazımda Raspberry Pi gibi Linux işletim sistemi yüklü cihazlarda alışık olduğumuz C# ile yazılmış Windows uygulamalarının nasıl çalıştırılabileceğini anlatacağım.
Aslında Linux’da C# ile proje yapmak istiyorsak .Net Core kullanmak en doğru yöntem fakat .Net Core öğrenmek için henüz fırsat bulamayan geliştiricilerin veya önceden yazılmış küçük programlarını Raspberry Pi’de çalıştırmak isteyenlerin çok işine yarayacak olan “Mono” ile exe dosyalarının nasıl yürütüleceğine bakalım.
Not: Öncelikle büyük programların ki aslında büyükten kastım içerisinde farklı 3. parti tool’lar kullandığınız veya henüz Mono tarafından desteklenmeyen işlevlerin olduğu programlarda sorunlar yaşayabilirsiniz.
Rasppbery Pi cihazımıza ssh bağlantı yaparak öncelikle güncel versiyon kullandığımızı kontrol edelim
sudo apt-get update
sudo apt-get upgrade
Şimdi “Mono” kurarak devam ediyoruz;
sudo apt-get install mono-runtime
Mono uygulamalarımızda Rest çağrıları yapabilmek için kök sertifikası eklememiz gerekiyor
sudo mozroots --import --ask-remove --machine
Şimdi Visual Studio ile bir Console Application projesi oluşturuyoruz, ve klasik “Merhaba Dünya” uygulamamızı kodluyoruz.
public class MerhabaDunya
{
static public void Main()
{
Console.WriteLine("İlk Raspberry Pi C# Uygulamama Hoşgeldiniz");
}
}
WinForm uygulamalarını da çalıştırabilirsiniz, fakat winform uygulaması çalıştırmak istiyorsanız uzak ssh kullanamazsınız, Raspberry Pi’ye bir ekran, klavye ve mouse bağlayarak veya VNC ile remote bağlantı sağlayarak kendi üzerinden konsola girerek aşağıda vereceğim kodları çalıştırmanız gerekecektir. Aksi taktirde “Display” ile alakalı hata dönecektir, ssh bağlantıda hangi ekran da programı göstereceğini belirleyemez.
C# uygulamazı derliyoruz ve Debug klasöründeki dosyaları Raspberry Pi’ye kopyalıyoruz, kopyalama işlemi için WinSCP programını indirebilirsiniz.
WinSCP’yi indirip kurduktan sonra Raspberry Pi Ip adresimiz, kullanıcı adımız ve şifremiz ile SFTP bağlantısı sağlıyoruz
Bağlantı sağlandıktan sonra Raspberry Pi dizinleri karşımıza geliyor burada “MonoDebug” isminde klasör oluşturarak derlediğimiz dosyaları içerisine yapıştıralım.
Şimdi ssh bağlantımız ile bu klasör dizinine gidelim ve şu komutları çalıştıralım.
mono MonoDemo.exe
gelşitirdiğimzi form uygulamalrını raspberry pi de çalıştırabilir miyiz?
Merhaba, bu makale bunu anlatıyor zaten.
Merhaba hocam , peki C# kodumuzdaki .dll dosyalarını bu yöntemle kullanırsak herhangi bir sıkıntı yaşar mıyız?
Mono’nun izin verdiği özelliklere kadar dll’de kullanabilirsiniz. Ama sıkıntı yaşar mıyız sorusu biraz karışık. Yaşamazsınız diyemem Mono halen gelişiyor fakat daha .net üzerinde desteklemedikleri desteklediklerinden çok daha fazla.
sudo mozroots –import –ask-remove –machine sorgulamalarını yaptığımda böyle bir komut bulunamadı diyor neden acaba.
Büyük ihtimalle sudo apt-get install mono-runtime sırasında bir sıkıntı çıktığı için sonraki adımda mozroots komutunu kullanamıyorsunuz. tekrar sudo apt-get install mono-runtime çalıştırın sorunsuz tamamlanıyor mu hata alıyor musunuz kontrol edin.