2009-11-06 3 views
2

필자는 크로스 플랫폼 데스크톱 개발 (Linux 및 GUI가 아닌 Windows 및 MacOSX)에서 수년 간의 경험을 쌓았습니다. 보통 나는 Cocoa로 MacOSX에서 GUI를 만들고 Windows에서는 구식 Windows API를 사용합니다. Qt를 사용하지 않은 이유는 Qt를 시작했을 때 여전히 GPL 라이센스가 적용 되었기 때문입니다..NET GUI를 사용하는 크로스 플랫폼 C++ 응용 프로그램?

본래의 경험이 매우 중요하므로 Mac 용 Cocoa를 계속 사용하겠습니다. 그러나 Windows의 경우 GUI 코드에 .NET Framework를 사용할 것을 고려하고 있습니다. .NET 코드를 기존의 크로스 플랫폼 C++ 코드베이스와 통합 한 경험이 없으며 C++/CLI 또는 C#으로 갈 수있는 것으로 보입니다.

이전에 그런 접근을 한 사람이 있습니까? 잘 됐니? .NET 프레임 워크를 설치 프로그램과 함께 제공해야합니까? 추가 된 .NET 코드가 최종 실행 파일에 많은 가중치를 추가합니까?

답변

1

예. .NET Framework를 설치 프로그램과 함께 번들링하거나 사용자에게 설치 프로그램이 필요함을 알리고 이미 설치되어 있지 않으면 링크를 제공해야합니다. 내 경험에 따르면 .NET 코드를 추가하면 실행 파일에 상당한 가중치가 추가되지만 .NET Framework를 설치하지 않아도 .NET Framework를 설치하는 것이 불편한 것으로 나타났습니다. 설치에 상당한 금액이 필요합니다. 시간.

1

Mono을 사용할 수 있습니다. 매우 유용한 크로스 플랫폼입니다.

Windows의 경우 Visual Studio을 사용하고 Express 버전 (크로스 플랫폼이 아님)을 확인하십시오.

이전에 그런 접근을 한 사람이 있습니까?

그것은 잘 작동 했습니까?

물론!

.NET Framework를 설치 프로그램과 함께 제공해야합니까?

없음

추가 된 .NET 코드는 최종 실행에 많은 무게를 추가하지합니까?

하지 닷넷을 따라 달라집니다 또한 QtGTK+을 확인)

+0

실제로 Mono로 Windows 데스크톱 응용 프로그램을 만들 수 있습니까? 설치 프로그램과 함께 번들을 제공 할 필요가 없다면 Mono가 프로젝트에 정적으로 링크 될 수 있다는 의미입니까? – StackedCrooked

1

나는이를 생각하지만, .NET 프레임 워크는 빨리 당신이 당신의 눈을 깜박 수 있습니다 다음 성장의 원인 포기했다. NET 3.5는 hundert MB 다운로드이며 사용자가 필요합니다.

저는 현재 내 응용 프로그램을 위해 GTK/Delphi/Cocoa 크로스 플랫폼 라이브러리에서 작업하고 있습니다. Delphi VCL을 훨씬 더 사용하기 쉽고 더 쉽게 찾을 수 있기 때문에 Delphi를 DLL로 컴파일하고 일반적인 C/C++ 코드 기반에서이 코드를 사용합니다.

그리고 적어도 ISV의 경우 - 무료 오픈 소스 소프트웨어 시장과의 중요한 차이이기 때문에 GUI의 통합과 품질이 점점 더 중요 해지고 있습니다.

-3

GPL에서 라이센스를 취득한 Qt의 관련성은 무엇입니까? 이것이 귀하의 코드가 GPL에 의거하여 라이센스되어야 함을 의미하지는 않습니다. 우리는 Qt를 사용하여 독점적 인 많은 응용 프로그램을 개발합니다. 그러나 Qt를 수정하고 해당 수정 사항을 사용하여 응용 프로그램을 릴리스하면 수정 사항 (나머지 코드는 제외)을 릴리스해야합니다. 주로 멀티 스레딩을 사용하여 문제를 해결할 수있는 크로스 플랫폼 Qt 애플리케이션을 구축하는 데 성공했습니다.

.NET의 경우 C++/CLI는 기존 C++ 코드베이스와 통합하는 데 가장 힘든 방법 일 것입니다. .NET Framework는 응용 프로그램을 실행하기 위해 설치해야하지만 설치 프로그램과 함께 번들로 제공 될 필요는 없습니다. 따라서 .NET을 이미 갖고있는 사람들은 다시 다운로드 할 필요가 없습니다. 그것은 확실히 실행 파일에 약간의 무게를 추가 할 것이지만 평균적인 데스크탑 PC는 그것을 인식하지 못할 것입니다; 소프트웨어 설계 및 알고리즘 선택이 훨씬 더 큰 효과를 발휘합니다.

+3

GPL 코드로 연결하지 않으면 GPL로 자신의 코드를 라이센스해야합니다. – StackedCrooked

+2

@qid, 다시 * 돌아가서 GPL을 다시 읽어야합니다. – Kevin

+1

그는 LGPL과 GPL을 혼합하는 것이 분명합니다. 하지만 한 가지 예외는 사실입니다. 사내 제품 용 코드 만 사용한다면 제품을 GPL에 맡기지 않아도됩니다. 나는 또한 많이 패치 된 GNU Eiffel 컴파일러를 유지하고 아무것도 공개하지 않았다. – Lothar

관련 문제