programing

WPF/XAML의 오픈 소스 대체 방법에는 어떤 것이 있습니까?

stoneblock 2023. 4. 14. 21:06

WPF/XAML의 오픈 소스 대체 방법에는 어떤 것이 있습니까?

HTML/CSS에서 배운 것이 있다면 선언형 언어(XML 등)는 다음과 같은 이유로 사용자 인터페이스를 잘 기술할 수 있습니다.

  1. 코드를 효과적으로 템플릿할 수 있는 코드 프리프로세서를 쉽게 만들 수 있습니다.
  2. 코드는 잘 정의된 (이상적으로) 구조화 되어 있기 때문에 해석하기 쉽습니다.
  3. XML 기반 소스 파일을 효과적으로 구문 분석하거나 탐색하는 기술은 이미 존재합니다.
  4. UI 스크립트 코드는 훨씬 단순해지고 이해하기 쉬워집니다.
  5. 설계자가 직접 인터페이스를 설계할 수 있을 정도로 간단합니다.
  6. 프로그래머는 UI를 만드는 데 서툴기 때문에 디자이너가 쉽게 만들 수 있어야 합니다.

최근 WPF 어플리케이션의 장점을 살펴보았습니다(즉,XAML)과 HTML에서 사용되는 선언적 언어 스타일에 놀라울 정도로 친숙해 보입니다.

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

Python에만 45개의 GUI 플랫폼이 있습니다.

다음 특성을 나타내는 오픈소스 GUI에는 어떤 것이 있습니까?

  • 표준화된
  • 플랫폼에 의존하지 않는
  • 선언 마크업 언어
  • 언어 불가지론자

WPF, 더 구체적으로 말하면 XAML은 올바른 방향으로의 스텝이라고 생각됩니다.

업데이트:

알려줘서 고마워요 계속 연락해요다음은 제가 댓글과 답변을 통해 수집한 옵션입니다.

글레이드 XML

  • 에디터: Glade Interface Designer
  • OS 플랫폼:모든.
  • GUI 플랫폼: GTK+
  • 언어: C(libglade), C++, C#(Glade#), Python, Ada, Pike, Perl, PHP, Eiffel, Ruby

XRC(XML 리소스)

자유롭지 않은 XML 기반 형식, 크로스 플랫폼 또는 특정 언어

XUL

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

참고: XUL은 데스크톱 GUI 언어가 아니라 데스크톱에서 실행되는 Make-Webapps 언어이기 때문에 이 목록에 언급할 가치가 있는지 잘 모르겠습니다.게다가 실행하려면 브라우저가 필요합니다.IE, '데스크탑용 DHTML'입니다.

쿡스윙

XAML(달빛)

  • 에디터: Mono Develope
  • OS 플랫폼: Linux 및 기타 Unix/X11 기반 OS만
  • GUI 플랫폼: GTK+
  • 언어:그물

주의: XAML은 Microsoft가 언제든지 용어를 변경할 수 있는 권한을 포함하여 사용 조건을 통제하기 때문에 순수 오픈 소스 형식이 아닙니다.Windows나 Mac에서는 달빛을 법적으로 실행할 수 없습니다.또한 법적 조치가 면제되는 유일한 플랫폼은 Novell입니다.자세한 내용은 여기를 참조하십시오.XAML은 C#, Managed C++, CLR 등의 ECMA 표준도 아닙니다.

업데이트: 질문이 "WPF에 대한 오픈 소스 대안이 있습니까?"에서 변경되었습니다.원래의 질문이 잘못되어, 문제가 악화되었기 때문입니다.이 질문의 방향이 새 입력에 맞춰 일치하도록 변경되었습니다.바뀌기 전에 응답해주신 분들께 사과드립니다.

QT는 JSON을 제외하면 XAML과 매우 흡사한 QML을 개발하고 있다.현재 버전에 대해 작성된 미리 보기로 제공되며 다음 버전의 스냅샷으로 제공됩니다.

다음은 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 }
               }
           }
       }
   }
}
  • 웹은 데스크톱 앱의 대부분의 힘을 그대로 빼앗아 가고 있습니다.

    제 생각에 가장 큰 이유는 모두가 지금 웹에 집중하고 있기 때문인 것 같아요.HTML5는 웹이 할 수 있는 일에 있어 비약적인 발전이 될 것입니다.빠른 JavaScript 인터프리터와 지원 브라우저로 데스크톱 프로그램의 필요성은 시간이 지남에 따라 감소하기 시작할 것입니다.그것은 구글이 걸고 있는 말이며, 애플은 더더욱 그렇다.

  • 좋은 것을 작성하면, OS 마다 실장이 근본적으로 다르기 때문에, 베이스 툴킷 자체는 그다지 휴대할 수 없습니다.

    생각해보면 웹은 이런 종류의 인프라스트럭처를 크로스플랫폼 방식으로 개발할 수 있는 유일한 공통 기반입니다.WPF는 아키텍처의 관점에서 봤을 때WinForms/스트레이트 WinAPI 코드.이와 같은 것을 각 OS에 적응시키려면 OS마다 매우 다른 배관을 필요로 합니다.(웹 어플리케이션이 매우 빠른 것은 아니지만 점점 향상되고 있습니다.)

  • 외모와 느낌은 항상 어느 정도 문제가 될 것이다.

    당신은 누구의 룩과 필을 사용합니까?UI를 OS Chrome에 맞게 "원어민"으로 바꾸려고 하십니까?아니면 수년 전 Swing과 같은 작업을 하여 모든 것과 확연히 다른 앱을 개발합니까?(어머, 그건 완전히 엉망진창이었습니다.) 그리고 UI를 각 OS의 모양과 느낌에 맞게 조정하기로 선택한다면 다양한 측정 및 설계상의 문제가 있을 수 있습니다.

Novell은 Silverlight를 오픈 소스 구현하여 XAML을 크게 지원하고 있습니다.이것을 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