Czy jest możliwe (i wykonalne) uruchamianie aplikacji .NET na Raspberry Pi z Mono ?
Jeśli tak, to jak dobrze działają? Czy można używać podstawowego interfejsu GUI, czy też niska wydajność realistycznie ogranicza go do aplikacji wiersza poleceń?
mono
software-development
berry120
źródło
źródło
Odpowiedzi:
Istnieje pytanie StackOverflow dość podobne do tego, Mono na Raspberry Pi . Jednak dzięki własnym badaniom nie udało mi się znaleźć niczego konkretnego dla platformy .NET, a jedynie C #.
Możesz zainstalować środowisko wykonawcze za pomocą APT na dystrybucji Debiana, wykonując:
Możesz także (zakładając, że masz GUI, takie jak LXDE) zainstalować wolne Mono IDE z:
Dla Arch Linux ARM musisz zainstalować środowisko uruchomieniowe za pośrednictwem Pacmana , tak jak:
Mono IDE można zainstalować w podobny sposób:
źródło
Wbrew powszechnemu przekonaniu kod skompilowany w VB.NET działa dobrze na Raspberry Pi, przynajmniej pod Debianem. apt-get zainstaluj mono-vbnc, a następnie uruchom exe VB jako argument mono, np. mono yourexe.exe
Nie wykonałem żadnych testów wydajności, ponieważ nie piszę aplikacji wymagającej dużej wydajności, ale jak dotąd wydaje się w porządku.
źródło
Kod .NET korzystający z bibliotek .NET Framework nie może działać na Raspberry Pi, ponieważ do działania wymaga wersji NETMF lub CLR kompatybilnej z ARM . Na razie Microsoft nie wydał jeszcze Windowsa na ARM (WoA). Zapoznaj się z eksperymentem 19 dotyczącym pracy Microsoft Research CLR na ARM.
Jednak uruchomienie kodu .NET (bez odwołania lub korzystania z bibliotek .NET Framework) jest możliwe przy użyciu Mono, ponieważ Mono ma CLR dla urządzeń ARM.
Zobacz także Budowanie systemu Windows dla architektury procesora ARM, aby uzyskać informacje o systemie Windows na ARM (WoA).
źródło
Mam aplikację .NET z wierszem poleceń do pracy z Mono. Aplikacja zasadniczo robi coś podobnego do przekierowania portów, pobiera dane otrzymane przez szeregowy UART i przekazuje je przez TCP / IP. Wykorzystuje klasy SerialPort, TcpListener, TcpClient i Socket .NET, z niewielkimi zmianami wymaganymi w kodzie obsługi SerialPort. Używam miękkiego systemu operacyjnego Debian.
Jeśli chodzi o wydajność, pierwszą rzeczą, na którą natknąłem się, było znaczne spowolnienie w kodzie debugowania / śledzenia, który formatował tablicę bajtów w ciąg znaków do celów logowania. Było 50 razy wolniej w porównaniu do komputera.
Zalecam więc napisanie testów wydajności jednostek podczas przenoszenia istniejącego kodu na RPi.
Do testowania jednostkowego NUnit działa dobrze na RPi ...
Aby zainstalować NUnit:
Biegać:
źródło