.NET (C# & VB.Net)

.NET 생태계는 현재 두 가지 계열로 구분됩니다.

  • “.NET Framework”

→ 버전 4.x까지의 기존 .NET Framework를 의미합니다.

  • “.NET”

→ .NET 5 이후 버전을 의미하며 (이전 명칭: .NET Core), 현재는 .NET 10까지 발전했습니다.

ComfilePi와 같은 Linux 기반 패널 PC에서는 다음과 같은 방식으로 WinForms 애플리케이션을 실행할 수 있습니다.

  1. .NET Framework 4 애플리케이션을 Mono 런타임에서 실행
  2. .NET 5 이상 + Mono WinForms 포팅 라이브러리 (예: ComfileTech.WinForms) 사용

특별한 이유가 없다면 최신 .NET 버전을 사용하는 것을 권장합니다.

.NET 5 이상을 선택해야 하는 경우

ComfilePi에서 .NET 사용 방법: 컴파일파이에서 .NET 사용하기

다음과 같은 경우 .NET 사용을 고려할 수 있습니다.

  • 신규 솔루션을 개발하는 경우
  • 개발자가 Linux를 지원하는 크로스플랫폼 UI 프레임워크 사용이 가능한 경우
    • Blazor
    • Avalonia
    • Uno Platform
    • Eto.Forms
    • Gir.Core 등
  • 또는 Mono WinForms 포팅 라이브러리 (ComfileTech.WinForms)를 사용할 수 있는 경우
  • 보다 현대적인 WinForms UI를 원한다면 jControls 라이브러리를 사용할 수 있습니다.

애플리케이션을 다양한 플랫폼에서 실행할 수 있도록 하는 가장 좋은 방법 중 하나는 Blazor를 사용하는 것입니다. UI를 하나의 .NET 어셈블리로 구성하면 웹 브라우저에서 원격 실행이 가능하며, Blazor Hybrid를 사용하면 다양한 플랫폼에서 WebView 형태로 UI를 실행할 수 있습니다. Linux 환경에서는 BlazorWebView 프로젝트를 사용할 수 있습니다.

※ 참고: .NET MAUI는 현재 Linux를 지원하지 않습니다.

장점

  • Microsoft에서 지속적으로 개발 및 유지관리 중
  • 매년 새로운 기능, 성능 개선, 개발 도구 향상 제공
  • 네이티브 컴파일 가능 → 성능 향상 및 역공학 방지
  • 다른 언어(C, Python 등)에서 사용할 수 있는 라이브러리 제작 가능
  • 크로스플랫폼 UI 프레임워크 선택 시 가장 넓은 플랫폼 지원
    • Windows
    • Linux
    • Android
    • macOS
    • iOS
    • 웹 브라우저

단점

  • WinForms 사용 시 Linux에서 실행하려면 Mono WinForms 포팅 필요
  • 크로스플랫폼 UI 사용 시 WinForms처럼 WYSIWYG 디자이너 사용이 어려울 수 있음
  • WinForms Linux 실행에는 Mono 기반 라이브러리가 필요

.NET Framework 4를 선택해야 하는 경우

ComfilePi에서 .NET Framework 사용 방법: 컴파일파이에서 .NET (닷넷) 프레임웍 과 Mono 사용하기

다음과 같은 경우 적합합니다.

  • 기존 .NET Framework 2.0 ~ 4.x 애플리케이션을 Linux로 포팅해야 하는 경우
  • 개발자가 WinForms만 익숙하고 크로스플랫폼 UI 경험이 없는 경우

장점

  • Windows에서 네이티브 실행 가능
  • Linux에서는 Mono를 통해 실행 가능
  • WinForms 경험이 있는 개발자라면 새로운 UI 프레임워크 학습이 필요 없음

단점

  • 향후 점진적으로 지원 축소(Deprecated) 예정
  • Linux Mono 구현이 완벽하지 않아 추가 작업 필요할 수 있음
  • Windows 또는 Mono가 있는 환경에서만 실행 가능
  • 네이티브 컴파일 불가 → 코드 역분석 가능

.NET 5 이상과 .NET Framework 4를 동시에 지원하려면

두 환경 모두에서 사용할 라이브러리를 개발해야 한다면 .NET Standard 2.0을 사용하는 것이 좋습니다.

이 경우 주로 다음과 같은 공통 유틸리티 라이브러리 개발에 적합합니다.

  • Modbus 통신
  • GPIO 제어
  • I2C
  • 시리얼 통신
  • TCP/IP 통신 등

이를 통해 애플리케이션의 이식성을 크게 높일 수 있습니다.

기술 지원 정책

COMFILE Technology는 Visual Studio 및 .NET 기술 자체에 대한 기술 지원을 제공하지 않습니다. 해당 기술에 대한 지원은 Microsoft를 통해 문의하시기 바랍니다.

ComfilePi - 산업용 라즈베리파이 패널 PC