This is an old revision of the document!
Table of Contents
.NET 개발
.NET은 ComfilePi와 같은 Linux 기반 PC에서 전문적인 .NET 런타임 환경을 제공합니다. Blazor와 WebAssembly 기술을 사용하면 ComfilePi의 최신 웹 브라우저에서 동작하는 GUI 애플리케이션을 개발할 수 있습니다.
Blazor는 클라이언트와 서버를 거의 전부 C#으로 개발할 수 있게 해주며, System.Devices.Gpio 네임스페이스를 통해 ComfilePi에서 필요한 대부분의 IO 제어 기능을 사용할 수 있습니다.
또한 Blazor는 실시간 웹 애플리케이션을 지원하여, 여러 로컬 또는 원격 클라이언트에서 동시에 화면을 확인하고 제어할 수 있습니다.
아래 영상은 ComfilePi에서 실행되는 프로젝트 예시로, 후면에 장착된 CP-IO22-A4-2 IO 보드를 제어하는 애플리케이션입니다. 이 애플리케이션은 ComfilePi 자체 화면뿐 아니라 개발용 PC나 스마트폰에서도 실시간으로 확인 및 제어가 가능합니다.
(영상)
해당 예제 애플리케이션의 소스 코드는 다운로드하여 확인할 수 있습니다.
.NET IoT 라이브러리 API 참조도 함께 참고하시기 바랍니다.
ComfilePi에 .NET SDK 설치
Bookworm
.NET 10 SDK
.NET 10부터 Microsoft에서 ARM64 Linux 패키지를 공식 제공하고 있습니다. Bookworm OS를 사용하는 ComfilePi에서는 Microsoft Debian 12 설치 가이드를 따라 설치할 수 있습니다.
.NET 9 SDK
.NET 10 이전에는 ARM64 SDK가 공식 제공되지 않았기 때문에 Bookworm OS에서는 자체 제작한 설치 패키지를 제공합니다.
설치 명령: sudo apt update sudo apt install cpi-dotnet-sdk-9.0
.NET 8 SDK
마찬가지로 자체 패키지를 통해 설치 가능합니다.
설치 명령: sudo apt update sudo apt install cpi-dotnet-sdk-8.0
Bullseye
2022년 7월 26일 이후 배포된 ComfilePi OS에는 .NET SDK가 기본 포함되어 있습니다. 터미널에서 dotnet –version 명령으로 확인할 수 있습니다. 더 최신 버전이 필요하면 수동 설치를 진행하십시오.
모든 OS 공통 수동 설치
원하는 버전의 .NET SDK는 다음 명령으로 수동 설치할 수 있습니다.
(설치 스크립트 명령어 생략)
설치 후 터미널에서 dotnet –version 명령으로 정상 설치 여부를 확인합니다.
ARM Linux 가비지 컬렉션 버그 대응 (.NET 8, 9)
메모리가 작은 장치에서는 .NET 런타임 버그로 인해 애플리케이션이 중단될 수 있으므로 가비지 컬렉터 메모리 제한을 설정해야 할 수 있습니다.
설정 파일 /etc/environment 에 다음 항목 추가:
DOTNET_GCHeapHardLimitPercent=32
설정 후 재부팅하십시오.
개발용 PC에 .NET SDK 설치
개발은 PC에서 진행하는 것이 일반적으로 더 편리합니다.
방법:
- Visual Studio 2022 이상 설치 ( .NET 개발 옵션 선택 )
- .NET SDK 설치 후 dotnet CLI 사용
- Visual Studio Code를 IDE로 사용 가능
.NET 프로젝트 생성
.NET 프로젝트는 dotnet CLI 또는 Visual Studio 템플릿을 이용해 생성할 수 있습니다.
Visual Studio 사용
새 프로젝트 → Blazor App 선택 일반 프로젝트와 동일하게 빌드
.NET CLI 사용
터미널에서 다음 명령 실행:
dotnet new blazorserver dotnet build
.NET 애플리케이션 배포 및 실행
개발 환경에서 ComfilePi로 애플리케이션을 실행하려면 다음 단계를 수행합니다.
1. 대상 CPU 아키텍처 및 OS에 맞게 Publish 2. 생성된 파일을 ComfilePi로 전송 3. ComfilePi에서 실행
Visual Studio, dotnet CLI, 또는 Visual Studio Code로 수행 가능합니다.
디버깅
Visual Studio에서 ComfilePi로 원격 배포 및 디버깅하려면 Remote .NET Debugger 확장 기능을 사용합니다.
Raspberry Pi용 .NET 디버깅 문서도 참고하시기 바랍니다.
