programing

Linux에서 WPF가 이미 가능합니까?

easyjava 2023. 6. 3. 08:51
반응형

Linux에서 WPF가 이미 가능합니까?

저는 .NET으로 프로그래밍하는 것을 좋아합니다. 특히 C# 3.0, .NET 3.5, WPF를 좋아합니다.하지만 제가 특히 좋아하는 것은 Mono.NET을 사용하면 플랫폼에 구애받지 않는다는 것입니다.

지금 저는 모노의 올리브 프로젝트에 대해 들었습니다.베타 같은 것을 찾을 수 없었습니다.

벌써 작동하나요?여러분 중에 그것에 대해 어떤 경험을 해본 사람이 있나요?

편집: 저는 달빛에 대해 알고 있습니다.하지만 나는 독립형 WPF 애플리케이션을 원합니다.그리고 달빛으로 인해 리눅스의 WPF가 실현되기를 바랍니다.

완전한 WPF의 하위 집합인 Silverlight API를 대상으로 하는 Moonlight로 작업하는 것이 더 좋을 것입니다.

편집: 물론 Silverlight가 데스크톱용으로 "의도된" 것은 아니지만, 애플리케이션에 Silverlight 엔진을 내장할 수 없는 이유는 없습니다.Mac NY Times Reader와 같이 이전에 수행된 적이 있습니다.

추가 편집: 독립 실행형 실버라이트 애플리케이션에 있는 미겔의 게시물을 참조하십시오.

업데이트: 사람들이 계속해서 이것에 투표하기 때문에, 저는 그것이 오래되었다는 것을 지적하고 싶습니다.모노는 몇 년 전에 MS에 인수되었고, 오픈 소스에 대한 그들의 자세가 바뀌었기 때문에, 이 게시물은 쓸모없다고 생각합니다.(WPF 프레임워크 자체만큼이나 구식입니다.)

Mono는 Winforms 및 WPF와 같은 Microsoft API와 관련하여 약간 불편한 위치에 있습니다.의 하위 집합.Net 기술은 ECMA 표준이지만, 이러한 API의 무료 구현은 아마도 더 불안정한 법적 근거에 있을 것입니다.이것이 Novell과 Microsoft 사이의 계약에서 Novell 고객에게 좋은 큰 요인이 되었다고 생각합니다.그러나 Novell의 고객이 아닌 Mono를 사용하는 사람들은 보호되지 않습니다.이러한 이유로 F/OSS 커뮤니티의 많은 사람들이 Mono의 기술적 장점에도 불구하고 Mono를 바라봅니다.

이러한 이유로 Gtk#는 진정으로 무료이기 때문에 항상 선호됩니다.많은 사람들이 어쨌든 Winforms보다 우수하다고 생각합니다.WPF에 관한 한, Novell에게는 거의 확실히 낮은 우선순위가 될 것입니다.그들은 결국 그것을 실행할지도 모르지만, 저는 Moonlight가 가까운 미래에 당신이 얻을 수 있는 가장 가까운 것이 될 것이라고 기대합니다.


Microsoft는 이 문서를 게시한 이후 ECMA 334 335 표준을 구현하는 모든 사용자에게 계약을 확대했습니다.

모노 웹 사이트에서

현재 Mono 프로젝트는 프로젝트의 일부로 Windows Presentation Foundation API를 구현할 계획이 없습니다.

달빛은 WPF의 서브셋을 기반으로 한 브라우저 기반 플래시 라이크 기술인 실버라이트를 구현한 것입니다.

제 생각에 WPF를 시행하지 않기로 한 선택은 가장 큰 실수입니다.WPF가 빠르게 새로운 .net 사용자 인터페이스의 기본 선택이 되고 있습니다.자세한 내용은 이 블로그를 참조하십시오.

크로스 플랫폼 WPF 및 Silverlight 구현을 목표로 하는 Silverform SDK라는 라이브러리가 있습니다.

