69

HTML / CSSから何かを学んだ場合、宣言型言語(XMLなど)は、次の理由でユーザーインターフェイスを適切に記述できます。

  1. コードを効果的にテンプレート化できるコードプリプロセッサを簡単に構築できます。
  2. コードは明確に定義された適切に構造化された(理想的には)形式であるため、解析が容易です。
  3. XMLベースのソースファイルを効果的に解析またはクロールするテクノロジーはすでに存在します。
  4. UIのスクリプトコードは、はるかに単純で理解しやすくなります。
  5. 設計者が自分でインターフェイスを設計できるほど単純です。
  6. プログラマーはUIの作成に夢中になっているので、デザイナーにとっては十分に簡単にする必要があります。

最近、WPFアプリケーション(つまり、XAML)の要点を調べましたが、HTMLで使用される宣言型言語スタイルに驚くほど馴染みがあるように見えます。

デスクトップUI開発の現在の状態は、大部分が細分化されています。そうでない場合、グラフィカルユーザーインターフェイスデザイン(つまり、GTK、XUL、Qt、Winforms、WPFなど)のドメインでの重複作業はそれほど多くありません。

Pythonだけで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(ムーンライト)

  • 編集者:MonoDevelop
  • OSプラットフォーム:Linuxおよびその他のUnix/X11ベースのOSのみ
  • GUIプラットフォーム:GTK +
  • 言語:.NET

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

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

4

3 に答える 3

14

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 }
               }
           }
       }
   }
}
于 2010-06-11T15:02:39.487 に答える
7
  • Webは、デスクトップアプリからほとんどの蒸気をそのまま奪っています。

    大きな理由は、今、みんながウェブに集中しているからだと思います。HTML5は、Webでできることの飛躍的な進歩となるでしょう。高速なJavaScriptインタープリターと対応するブラウザーにより、デスクトッププログラムの必要性は時間とともに減少し始めます。これはGoogleが賭けている馬であり、Appleも同様です。

  • 何か良いものを作成すると、OSごとに根本​​的に異なる実装になるため、基本ツールキット自体はあまり移植性がありません。

    あなたがそれについて考えるならば、Webはクロスプラットフォームの方法でこの種のインフラストラクチャを開発するために私たちが持っている唯一の本当に一般的な基盤です。WPFは、アーキテクチャの観点から、WinForms/ストレートWinAPIコードとは大きく異なります。そのようなものを各OSに適合させるには、うまく機能するものを作ることを祈る場合、OSごとに非常に異なる配管が必要になります。(Webアプリが非常に高速であるというわけではありませんが、良くなっています)。

  • ルックアンドフィールは常にいくらか問題になります。

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

于 2010-06-03T02:20:10.367 に答える
3

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

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

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

于 2010-06-03T03:46:38.380 に答える