web-dev-qa-db-ja.com

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 alone には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エンジン?
  • 言語: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

注:XAMLは純粋なオープンソース形式ではありません。Microsoftは、使用条件をいつでも変更する権利を含めて使用条件を管理しているためです。 Moonlightを合法的にWindowsまたはMacで実行することはできません。さらに、法的措置を免除される唯一のプラットフォームはノベルです。 これを参照 私の言いたいことの完全な説明について。 XAMLは、C#、Managed C++、CLRなどのECMA標準でもありません。

更新:質問は「元の質問が間違っていたため、WPFに代わるオープンソースはありますか?」から変更されました。この質問の方向は、新しい入力に合わせます。変更前に応答した人に謝ります。

66
Evan Plaice

QtはQMLを開発していますが、これはJSONを除いてXAMLによく似ています。現在のバージョンに対して作成されたプレビューとして利用でき、次のバージョンのスナップショットで利用できます。

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 }
               }
           }
       }
   }
}
14
Thomas
  • Webは、Steamのほとんどをそのままデスクトップアプリから取り去っています。

    大きな理由は、今誰もがウェブに集中しているからだと思います。 HTML5は、Webでできることの飛躍的な進歩となるでしょう。高速のJavaScriptインタープリターと対応ブラウザーを使用すると、デスクトッププログラムの必要性は徐々に低下し始めます。それはGoogleが賭けている馬であり、はるかに少ない程度であるAppleも。

  • 良いものを作成すると、OSごとに根本​​的に異なる実装が行われるため、ベースツールキット自体の移植性は低くなります。

    考えてみると、クロスプラットフォームでこの種のインフラストラクチャを開発するための基盤は、Webだけです。 WPFは、アーキテクチャの観点とWinForms/straight WinAPIコードとでは大きく異なります。そのような何かを各OSに適応させるには、うまく機能する何かを作ることを祈るなら、OSごとに非常に異なる配管が必要になります。 (Webアプリは非常に高速ではありませんが、気になりますが、良くなっています)。

  • ルックアンドフィールは常に多少の問題になります。

    誰のルックアンドフィールを使用しますか? UIをOS chromeに合わせて「ネイティブ」に見えるようにしようとしていますか、それともSwingが数年前に行ったようなことをして、そこにあるものとはまったく異なる外観のアプリを開発しますか?(うーん、それは電車の難破だった...)そして、各OSのルックアンドフィールにUIを適合させることを選択した場合、あらゆる種類の測定および設計の問題が発生する可能性があります。

7
Dave Markle

ノベルには、Silverlightのオープンソース実装があり、XAMLを強力にサポートしており、Moonlightと呼ばれています。

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

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

3
code4life