많은 댓글을 읽으면서 전체 전제가 잘못되었음을 깨달음. 블로그 게시물을 "요구 사항이 비현실적일 때 Windows용 GUI 앱 작성은 고통스러움"으로 이름을 바꾸는 것이 좋겠음
.NET Framework 3.5를 사용하여 WinForms를 타겟으로 하는 것이 좋겠음. 최신 Windows 버전에는 모두 설치되어 있음
이 글은 여러 옵션에 대한 좋은 개요를 제공하지만, 저자의 특정 요구 사항이 많은 옵션을 배제하게 만듦
완전히 사용자 정의된 GUI 스타일링을 원하면서 자체 렌더링 함수를 작성하지 않으려는 요구 사항은 쉬운 사용자 정의 GUI 라이브러리를 선택하는 작업이 됨
자체 포함 실행 파일과 40MB 이하의 크기 제한 요구 사항도 많은 옵션을 배제함. Qt는 이러한 요구 사항을 충족할 수 있었지만 오픈 소스 라이선스가 목표와 맞지 않았고 라이선스를 구매하기 싫어했음
종속성을 허용하거나 더 큰 다운로드 크기를 허용하거나 내장된 Windows GUI 컨트롤을 사용하는 경우 상황이 매우 다름
외부 종속성 없이 가벼운 완전 사용자 정의 GUI를 작성하고 허용적인 라이선스를 원한다면 ImGui가 답이 될 것이라고 예상했음
WinForms/WPF 아이디어에 큰 결함이 없음을 지적하지만, 두 개의 스택을 요구하는 것 외에는 언급하지 않음. 네이티브 코드를 원하고 C#이 보이지 않기를 원하지만 이유를 설명하지 않음. 역공학에 대한 두려움일 수 있음. UI 코드는 비밀을 포함하는 경우가 드뭄
단일 exe 배포는 때때로 편리하지만, 이 시나리오에서는 번거로울 수 있음. Velopack(스퀴럴)과 같은 패키저를 사용하면 단일 exe로 배포할 수 있으며 자동 업데이트 기능도 추가됨. 설치 시 디스크에 두 개 이상의 파일이 있는 것은 좋은 타협임
Windows는 다른 모든 플랫폼을 제외하고 데스크탑 앱을 개발하기에 최악의 플랫폼임
LGPL 라이선스 소프트웨어 라이브러리에 대한 상업적 라이선스 비용을 지불해야 한다고 비난하는 개발자에 대해 매우 낮은 의견을 가짐. 그들은 자신의 작업에 대해 보상을 받기를 기대하며, 폐쇄 소스 소프트웨어를 만들어 이를 보장함. 그러나 UI 라이브러리를 만드는 실제 어려운 부분을 해결한 개발자는 세상에 코드를 자유롭게 선물하는 성인이 되어야 함
Sciter와 "안티앨리어싱" 문제에 대해... 저자는 애플리케이션에서 고해상도 DPI 지원을 활성화하지 않았음
Visual Studio에서 활성화하거나 적절한 매니페스트를 포함하여 해결할 수 있음
"Hello C++" 튜토리얼에서 설명됨
더 정확하게:
"포터블" (자동 압축 해제 없이 단일 exe)
상업적이고 컴파일된 객체 파일을 재배포하지 않으려 함 (이는 "포터블" 요구 사항과 함께 LGPL을 허용하지 않음)
다크 모드
Windows GUI 앱은 고통스러움. 이 요구 사항 중 하나를 제거하면 좋은 옵션이 많음
대부분의 "포터블" 애플리케이션은 win32를 사용함. 보통 포터블은 작고 단순한 애플리케이션으로 기능이 다크 모드나 다른 스타일링 능력보다 중요함
다른 사람들의 오픈 소스에 많은 것을 요구하는 사람으로서, 저자는 자신의 솔루션을 오픈 소스로 공개하려 하지 않음
Hacker News 의견