This is an old revision of the document!
Table of Contents
ComfileTech.WinForms
구체적으로 설명하기 전에 초보자들은 아래 초보자 컬럼을 먼저 읽어보세요.
초보자 컬럼
WinForms는 Windows 응용 프로그램을 만들 때 오랫동안 사용되어 온 화면 구성 기술입니다. 버튼, 입력창, 표, 메뉴와 같은 일반적인 화면 요소를 이용하여 PC용 프로그램을 만들 수 있기 때문에, 산업용 장비 설정 프로그램이나 모니터링 프로그램에서도 많이 사용되어 왔습니다.
하지만 Microsoft의 공식 WinForms는 기본적으로 Windows 전용입니다. 따라서 일반적인 WinForms 프로그램은 Linux가 탑재된 Panel PC에서 그대로 실행할 수 없습니다.
ComfileTech.WinForms는 이러한 문제를 해결하기 위해 준비된 라이브러리입니다. 기존 WinForms 개발 방식은 최대한 유지하면서, 같은 프로그램을 Windows Panel PC와 Linux Panel PC 양쪽에서 사용할 수 있도록 도와줍니다.
즉, 개발자는 최신 Visual Studio와 최신 .NET을 이용하여 익숙한 방식으로 프로그램을 만들고, 사용자는 COMFILE Technology의 Windows Panel PC 또는 Linux Panel PC에서 같은 응용 프로그램을 실행할 수 있습니다.
컴파일 윈폼이란
Microsoft의 공식 WinForms는 Windows 전용 기술입니다.
ComfileTech.WinForms는 Mono의 WinForms 구현을 기반으로, 최신 .NET 환경에서 WinForms 응용 프로그램을 개발하고 실행할 수 있도록 구성한 라이브러리입니다.
ComfileTech.WinForms를 사용하면 최신 버전의 Visual Studio, .NET 및 C#을 이용하여 WinForms 응용 프로그램을 개발하고, Windows와 Linux 환경 모두에 배포할 수 있습니다. 또한 COMFILE Technology의 Windows Panel PC와 Linux Panel PC에서도 동일한 응용 프로그램을 실행할 수 있습니다.
ComfileTech.WinForms를 사용하면 Mono Runtime 전체를 별도로 설치할 필요가 없습니다.
Mono와의 차이점
Mono는 단순히 WinForms만 구현한 프로젝트가 아닙니다. .NET Framework 클래스 라이브러리, .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 환경에서는 동작 방식의 차이로 인해 추가 수정이 필요할 수 있습니다.
