Program Club

WPF / XAML의 오픈 소스 대안은 무엇입니까?

proclub 2020. 11. 15. 11:55
반응형

WPF / XAML의 오픈 소스 대안은 무엇입니까?


HTML / CSS에서 배운 것이 있다면 선언적 언어 (예 : XML)가 다음과 같은 이유로 사용자 인터페이스를 잘 설명합니다.

  1. 코드를 효과적으로 템플릿화할 수있는 코드 전처리기를 구축하는 것은 쉽습니다.
  2. 코드는 잘 정의 된 잘 구조화 된 (이상적으로) 형식이므로 파싱하기 쉽습니다.
  3. XML 기반 소스 파일을 효과적으로 구문 분석하거나 크롤링하는 기술이 이미 존재합니다.
  4. UI 스크립트 코드는 훨씬 간단하고 이해하기 쉬워집니다.
  5. 디자이너가 직접 인터페이스를 디자인 할 수있을만큼 간단합니다.
  6. 프로그래머는 UI를 만드는 것을 싫어하므로 디자이너가 쉽게 만들 수 있어야합니다.

최근에 WPF 애플리케이션 (즉, XAML)의 핵심을 살펴 보았는데 HTML에서 사용되는 선언적 언어 스타일에 놀랍도록 친숙해 보입니다.

데스크톱 UI 개발의 현재 상태는 대부분 부분 화되어 있습니다. 그렇지 않으면 그래픽 사용자 인터페이스 디자인 (IE. GTK, XUL, Qt, Winforms, WPF 등) 영역에서 중복 된 노력이 많지 않을 것입니다.

파이썬만을위한 45 개의 GUI 플랫폼이 있습니다.

이러한 특성을 나타내는 일부 오픈 소스 GUI는 무엇입니까?

  • 표준화
  • 플랫폼 독립적
  • 선언적 마크 업 언어
  • 언어 불가지론

WPF 또는 더 구체적으로 XAML은 올바른 방향으로 나아가는 단계처럼 보입니다.

최신 정보:

정보를 제공 해주셔서 감사합니다. 댓글과 답변에서 모은 옵션은 다음과 같습니다.

GladeXML

  • 편집자 : Glade Interface Designer
  • OS 플랫폼 : 모두
  • GUI 플랫폼 : GTK +
  • 언어 : C (libglade), C ++, C # (Glade #), Python, Ada, Pike, Perl, PHP, Eiffel, Ruby

XRC (XML 리소스)

자유롭지 않거나 플랫폼 간 또는 특정 언어가 아닌 XML 기반 형식

XUL

  • 편집기 : 모든 기본 텍스트 편집기
  • OS 플랫폼 : XUL을 지원하는 브라우저를 실행하는 모든 OS
  • GUI 플랫폼 : Gecko Engine?
  • 언어 : C ++, Python, Ruby (기본 언어가 아닌 플러그인 언어)

참고 : XUL이 데스크톱 GUI 언어가 아니라 make-webapps-run-on-the-desktop 언어가 더 많기 때문에이 목록에 언급 할 가치가 있는지 확실하지 않습니다. 또한 실행하려면 브라우저가 필요합니다. IE에서는 '데스크톱 용 DHTML'입니다.

CookSwing

XAML (Moonlight)

  • 편집자 : MonoDevelop
  • OS 플랫폼 : Linux 및 기타 Unix / X11 기반 OS 전용
  • GUI 플랫폼 : GTK +
  • 언어 : .NET

참고 : Microsoft는 언제든지 조건을 변경할 수있는 권한을 포함하여 사용 조건을 제어하므로 XAML은 순수한 오픈 소스 형식이 아닙니다. Moonlight는 합법적으로 Windows 또는 Mac에서 실행되도록 만들 수 없습니다. 또한 법적 조치에서 면제되는 유일한 플랫폼은 Novell입니다. 내가 의미하는 바에 대한 자세한 설명은 이것을 참조하십시오 . XAML은 C #, Managed C ++ 및 CLR과 같은 ECMA 표준도 아닙니다.

업데이트 : 원래 질문이 틀 렸기 때문에 "WPF에 대한 오픈 소스 대안이 있습니까?"에서 질문이 변경되었습니다.이 질문의 방향은 새로운 입력과 일치하도록 방향이 변경되었습니다. 변경되기 전에 응답 한 사람들.


Qt is developing QML, which looks a lot like XAML except in JSON. It's available as a preview built against the current version, and is available in snapshots of the next version.

Here's a little snippet from http://doc.qt.nokia.com/4.7-snapshot/declarative-ui-components-progressbar.html

import Qt 4.7
import "content"

Rectangle {
   id: main

    width: 600; height: 405
    color: "#edecec"

    Flickable {
       anchors.fill: parent
       contentHeight: column.height + 20

       Column {
           id: column
           x: 10; y: 10
           spacing: 10

           Repeater {
               model: 25

               ProgressBar {
                 property int r: Math.floor(Math.random() * 5000 + 1000)
                 width: main.width - 20

                 NumberAnimation on value { duration: r; from: 0; to: 100; loops: Animation.Infinite }
                 ColorAnimation on color { duration: r; from: "lightsteelblue"; to: "thistle"; loops: Animation.Infinite }
                 ColorAnimation on secondColor { duration: r; from: "steelblue"; to: "#CD96CD"; loops: Animation.Infinite }
               }
           }
       }
   }
}

  • The Web is taking most of the steam away from desktop apps as it is.

    I think that the big reason is that everyone's so focused on the web right now. HTML5 is going to be a quantum leap forward in what the web can do. With fast JavaScript interpreters and capable browsers, the need for a desktop programs will begin to wane over time. That's the horse that Google is betting on, and to a much lesser extent, Apple as well.

  • Creating something good would have radically different implementations for each OS, so the base toolkit itself wouldn't be very portable.

    If you think about it, the Web is the only really common substrate we have upon which to develop this sort of infrastructure in a cross-platform manner. WPF is incredibly different from an architectural perspective vs. WinForms/straight WinAPI code. Adapting something like it to each OS would take a great deal of very different plumbing for each OS if you were to have a prayer of making something that performed well. (Not that web apps are very fast, mind you, but they're getting better).

  • Look and feel is always going to be somewhat of an issue.

    Whose look and feel do you use? Do you try to adapt the UI to the OS chrome so it looks "native", or do you do something like Swing did years ago and develop apps that look distinctively different from everything out there? (Ugh, that was a train wreck...) And if you choose to adapt the UI to each OS's look and feel, you may have all sorts of measurement and design issues.


Novell has an open source implementation of Silverlight, with great support for XAML, called Moonlight:

http://en.wikipedia.org/wiki/Moonlight_(runtime)

http://www.mono-project.com/Moonlight

참고URL : https://stackoverflow.com/questions/2962874/what-are-the-open-source-alternatives-to-wpf-xaml

반응형