WPF/XAMLのオープンソースの代替品は何ですか? [閉まっている
-
23-10-2019 - |
質問
HTML/CSSから何かを学んだ場合、宣言言語(XMLなど)がユーザーインターフェイスを説明するのに適した仕事をしているということです。
- コードを効果的にテンプレートできるコード前処理店を簡単に構築するのは簡単です。
- コードは、明確に定義された適切に構造化された(理想的には)形式であるため、簡単に解析できます。
- XMLベースのソースファイルを効果的に解析またはクロールするテクノロジーはすでに存在しています。
- UISスクリプトコードは、はるかにシンプルで理解しやすくなります。
- デザイナーがインターフェイスを自分で設計できるほど簡単です。
- プログラマーはUIの作成を吸うので、デザイナーにとって十分に簡単にする必要があります。
私は最近、WPFアプリケーション(つまりXAML)の肉を見てみましたが、HTMLで使用されている宣言的な言語スタイルに驚くほど馴染みがあります。
デスクトップUI開発の現在の状態は大部分が分数化されています。そうしないと、グラフィカルユーザーインターフェイス設計のドメイン(つまり、GTK、XUL、QT、WINFORMS、WPFなど)でそれほど重複した努力はありません。
これらの特性を表すいくつかのオープンソースGUIは何ですか:
- 標準化
- プラットフォーム独立
- 宣言マークアップ言語
- 言語不可知論者
WPF、またはより具体的には、XAMLは正しい方向へのかなりの可能性の高いステップのようです。
アップデート:
情報をありがとう、それを続けてください。コメントと回答から私が収集したオプションは次のとおりです。
- 編集者: Glade Interface Designer
- OSプラットフォーム:すべて
- GUIプラットフォーム: GTK+
- 言語:C(libglade)、c ++、c#(glade#)、python、ada、pike、perl、php、eiffel、ruby
- 編集者: wxglade, Xrced, wxdesigner, ダイアログブロック (非フリー)
- OSプラットフォーム:すべて
- GUIプラットフォーム: wxwidgets
- 言語:C ++、Python(wxpython)、perl(wxperl)、.net(wx.net)
無料ではなく、クロスプラットフォームではない、または言語固有のXMLベースの形式
- エディター:基本的なテキストエディター
- OSプラットフォーム:XULをサポートするブラウザを実行しているOS
- GUIプラットフォーム:Gecko Engine?
- 言語:c ++、python、ruby as plugin言語は基本言語ではありません
注:Xulがこのリストで言及するに値するかどうかはわかりません。なぜなら、それはデスクトップGUI言語ではなく、DeskTop言語でMake-Webapps-on-the-Desktop言語であるからです。さらに、ブラウザを実行する必要があります。すなわち、それは「デスクトップのためのDHTML」です。
- 編集者: 日食 経由 ウィンドウビルダー, NetBeans 5.0 (非フリー)経由 スイングGUIビルダー別名マティス
- OSプラットフォーム:すべて
- GUIプラットフォーム:Java
- 言語:Javaのみ
注:XAMLは、純粋なオープンソース形式ではありません。なぜなら、Microsoftはいつでも条件を変更する権利を含む使用条件を制御しているからです。月明かりは、WindowsやMacで法的に走らせることはできません。さらに、法的措置から免除されている唯一のプラットフォームはNovellです。 これを参照してください 私が意味することの完全な説明について。 XAMLは、C#、Managed C ++、CLRのようなECMA標準でもありません。
更新:「WPFに代わるオープンソースの代替品はありますか?元の質問が間違っていて吸い込まれたため、質問が変更されました。この質問の方向は、新しい入力と一致する方向に変化しました。それが変わる前に応答した人々。
解決
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 }
}
}
}
}
}
他のヒント
Webは、ほとんどの蒸気をデスクトップアプリからそのまま奪っています。
大きな理由は、誰もが今ウェブに集中しているからだと思います。 HTML5は、Webができることの量子飛躍になるでしょう。高速のJavaScript通訳者と有能なブラウザでは、デスクトッププログラムの必要性が時間の経過とともに衰え始めます。それはGoogleが賭けている馬であり、Appleもはるかに低い程度でもあります。
良いものを作成すると、各OSに対して根本的に異なる実装があるため、ベースツールキット自体はあまり携帯可能ではありません。
考えてみると、この種のインフラストラクチャをクロスプラットフォームに開発する唯一の本当に一般的な基質です。 WPFは、アーキテクチャの観点とWinforms/Straight Winapiコードとは非常に異なります。各OSにそのようなものを適応させるには、うまく機能するものを作る祈りがあれば、各OSに対して非常に異なる配管が非常に大きくなります。 (Webアプリが非常に高速であるわけではありませんが、気になりますが、彼らは良くなっています)。
ルックアンドフィールは常にやや問題になるでしょう。
誰の外観と感触を使用しますか? UIをOS Chromeに適応させて、「ネイティブ」に見えるようにしようとしていますか、それとも何年も前にスイングしたようなことをして、そこにあるすべてとは異なるように見えるアプリを開発しますか? (うーん、それは列車の難破船でした...)そして、各OSのルックアンドフィールにUIを適応させることを選択した場合、あらゆる種類の測定と設計の問題があるかもしれません。
NovellにはSilverlightのオープンソースの実装があり、Moonlightと呼ばれるXAMLを非常にサポートしています。