Mono 를 사용하여 Raspberry Pi에서 .NET 응용 프로그램을 실행할 수 있습니까?
그렇다면 얼마나 잘 운영됩니까? 기본 GUI를 사용할 수 있습니까 아니면 성능 저하로 인해 GUI가 명령 줄 응용 프로그램으로 제한됩니까?
Mono 를 사용하여 Raspberry Pi에서 .NET 응용 프로그램을 실행할 수 있습니까?
그렇다면 얼마나 잘 운영됩니까? 기본 GUI를 사용할 수 있습니까 아니면 성능 저하로 인해 GUI가 명령 줄 응용 프로그램으로 제한됩니까?
답변:
이와 비슷한 StackOverflow 질문이 있습니다. Mono on Raspberry Pi . 그러나 내 자신의 연구를 통해 .NET에만 해당되는 것이 아니라 C # 만 찾을 수있었습니다.
다음을 실행하여 데비안 배포판에서 APT 를 사용하여 런타임을 설치할 수 있습니다 .
$ sudo apt-get install mono-runtime
LXDE와 같은 GUI가 있다고 가정하면 다음과 같이 느린 모노 IDE를 설치할 수 있습니다.
$ sudo apt-get install monodevelop
들어 아치 리눅스 ARM 당신은을 통해 런타임을 설치해야합니다 팩맨 과 같이 :
$ sudo pacman -S mono
모노 IDE는 비슷한 방식으로 설치 될 수 있습니다 :
$ sudo pacman -S monodevelop
일반적인 생각과는 달리 VB.NET 컴파일 코드는 최소한 데비안의 Raspberry Pi에서 잘 작동합니다. apt-get mono-vbnc를 설치 한 다음 mono yourexe.exe와 같이 mono에 대한 인수로 VB exe를 실행하십시오.
성능 집약적 인 응용 프로그램을 작성하지는 않지만 지금까지는 괜찮은 것처럼 성능 벤치 마크를 수행하지 않았습니다.
.NET Framework 라이브러리를 사용하는 .NET 코드 는 ARM 호환 버전의 NETMF 또는 CLR 이 필요하므로 Raspberry Pi에서 실행할 수 없습니다 . 현재 Microsoft는 아직 Windows on ARM (WoA)을 출시하지 않았습니다. ARM에 대한 Microsoft Research CLR 작업에 대해서는 실험 19 를 참조하십시오 .
그러나 Mono에는 ARM 장치 용 CLR이 있으므로 Mono를 사용하여 .NET 코드 (참조없이 또는 .NET Framework 라이브러리 사용)를 실행할 수 있습니다.
ARM on Windows (WoA)에 대한 정보 는 ARM 프로세서 아키텍처를 위한 Windows 빌드를 참조하십시오 .
Mono와 작동하는 명령 줄 .NET 응용 프로그램이 있습니다. 앱은 기본적으로 포트 포워딩과 비슷한 작업을 수행하며 직렬 UART를 통해 수신 된 데이터를 가져와 TCP / IP를 통해 전달합니다. SerialPort, TcpListener, TcpClient 및 Socket .NET 클래스를 사용하며 SerialPort 처리 코드에 약간의 변경 만 필요합니다. 데비안 소프트 플로트 OS를 사용하고 있습니다.
성능 측면에서, 내가 처음 접한 것은 로깅 목적으로 바이트 배열을 문자열로 형식화하는 일부 디버깅 / 추적 코드에서 약간의 속도 저하였습니다. PC에서 실행하는 것보다 50 배 느립니다.
따라서 기존 코드를 RPi에 이식 할 때 성능 단위 테스트를 작성하는 것이 좋습니다.
단위 테스트의 경우 NUnit은 RPi에서 잘 작동합니다.
NUnit을 설치하려면
sudo apt-get install nunit
실행하려면
nunit-console appUnderTest.exe