Что альтернативы С открытым исходным кодом к WPF/XAML? [закрытый]

Если мы узнали о чем-нибудь из HTML/CSS, случается так, что, декларативные языки (как XML) делают хорошее задание описания Пользовательских интерфейсов потому что:

  1. Легко создать препроцессоры кода, которые могут обработать код по шаблону эффективно.
  2. Код находится в четко определенном, хорошо структурированном (идеально) формат, таким образом, легко проанализировать.
  3. Технология, чтобы эффективно проанализировать или проверить XML базировалась, исходный файл уже существует.
  4. UIs заданный сценарием код становится намного более простым и легким для понимания.
  5. Это достаточно простой, что разработчики могут разработать интерфейс сами.
  6. Программисты сосут при создании UIs, таким образом, это должно быть сделано достаточно легким для разработчиков.

Я недавно смотрел на суть приложения WPF (т.е. XAML), и это выглядит удивительно знакомым декларативному стилю языка, используемому в HTML.

Текущее состояние настольной разработки UI в основном разделено, иначе не было бы такого дублированного усилия в домене дизайна графического интерфейса пользователя (IE. GTK, XUL, QT, Winforms, WPF, и т.д.).

Существует 45 платформ GUI для одного только Python

Что является некоторым Открытым исходным кодом GUI, которые представляют эти характеристики:

  • стандартизированный
  • независимый от платформы
  • декларативный язык разметки
  • агностик языка

WPF, или более конкретно XAML походит на довольно вероятный шаг в правильном направлении.

Обновление:

Большое спасибо за информацию, сохраните это прибытием'. Вот, опции, которые я собрал из комментариев и ответов.

GladeXML

XRC (ресурс XML)

XML основывал форматы, которые являются или не свободными, не межплатформенными, или конкретный язык

XUL

  • Редактор: Любой основной текстовый редактор
  • Платформы ОС: Любая ОС, выполняющая браузер, который поддерживает XUL
  • Платформа GUI: механизм геккона?
  • Языки: C++, Python, Ruby как сменные языки не основывают языки

Примечание: Я не уверен, заслуживает ли XUL упоминания в этом списке, потому что это - меньше настольного языка GUI и больше make-webapps-run-on-the-desktop языка. Плюс, это требует, чтобы браузер работал. IE, это - 'DHTML для рабочего стола'.

CookSwing

XAML (Лунный свет)

  • Редактор: MonoDevelop
  • Платформы ОС: Linux и другой Unix/X11 основывали Ose только
  • Платформы GUI: GTK +
  • Языки:.NET

Примечание: XAML не является чистым форматом С открытым исходным кодом, потому что Microsoft управляет своими условиями использования включая право изменить условия в любое время. Лунный свет не может по закону быть сделан работать на Windows или Mac. Кроме того, единственной платформой, которая освобождена от судебного иска, является Novell. Посмотрите это для полного описания того, что я имею в виду. XAML является также не стандартом ECMA как C#, Управляемый С++ и CLR.

Обновление: вопрос был изменен от, "Там альтернатива С открытым исходным кодом WPF? потому что исходный вопрос был неправильным, и он высосал. Направление этого вопроса изменило направление для совпадения для выравнивания с новым входом. Мои извинения людям, которые ответили, прежде чем это изменилось.

66
задан Evan Plaice 15 June 2010 в 00:23
поделиться

3 ответа

Qt разрабатывает QML, который очень похож на XAML, за исключением JSON. Он доступен как предварительный просмотр, созданный для текущей версии, и доступен в виде снимков следующей версии.

Вот небольшой фрагмент из 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
ответ дан 24 November 2019 в 15:08
поделиться
  • Интернет и так отбирает большую часть пара от настольных приложений.

    Я думаю, что главная причина в том, что сейчас все так сосредоточены на сети. HTML5 станет качественным скачком вперед в возможностях Интернета. С быстрыми интерпретаторами JavaScript и способными браузерами потребность в настольных программах со временем начнет уменьшаться. Это лошадь, на которую делает ставку Google и, в гораздо меньшей степени, Apple.

  • Создание чего-то хорошего потребовало бы радикально разных реализаций для каждой ОС, поэтому сам базовый инструментарий не был бы очень портативным.

    Если задуматься, Интернет - единственный действительно общий субстрат, на котором мы можем разрабатывать такую ​​инфраструктуру кроссплатформенным образом. WPF невероятно отличается с архитектурной точки зрения от WinForms / прямого кода WinAPI. Адаптация чего-то подобного к каждой ОС потребовала бы очень разного оборудования для каждой ОС, если бы вы молились о том, чтобы сделать что-то, что работает хорошо. (Не то чтобы веб-приложения были очень быстрыми, заметьте, но они становятся лучше).

  • Внешний вид всегда будет проблемой.

    Чей внешний вид вы используете? Пытаетесь ли вы адаптировать пользовательский интерфейс к Chrome OS, чтобы он выглядел «родным», или вы делаете что-то вроде того, что сделал Swing много лет назад, и разрабатываете приложения, которые заметно отличаются от всего остального? (Ух, это было крушение поезда ...) И если вы решите адаптировать пользовательский интерфейс к внешнему виду каждой ОС, у вас могут возникнуть всевозможные проблемы с измерениями и дизайном.

7
ответ дан 24 November 2019 в 15:08
поделиться

У Novell есть реализация Silverlight с открытым исходным кодом, с большой поддержкой XAML, под названием Moonlight:

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

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

3
ответ дан 24 November 2019 в 15:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: