This is an old revision of the document!


ComfileTech.WinForms

초보자 컬럼

WinForms는 Windows 응용 프로그램을 만들 때 오랫동안 사용되어 온 화면 구성 기술입니다. 버튼, 입력창, 표, 메뉴와 같은 일반적인 화면 요소를 이용하여 프로그램을 만들 수 있기 때문에, 산업용 장비 설정 프로그램, 모니터링 프로그램, HMI 소프트웨어 등 다양한 분야에서 널리 사용되어 왔습니다.

하지만 Microsoft의 공식 WinForms는 Windows 전용 기술입니다. 따라서 일반적인 WinForms 프로그램은 Linux가 탑재된 장치에서 그대로 실행할 수 없습니다.

ComfileTech.WinForms는 이러한 문제를 해결하기 위해 준비된 라이브러리입니다. 개발자는 최신 Visual Studio와 최신 .NET 환경에서 기존과 동일한 방식으로 WinForms 응용 프로그램을 개발할 수 있으며, 완성된 프로그램은 Windows뿐만 아니라 Linux 환경에서도 실행할 수 있습니다. 즉, 하나의 WinForms 응용 프로그램을 COMFILE Technology의 Windows Panel PC와 Linux Panel PC에서 모두 사용할 수 있습니다.

ComfileTech.WinForms 소개

ComfileTech.WinForms는 Mono의 WinForms 구현을 기반으로 제작된 크로스 플랫폼 WinForms 라이브러리입니다. 이를 이용하면 최신 Visual Studio, 최신 .NET 및 최신 C# 환경에서 WinForms 응용 프로그램을 개발하고, Windows와 Linux 환경에 동일한 프로그램을 배포할 수 있습니다.

또한 COMFILE Technology의 Windows Panel PC와 Linux Panel PC에서도 동일한 응용 프로그램을 실행할 수 있습니다. ComfileTech.WinForms는 Mono Runtime 전체를 사용하는 방식이 아니므로, Mono Runtime 전체를 별도로 설치할 필요가 없습니다.

Mono와의 차이점

Mono는 단순히 WinForms만 구현한 프로젝트가 아닙니다. Mono는 .NET 런타임, .NET 클래스 라이브러리, C# 컴파일러 등을 포함하는 독립적인 .NET 구현체입니다.

예를 들어 mono myapp.exe 명령으로 프로그램을 실행하면, WinForms뿐 아니라 .NET 런타임과 클래스 라이브러리까지 모두 Mono의 구현을 사용하게 됩니다. 따라서 개발 환경과 실행 환경 모두 Mono가 제공하는 기능과 호환성 범위에 의존하게 됩니다.

반면 ComfileTech.WinForms는 Mono의 WinForms 구현만을 사용합니다. 응용 프로그램은 Microsoft의 공식 .NET 런타임에서 실행되며, WinForms를 제외한 대부분의 .NET 클래스 라이브러리는 Microsoft의 공식 구현을 그대로 사용합니다.

따라서 최신 Visual Studio, 최신 .NET, 최신 C# 언어 기능을 사용할 수 있으며, Microsoft가 제공하는 성능 개선, 버그 수정 및 개발 편의 기능의 혜택도 그대로 누릴 수 있습니다.

장점

  • 최신 Visual Studio 사용 가능
  • 최신 .NET 사용 가능
  • 최신 C# 언어 기능 사용 가능
  • 기존 WinForms 개발 방식 유지
  • Windows와 Linux 동시 지원
  • Microsoft의 공식 .NET 런타임 사용
  • Mono Runtime 전체 설치 불필요

참고 사항

Mono의 WinForms 구현은 오랜 기간 발전해 온 우수한 오픈소스 프로젝트이며, 대부분의 WinForms 기능을 정상적으로 지원합니다.

다만 Microsoft WinForms와 100% 동일한 구현은 아니므로 일부 기능에서는 별도의 우회 방법이나 코드 수정이 필요할 수 있습니다. 또한 Windows 환경에서 정상 동작하던 일부 응용 프로그램이라도 Linux 환경에서는 운영체제의 차이로 인해 추가 수정이 필요할 수 있습니다.

시작하기