Mono ile Raspberry Pi'de .NET uygulamaları çalıştırmak mümkün mü ve mümkün mü?
Eğer öyleyse, ne kadar iyi koşuyorlar? Temel bir GUI kullanılabilir mi, yoksa düşük performans onu komut satırı uygulamalarıyla gerçekçi olarak kısıtlıyor mu?
Mono ile Raspberry Pi'de .NET uygulamaları çalıştırmak mümkün mü ve mümkün mü?
Eğer öyleyse, ne kadar iyi koşuyorlar? Temel bir GUI kullanılabilir mi, yoksa düşük performans onu komut satırı uygulamalarıyla gerçekçi olarak kısıtlıyor mu?
Yanıtlar:
Buna benzer bir StackOverflow sorusu var, Ahududu Pi'deki Mono . Bununla birlikte, kendi araştırmamla, .NET'e özgü bir şey bulamadım, ama daha çok sadece C #.
Çalışma zamanını aşağıdakileri yürüterek bir Debian dağıtımında APT kullanarak yükleyebilirsiniz :
$ sudo apt-get install mono-runtime
Ayrıca (LXDE gibi bir çeşit GUI'ye sahip olduğunuzu varsayarak) aşağıdakilerle yavaş bir Mono IDE kurabilirsiniz:
$ sudo apt-get install monodevelop
For Arch Linux ARM sen aracılığıyla çalışma zamanını yüklemeniz gerekir Pacman şöyle:
$ sudo pacman -S mono
Mono IDE benzer şekilde kurulabilir:
$ sudo pacman -S monodevelop
Popüler inanışın aksine, VB.NET derlenmiş kodu Raspberry Pi'de en azından Debian'ın altında çalışıyor. apt-get install mono-vbnc ve ardından VB exe'nizi mono, örneğin mono yourexe.exe argümanı olarak çalıştırın
Performansı yoğun bir uygulama yazmadığım için ancak şu ana kadar iyi göründüğüm için hiçbir performans testi yapmadım.
Kullandığı .NET kod .NET Framework kütüphanelerini bunun bir ARM uyumlu sürümü gereğine göre Ahududu Pi üzerinde çalıştıramazsınız NETMF veya CLR çalıştırmak için. Şu an itibariyle, Microsoft henüz Windows'ta ARM (WoA) sürümünü yayınlamamıştır. ARM üzerinde Microsoft Research CLR çalışmaları için Deney 19'a bakınız .
Bununla birlikte, .NET kodunun çalıştırılması (referans olmadan veya .NET Framework Kitaplıklarının kullanılması), Mono'nun ARM cihazları için bir CLR'ye sahip olması nedeniyle Mono kullanılarak mümkündür.
Ayrıca , ARM üzerinde Windows hakkında bilgi için bkz. ARM işlemci mimarisi için Windows oluşturma.
Mono ile çalışmak için bir komut satırı .NET uygulaması var. Uygulama temel olarak port yönlendirme, seri UART ile alınan verileri alma ve TCP / IP üzerinden iletme gibi bir şey yapıyor. SerialPort, TcpListener, TcpClient ve Socket .NET sınıflarını kullanır, SerialPort işleme kodunda yalnızca küçük değişiklikler gerekir. Debian soft float işletim sistemini kullanıyorum.
Performans açısından karşılaştığım ilk şey, günlük tutma amacıyla bir bayt dizisini biçimlendiren bazı hata ayıklama / izleme kodundaki bazı önemli yavaşlamalar oldu. PC'de çalışmaya kıyasla 50 kat daha yavaştı.
Bu nedenle, mevcut kodu RPI'ya aktarırken bazı performans birimi testlerini yazmanızı öneririm.
Birim test için, NUnit RPI'de iyi çalışıyor
NUnit'i kurmak için:
sudo apt-get install nunit
Koşmak:
nunit-console appUnderTest.exe