Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
comfilepi:dotnet_development:index [2026/02/16 22:35] – [.NET 개발] admincomfilepi:dotnet_development:index [2026/02/16 22:43] (current) – [.NET 애플리케이션 배포 및 실행] admin
Line 1: Line 1:
-====== .NET 개발 ======+====== .NET Development ======
  
 .NET은 ComfilePi와 같은 Linux 기반 PC에서 전문적인 .NET 런타임 환경을 제공합니다.  \\  .NET은 ComfilePi와 같은 Linux 기반 PC에서 전문적인 .NET 런타임 환경을 제공합니다.  \\ 
-Blazor와 WebAssembly 기술을 사용하면 ComfilePi의 최신 웹 브라우저에서 동작하는 GUI 애플리케이션을 개발할 수 있습니다.+[[https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor|Blazor and Web Assembly]] 기술을 사용하면 ComfilePi의 최신 웹 브라우저에서 동작하는 GUI 애플리케이션을 개발할 수 있습니다.
  
-Blazor는 클라이언트와 서버를 거의 전부 C#으로 개발할 수 있게 주며,   +Blazor는 클라이언트와 서버를 거의 모두 C#으로 개발할 수 있도록 줍니다.   
-System.Devices.Gpio 네임스페이스를 통해 ComfilePi에서 필요한 대부분의 IO 제어 기능을 사용할 수 있습니다.  +[[https://docs.microsoft.com/en-us/dotnet/api/system.device.gpio|System.Devices.Gpio]] 네임스페이스를 통해 ComfilePi에서 필요한 대부분의 IO 제어 기능을 사용할 수 있습니다.   
 +또한 Blazor는 여러 로컬 또는 원격 클라이언트에서 동시에 화면을 확인하고 제어할 수 있는 실시간 웹 애플리케이션 기능을 제공합니다.
  
-또한 Blazor는 실시간 웹 애플리케이션을 지원하여,   +아래 영상은 ComfilePi에서 실행되는 프로젝트 예시로, ComfilePi 후면에 장착된   
-여러 로컬 또는 원격 클라이언트에서 동시에 화면을 확인하고 제어할 수 있습니다. +CP-IO22-A4-2 IO 보드를 제어하는 애플리케이션입니다.  
- +
-아래 영상은 ComfilePi에서 실행되는 프로젝트 예시로,   +
-후면에 장착된 CP-IO22-A4-2 IO 보드를 제어하는 애플리케이션입니다.  +
 이 애플리케이션은 ComfilePi 자체 화면뿐 아니라 개발용 PC나 스마트폰에서도 실시간으로 확인 및 제어가 가능합니다. 이 애플리케이션은 ComfilePi 자체 화면뿐 아니라 개발용 PC나 스마트폰에서도 실시간으로 확인 및 제어가 가능합니다.
  
-(영상) +{{  :comfilepi:dotnet_development:dotnet_core_blazor.mp4?720x405  }} 
-{{ :comfilepi:dotnet_development:dotnet_core_blazor.mp4?720x405 |}}+ 
 +ComfilePi에서 실행 중인 .NET 실시간 웹 애플리케이션
  
-해당 예제 애플리케이션의 소스 코드는 다운로드하여 확인할 수 있습니다.+위 영상에서 사용된 애플리케이션의 {{ :comfilepi:dotnet_development:comfiletech.comfilepi.io.zip |소스 코드 다운로드}}
  
-.NET IoT 라이브러리 API 참조도 함께 참고하시기 바랍니다.+자세한 내용은 [[https://learn.microsoft.com/en-us/dotnet/api/?view=iot-dotnet-latest|.NET IoT Libraries API Reference]] 문서를 참고하시기 바랍니다.
  
  
Line 29: Line 28:
 == .NET 10 SDK == == .NET 10 SDK ==
 .NET 10부터 Microsoft에서 ARM64 Linux 패키지를 공식 제공하고 있습니다.   .NET 10부터 Microsoft에서 ARM64 Linux 패키지를 공식 제공하고 있습니다.  
-Bookworm OS를 사용하는 ComfilePi에서는 Microsoft Debian 12 설치 가이드를 따라 설치할 수 있습니다.+Bookworm OS를 사용하는 ComfilePi에서는   
 +[[https://learn.microsoft.com/en-us/dotnet/core/install/linux-debian?tabs=dotnet10#debian-12|Microsoft Debian 12 설치 가이드]]를 따라 설치할 수 있습니다. 
 + 
 +==.NET 9 SDK==
  
-== .NET 9 SDK == 
 .NET 10 이전에는 ARM64 SDK가 공식 제공되지 않았기 때문에   .NET 10 이전에는 ARM64 SDK가 공식 제공되지 않았기 때문에  
 Bookworm OS에서는 자체 제작한 설치 패키지를 제공합니다. Bookworm OS에서는 자체 제작한 설치 패키지를 제공합니다.
  
-설치 명령: +<code> 
-sudo apt update  +sudo apt update
 sudo apt install cpi-dotnet-sdk-9.0 sudo apt install cpi-dotnet-sdk-9.0
 +</code>
  
-== .NET 8 SDK == +==.NET 8 SDK==
-마찬가지로 자체 패키지를 통해 설치 가능합니다.+
  
-설치 명령: +.NET 10 이전에는 ARM64 SDK가 공식 제공되지 않았기 때문에   
-sudo apt update  +Bookworm OS에서는 자체 제작한 설치 패키지를 제공합니다. 
 + 
 +<code> 
 +sudo apt update
 sudo apt install cpi-dotnet-sdk-8.0 sudo apt install cpi-dotnet-sdk-8.0
 +</code>
  
  
 === Bullseye === === Bullseye ===
 2022년 7월 26일 이후 배포된 ComfilePi OS에는 .NET SDK가 기본 포함되어 있습니다.   2022년 7월 26일 이후 배포된 ComfilePi OS에는 .NET SDK가 기본 포함되어 있습니다.  
-터미널에서 dotnet --version 명령으로 확인할 수 있습니다.   +터미널에서 ''dotnet --version'' 명령으로 확인할 수 있습니다.   
-더 최신 버전이 필요하면 수동 설치를 진행하십시오.+더 최신 버전이 필요하면 아래 수동 설치 방법을 사용하십시오.
  
-=== 모든 OS 공통 수동 설치 ===+=== Any OS ===
  
-원하는 버전의 .NET SDK는 다음 명령으로 수동 설치할 수 있습니다.+다음 명령을 사용하면 원하는 버전의 .NET SDK를 수동 설치할 수 있습니다.
  
-(설치 스크립트 명령어 생략)+<code bash> 
 +DOTNET_VERSION=10.0  # 원하는 버전 선택 
 +wget https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh 
 +chmod +x dotnet-install.sh 
 +sudo ./dotnet-install.sh --channel $DOTNET_VERSION --install-dir /opt/Microsoft/dotnet 
 +sudo ln -s /opt/Microsoft/dotnet/dotnet /usr/local/bin/dotnet
  
-치 후 터미널에서 dotnet --version 명령으로 정상 설치 여부를 확인합니다.+# .NET 런타임 경로 정 파일 생성 
 +sudo mkdir /etc/dotnet 
 +sudo bash -c 'echo /opt/Microsoft/dotnet/ >> /etc/dotnet/install_location' 
 +</code>
  
 +설치 후 터미널에서 <html><code>dotnet --version</code></html> 명령으로 정상 설치 여부를 확인합니다.
  
 +=== ARM Linux 가비지 컬렉션 버그 대응 (.NET 8 & 9 전용) ===
  
-=== ARM Linux 가비지 컬렉션 버그 대응 (.NET 8, 9) === +**중요** - [[https://github.com/dotnet/runtime/issues/95257|.NET 런타임 버그]]로 인해   
- +메모리가 작은 장치에서는 애플리케이션이 중단될 수 있으므로  
-메모리가 작은 장치에서는 .NET 런타임 버그로 인해 애플리케이션이 중단될 수 있으므로  +
 가비지 컬렉터 메모리 제한을 설정해야 할 수 있습니다. 가비지 컬렉터 메모리 제한을 설정해야 할 수 있습니다.
  
-설정 파일 /etc/environment 에 다음 항목 추가:+파일 ///etc/environment// 에 아래 항목을 추가하십시오.
  
 +<code>
 DOTNET_GCHeapHardLimitPercent=32 DOTNET_GCHeapHardLimitPercent=32
 +</code>
  
 설정 후 재부팅하십시오. 설정 후 재부팅하십시오.
  
 +자세한 내용은  
 +[[https://learn.microsoft.com/en-us/dotnet/core/runtime-config/garbage-collector#heap-limit-percent|Microsoft 공식 문서]]를 참고하십시오.
  
  
-===== 개발용 PC에 .NET SDK 설치 ===== 
  
-개발은 PC에서 진행하는 것이 일반적으로 더 편리합니다.+===== 개발용 PC에 .NET SDK 설치 =====
  
-방법:+개발은 PC에서 진행하는 것이 더 편리합니다.   
 +다음 방법 중 하나를 사용할 수 있습니다.
  
-  * Visual Studio 2022 이상 설치 ( .NET 개발 옵션 선택 ) +[[https://visualstudio.microsoft.com/downloads/|Visual Studio 다운로드]] (2022 이상) 후 .NET 개발 옵션 선택   
-  * .NET SDK 설치 후 dotnet CLI 사용 +[[https://dotnet.microsoft.com/download/dotnet/|.NET SDK 다운로드]] 후 CLI(dotnet 명령) 사용   
-  * Visual Studio Code를 IDE로 사용 가능+[[https://visualstudio.microsoft.com/downloads/|Visual Studio Code 다운드]] 후 dotnet CLI와 함께 사용  
  
  
Line 89: Line 107:
 ===== .NET 프로젝트 생성 ===== ===== .NET 프로젝트 생성 =====
  
-.NET 프로젝트는 dotnet CLI 또는 Visual Studio 템플릿을 이용해 생성할 수 있습니다.+.NET 프로젝트는 ''dotnet'' CLI 또는 Visual Studio 템플릿을 이용해 생성할 수 있습니다.
  
 ==== Visual Studio 사용 ==== ==== Visual Studio 사용 ====
  
-새 프로젝트 → Blazor App 선택   +=== 프로젝트 생성 및 빌드 === 
-일반 프로젝트와 동일하게 빌드+ 
 +Visual Studio에서 .NET 서버형 Blazor 애플리케이션을 만들려면   
 +새 프로젝트에서 //Blazor App// 을 선택하십시오. 
 + 
 +|{{  :comfilepi:dotnet_development:blazor_app.png?nolink&450|  }}|{{  :comfilepi:dotnet_development:blazor_server.png?450|  }} | 
 + 
 +다른 Visual Studio 프로젝트와 동일하게 빌드하면 됩니다.
  
  
Line 100: Line 124:
 ==== .NET CLI 사용 ==== ==== .NET CLI 사용 ====
  
-터미널에서 다음 명령 실행:+=== 프로젝트 생성 및 빌드 ===
  
-dotnet new blazorserver   +영상 예제와 같은 서버형 Blazor 프로젝트 생성: 
-dotnet build+ 
 +''dotnet new blazorserver'' 
 + 
 +프로젝트 폴더에서 빌드: 
 + 
 +''dotnet build''
  
  
Line 111: Line 140:
 개발 환경에서 ComfilePi로 애플리케이션을 실행하려면 다음 단계를 수행합니다. 개발 환경에서 ComfilePi로 애플리케이션을 실행하려면 다음 단계를 수행합니다.
  
-  1. 대상 CPU 아키텍처 및 OS에 맞게 Publish +  - ComfilePi CPU 아키텍처와 OS에 맞게 Publish 
-  2. 생성된 파일을 ComfilePi로 전송 +  생성된 파일을 ComfilePi로 전송 
-  3. ComfilePi에서 실행+  ComfilePi에서 실행 
 + 
 +Visual Studio, dotnet CLI, Visual Studio Code를 통해 수행할 수 있습니다. 
 + 
 +  * [[.:visual_studio:index|Visual Studio 사용 방법]]
  
-Visual Studio, dotnet CLI, 또는 Visual Studio Code로 수행 가능합니다.+참고: [[https://learn.microsoft.com/en-us/dotnet/iot/deployment|ARM 싱글보드 컴퓨터에서 .NET 앱 배포]]
  
  
  
-===== 디버깅 =====+===== 프로젝트 디버깅 =====
  
 Visual Studio에서 ComfilePi로 원격 배포 및 디버깅하려면   Visual Studio에서 ComfilePi로 원격 배포 및 디버깅하려면  
-Remote .NET Debugger 확장 기능을 사용합니다.+[[:comfilepi:dotnet_core_development:remote_debugger:index|Remote .NET Debugger Visual Studio Extension]]을 사용하십시오.
  
-Raspberry Pi용 .NET 디버깅 문서도 참고하시기 바랍니다.+참고: [[https://docs.microsoft.com/en-us/dotnet/iot/debugging|Raspberry Pi에서 .NET 앱 디버깅]]