2009-08-04 6 views
8

저는 C#으로 데스크톱 앱을 개발할 생각입니다. Windows가 주요 대상이지만 나중에 MacOS X 및 Linux에서이 응용 프로그램을 실행 해 보겠습니다. 오늘 간단한 방법으로이 작업을 수행 할 수 있습니까? 모노 프로젝트를 알고 있지만 간단하게이 작업을 수행 할 수 있는지는 분명하지 않습니다.WPF로 크로스 플랫폼 앱

또한 WPF와 Silverlight의 관계는 무엇입니까? AFAIK Silverlight는 Flash 또는 Java와 매우 유사한 플러그인 모델을 따릅니다. Silverlight를 사용하여 데스크톱 응용 프로그램을 개발하고 Windows, Linux 및 OS X에 많이 변경하지 않고 배포 할 수 있습니까?

모든 포인터가 크게 감사하겠습니다.

+0

Silverlight는 실제로 WPF와 공통점이 많지 않습니다. WPF는 데스크톱 응용 프로그램을 작성하기위한 프레임 워크입니다. Silverlight는 Flash와 마찬가지로 브라우저 플러그인입니다. Silverlight 응용 프로그램은 Windows 및 Mac OS X에서 기본적으로 실행될 수 있으며 Mono의 Linux에서는 Moonlight 프로젝트를 통해 실행될 수 있습니다. –

+4

"Silverlight에는 실제로 WPF와 공통점이 많지 않습니다."나는 말하지 않습니다 ... 그들은 공통점이 많습니다! XAML 언어, DependencyObject 모델, 대부분의 컨트롤 ... Silverlight에서 사용할 수없는 몇 가지 WPF 기능과 WPF에서 사용할 수없는 몇 가지 Silverlight 기능이 있지만 최신 버전의 두 제품 모두에서 그 차이가 줄어들고 있습니다 –

+0

토마스 말이 맞아. 또한 Microsoft는 WPF/Silverlight 프레임 워크를 수렴하여 시간이지나면서 사실상 완전히 상호 운영 될 수 있도록 명시 적으로 목표로 삼고 있습니다. – Noldorin

답변

7

Mono 프로젝트는 .Net 3 및 WPF를 아직 지원하지 않으며 아마도 그 일이 있기까지는 약간의 시간이 걸렸을 것입니다.

필요에 따라 Silverlight로 충분할 수 있습니다. Silverlight 3.0부터 브라우저 외부에서 Silverlight를 실행할 수 있으며 바탕 화면에 바로 가기를 만들 수도 있습니다.

+2

NB : Moonlight는 현재 Silverlight 1.0 만 안정적으로 지원하며 2.0의 사전 알파 릴리스 만 제공합니다. – supercheetah

+0

그래서 Linux에 Silverlight 3 앱을 배포 할 수 없습니까? –

+1

Mono는 .net 3.x 기능을 지원하지만 WPF는 지원하지 않습니다. – kenny

1

WPF는 Windows 전용의 데스크톱 응용 프로그램을 작성하는 데 사용됩니다. 현재 다른 플랫폼은 지원되지 않습니다. 크로스 플랫폼 지원이 필수적인 경우 브라우저 기반 응용 프로그램을 만들고 Silverlight를 사용할 수 있습니다. Silverlight는 브라우저에서 응용 프로그램을 실행하기 때문에이를 사용하여 "데스크톱"응용 프로그램을 만들 수 없습니다.

+1

Silverlight 3에서는 브라우저 외부에서 실행되는 응용 프로그램을 만들 수 있지만 Silverlight 샌드 박스는 여전히 제한적입니다. –

1

모노는 Silverlight가 크로스 플랫폼 (스택 오버 플로우 Podcast 중 하나에서 언급 한 것처럼)을 실행하는지 확인하기 위해 열심히 노력하고 있습니다. 그래서 그것이 좋은 방법 인 것 같습니다.

2

마지막으로, Mono 프로젝트는 WPF를 구현할 계획이 없지만 다른 .NET 3.5 기능, 특히 LINQ 및 ASP.NET MVC에서 작업하고 있다고 들었습니다. Mono에서 WPF를 구현할 때의 문제점 (API의 크기와 복잡성을 넘어서서)은 Windows에서 렌더링에 DirectX를 사용하므로 OpenGL을 사용해야 할 것입니다. 확실히 사소한 사업이 아닙니다.