2008-09-11 5 views
6

로컬로 실행되고 webservice를 호출하는 GUI 응용 프로그램을 작성할 경우 크로스 플랫폼이되기 위해 .Net으로 할 수 있습니까? 어떤 도구를 권하고 싶습니까?크로스 플랫폼 .Net?

C# 유사성으로 인해 픽업하기가 상대적으로 쉬워서 JVM을 사용할 수 있으므로 Java를 고려했습니다.

답변

9

Mono projectMonoDevelop을 잘 알고 있어야합니다. 이러한 프로젝트의 목적은 Windows, Linux 및 Mac OSX를 비롯한 다양한 플랫폼에서 .NET 코드를 작성하고 실행하는 것입니다.

모노는 .NET을 다시 구현 한 것이므로 항상 Microsoft.NET에 약간 뒤지지 만 .NET 2.0 및 .NET 3.x의 기능을 잘 설명합니다. Mono는 .NET 바이너리를 실행하므로 Mono에서 프로그램 기능을 지원하는 경우 Windows에서 컴파일 한 응용 프로그램 EXE를 가져 와서 다시 컴파일하지 않고 Linux/Mono에서 실행할 수 있습니다.

+0

모노의 UI 개발에 문제가 있습니까? 당신 자신을 굴려야합니까? – Dan

+0

Mono는 Winforms 및 ASP.NET 2.0을 지원하고 3.x 기능을 부분적으로 지원하므로 사용자가 직접 롤백 할 필요가 없습니다. –

+0

Windows에서 컴파일 된 Mono에서 .Net 코드를 실행하는 것과 관련하여 알고있는 유일한주의 사항은 PInvoke (Win32 API를 호출하는 것)입니다. Linux 또는 Mac의 Mono는 당연히 완벽하게 지원하지 않습니다. 이것은 웹 서비스를 호출하는 GUI 응용 프로그램에서는 문제가되지 않습니다. o) – Andrew

2

Mono은 현재 유일한 옵션입니다. these platforms에서 실행됩니다. 그리고 반드시 큰 문제는 아니지만 여전히 문제가있을 것입니다.

+0

모노는 현재 유일한 옵션이 아닙니다. REALsoftware는 REALbasic이라는 제품을 가지고 있습니다.이 제품은 Windows, Mac 및 Linux 용 원시 실행 파일과 동일한 프로젝트를 컴파일 할 수 있습니다. http : // www.realsoftware.com/products/realbasic/ – Andrew

+1

모노는 실제로 유일한 유일한 옵션입니다. REALBasic은 .NET 프레임 워크와 아무런 관련이 없습니다.이 질문은 크로스 플랫폼 .NET 개발에 관한 것입니다. –

+0

수정 해 주셔서 감사합니다. lubos : o) – Andrew

3

크로스 플랫폼 툴킷을 사용하는 것이 좋습니다. 대부분의 경우 당신은 멋진 비주얼 디자이너를 사용할 수 없을 것입니다 (실제로 이것은 어떤 툴킷을 사용 하느냐에 달려 있습니다).하지만 손으로 ​​UI를 작성하는 것은 그리 어렵지 않습니다. HTML 녀석은 항상 그것을하고 그것은 비 MS 세계에서도 꽤 일반적인 관행입니다. .NET 바인딩

  • GTK# (이 툴 킷을 활용 모노 개발을위한 사실상의 표준 MonoDevelop IDE가 내장했다 폼 디자이너)
  • wxNET

    일부 크로스 플랫폼 UI 툴킷 (wxWindows를 기반으로하면 성숙하지만 UI를 손으로 직접 작성해야합니다.)

  • Qyoto (QT를 기반로하면 wxWindows보다 좋을 것입니다. 그러나 Trolltech의 상용 라이센스가 필요할 수도 있습니다. 에 오픈 소스 라이센스를 가질 수 없음)
+0

mono의 내장 Winforms을 사용하지 않는 이유는 무엇입니까? Winforms를 사용하지 않으면 배포가 더욱 복잡해집니다. –

+0

이기 때문에 WinForms 지원은 Mono 개발자에 의해서만 유지되며 웹 사이트에서 볼 수 있듯이 여전히 두 번째 우선 순위입니다. 첫 번째는 GTK #입니다. GTK +, wxWindows 및 QT는 Mono에서 WinForms보다 훨씬 더 크고 헌신적 인 팀을 보유하고 있기 때문에 Mono에서 매우 오래 지속되는 WinForms 지원에 내기를 걸지 않을 것입니다. –

+0

사실, Qt는 거의 정확히 2 년 동안 LGPL에서 라이센스되었습니다. 소프트웨어가 독점적 인 경우 라하더라도 라이센스를 취득해야합니다. 또한 Nokia는 이제 Qt를 실행합니다. –

0

앞서 말했듯이, The Mono Project은 커뮤니티 지원으로 주어진 최상의 선택입니다.

Visual Basic을 사용하는 경우 REALbasic도 기본 실행 파일을 만드는 크로스 컴파일러가 있으므로 가치가 있습니다. 그들은 당신이 할 수있는 평가판을 가지고 있습니다. download too

0

나는 최근에 모노를 사용하여 컴파일하고 실행하면서 리눅스에 약간의 C# GUI 응용 프로그램을 작성했습니다. 나는 "gmcs"컴파일러를 사용하여 최신 C# 및 .Net 기능 (여러 컴파일러가있는 모노 1.9 배송)에 액세스해야한다는 것을 알았습니다.

.exe 파일을 컴파일 할 때 응용 프로그램 뒤에 명령 줄 팝업없이 Windows에서 응용 프로그램을 실행하려면 "-target : winexe"스위치를 추가해야한다는 것을 알았습니다.

Windows에서 특별한 요구없이 네트워크 드라이브에서 실행할 .Net 응용 프로그램을 컴파일하는 방법을 아직 찾지 못했습니다.PC의 인터넷 보안 구성. (이 문제는 .Net 응용 프로그램의 일반적인 문제라고 생각하지만 아직 배우고 있습니다.)

3

조언의 한 부분. 교차 플랫폼 프로그래밍은 크로스 브라우저 프로그래밍과 같으며 지원하려는 모든 플랫폼에서 테스트, 테스트 및 테스트를 수행해야합니다.

-1

솔직히 고객 기반과 기존 기술을 평가할 것입니다. 50/50 분할, 심지어 Windows를 비 Windows로 분할 한 경우에도 Java 또는 다른 크로스 플랫폼 툴킷을 사용하는 것이 좋습니다.

모노는 괜찮은 플랫폼이지만 (this SO question asked about a week ago 참조), 중요한 작업을 수행하는 중이라면 모노 용으로 설계된 툴킷을 사용해야합니다.

http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html

7

또 다른 비교적 새로운을 : 당신은 .NET의 GUI 애플 리케이션은 모노에 어떻게 생겼는지보고 싶어

BTW, 여기에 내가 NUnit과 GUI 모노에서 실행 있어요 때마다 내가 한 게시물입니다 크로스 플랫폼 .NET 개발을위한 옵션은 오픈 소스 Eto.Forms 프레임 워크를 사용하는 것으로 각 플랫폼의 기본 툴킷을 하나의 UI 코드베이스로 지정할 수 있습니다.

Windows의 경우 WinForms 또는 WPF를 사용하고 Linux의 경우 GTK #을 사용하고 OS X의 경우 MonoMac/Cocoa를 사용합니다.

개발중인 모바일 포트 (iOS/Android)도 있습니다.

https://github.com/picoe/Eto