라이브러리는 관리 코드로 구현되며 현재 OpenTK 및 Unity3D와 함께 렌더 백엔드로 작동합니다.바인딩, 레이아웃, 주 컨트롤 및 기본 기능과 같은 주요 기능이 이미 구현되었습니다(여기에서 Unity 웹 플레이어 데모 참조).처음에는 Unity3d 렌더에 중점을 두었지만, 독립 실행형 Mono 애플리케이션에 대한 지원은 향후 별도의 빌드로 추가될 예정입니다.

고지 사항:저는 도서관의 개발자 중 한 명입니다.

링크의 알려진 버그(Ubuntu에 .NET을 설치하는 데 필요한 단계도 포함)를 선택하거나 이것을 선택하면 현재로서는 WPF의 일부 버전이 Wine에서 작동하는 것을 발견할 수 있습니다.저는 지금까지 어떤 확실한 테스트도 하지 않았지만, WPF "Hello world"를 실행해 볼 가치가 있습니다.

업데이트 2:

에 최에실습다니했행근▁latest다▁have를 실행했습니다.IlSpy의 근에에서.Wine위해서Ubuntu의 16.04. 32비트 버전 dotnet45그리고.corefonts을 통해 winetricksWindows 7(윈도우 7)과 호환됩니다.

이번에는 충돌이 없고 모든 것이 정상적으로 작동합니다.글꼴이 정말 좋아 보입니다.

IlSpy되며 WPF를 사용하는 됩니다.loves programming with .NET필수 도구인 디컴파일러입니다.

저는 최신 휴대용 샤프 개발(WPF를 사용한 빌드)을 추가 없이 다운로드했습니다.시작했어요.WPF 프로젝트를 만들지 못했습니다.WinForms를 만들었습니다.몇 개의 cs 파일을 열고 몇 개의 결함을 증명한 후, 타이핑을 시도했지만 실패했습니다.

우분투에서 와인을 통한 IlSpy

갱신하다

단계를 따라 Ubuntu 14.4에서 실행되는 최신 ILSpy.exe를 얻었습니다.

여기에 이미지 설명 입력

다음 주의 사항:

  1. wine에서 dotnet40이 64 구성에서 지원되지 않는다고 명시함, 32비트로 변경됨

  2. 글꼴이 못생겼지만 읽을 수 있습니다.

  3. 기본적인 기능은 정상적으로 작동합니다 - 디컴파일된 코드를 볼 수 있습니다 - 일부 개발에는 충분하지만, 보기 -> 검색 및 보기 -> 옵션 -> 디스플레이 충돌.

결론:

Linux에서 WPF를 사용할 수 있습니다.하지만 문제를 해결할 방법이 필요합니다.

올리브페이지에서:

Olive는 지원되지 않으므로 실험 소프트웨어로 간주해야 하며, 변화하는 API를 구현하기 때문에 API의 안정성에 대한 어떠한 보장도 없습니다.

누가 진짜 프로젝트에 사용했을지 의심스럽습니다.

예, Noesis를 사용하여 가능합니다.GUI 실시간 다중 플랫폼 XAML 구현이미 리눅스에서 이 기술을 사용하여 출시된 몇 가지 게임이 있습니다. 예를 들어 VoidExpanse

공개:저는 이 제품의 개발자 중 한 명입니다.

저는 몇 주 전에 미겔 데카자(독점자)를 인터뷰하는 팟캐스트를 들었습니다. 그래서 그것은 아마도 2008년 12월 중순이었을 것이고, 그는 그들이 아직 WPF 지원이 전혀 없다고 말했습니다.

이론적으로, WPF의 제거된 버전은 Linux에서 실행하기 위해 WinPR 또는 LibWine에 대해 컴파일될 수 있습니다.

현재 이러한 설정이 없으므로 다른 사용자가 설정해야 합니다.바라건대 이것이 곧 바뀔 수도 있습니다.

와인 환경에 대항하거나 전체 와인 환경에서 실행하는 것은 심각한 과잉 살상이며 소수의 추가 프로그램을 작동시킬 가치가 없는 너무 많은 팽창을 초래할 것이라고 생각합니다.

언급URL : https://stackoverflow.com/questions/421764/is-wpf-on-linux-already-possible

반응형