Должен ли я выучить XUL? - PullRequest
8 голосов
/ 20 июня 2010

Я знаком с веб-программированием, как на стороне клиента, так и на стороне сервера, и я хотел бы немного расширить свои знания, чтобы иметь возможность писать некоторые настольные программы.

Моя проблема в том, что я не очень знаком с настольным способом управления виджетами. Насколько я понимаю, в типичных настольных программах виджеты ведут свою жизнь, посылая сигналы друг другу и реагируя на сигналы обратными вызовами. Таким образом, каждый виджет - это объект с множеством методов. Это добавляет дальнейшее усложнение в отношении того, что я знаю сейчас, и я не уверен, что хочу изучать это в данный момент.

В Интернете вы типично описываете элементы на странице с помощью языка разметки, обычно это какая-то версия HTML, а когда происходит событие, вы изменяете элементы с помощью Javascript. Я пытаюсь понять, есть ли способ использовать веб-парадигму в настольной программе. Я хотел бы иметь возможность описывать виджеты с помощью языка разметки (они будут статическими) и изменять их в зависимости от событий. Если я правильно понимаю, приложения, основанные на XUL, работают таким образом.

Проблема в том, что документация по XUL, которую я могу найти, кажется немного устаревшей. Является ли изучение XUL хорошей идеей? Могу ли я ожидать, что буду использовать его через несколько лет? Или это уже устаревшая технология?

Если XUL не очень хорошая идея, каковы альтернативы? Для самых простых приложений, где виджеты статичны или только слегка изменены, есть несколько простых инструментов , но как насчет более сложной программы?

EDIT : я должен упомянуть, что я в основном использую Ubuntu, поэтому мне нужен инструмент, независимый от Linux или OS.

Ответы [ 5 ]

8 голосов
/ 20 июня 2010

XUL предоставьте, по сути, то, что вы просили. Он похож на HTML в том, что вы используете язык на основе тегов для описания интерфейса, и вы можете использовать JavaScript для своего кодирования. Он, безусловно, используется для разработки десктопов, включая такие продукты, как Firefox, Thunderbird, Songbird и Komodo Edit / IDE.

Работая на рабочем столе, вы получите больше свободы, чем веб-приложение, чтение и запись файлов, а через XPCOM даже запуск кода, не поддерживающего JavaScript.

В Mozilla Developer Center имеется огромное количество довольно современной документации. Что вы конкретно ищете, так это как создать приложение xulrunner - это среда, которая позволит вам создавать настольные приложения с использованием XUL.

Конечно, можно создавать хорошие настольные приложения, используя XUL. Недостатком является то, что не существует большого сообщества разработчиков (за исключением Mozilla, Songbird и разработчиков расширений), и в конечном итоге не оказывается большой поддержки людям, приходящим в сообщество для создания приложений. Есть список рассылки, и есть канал IRC. Проблема в том, что при использовании xulrunner будут возникать причуды, а поддержка при их работе будет ограничена. Я думаю, что это своего рода проблема «курицы и яйца» - разнообразное, большое сообщество разработчиков предоставит больше поддержки - и большая поддержка вырастет сообщество.

Я использовал XUL для разработки продукта в течение последних двух лет, и я до сих пор спорю, выберу ли я тот же путь снова или нет.

Я не думаю, что у нас достаточно информации, чтобы сказать вам: «Должен ли [вы] изучать XUL» - но если вам нужен высокий уровень поддержки со стороны большого сообщества, тогда вам, вероятно, стоит взглянуть на какую-то другую структуру, которая другие упоминали. Если вы можете легко пробираться через ваш тип и работать с ним, это может быть хорошим ресурсом, и ваш веб-фон может помочь вам взяться за дело. Если у вас есть какой-либо интерес к Расширениям Firefox, эти навыки будут переданы напрямую.

Не имея сильного веб-фона, когда я пытаюсь переключиться на работу с приложениями HTML, я скучаю по тому, как легко выложить интерфейс в XUL. Если вы хотите немного повозиться, взгляните на XUL Explorer и XUL Периодическая таблица .

1 голос
/ 20 июня 2010

Возможно, вы захотите проверить технологию Adobe AIR. Он позволяет описывать пользовательский интерфейс с использованием языка разметки MXML (аналог HTML, с более строгим синтаксисом) и определять функции с помощью ActionScript, языка сценариев, похожего на JavaScript. Приложения AIR не зависят от платформы, так как работают на платформе AIR, которая абстрагирует вас от конкретных особенностей ОС. По той же причине они могут быть относительно медленнее, чем нативные приложения, но это может не быть проблемой для небольших приложений. Это зависит от того, что для вас важнее - скорость бега или скорость разработки.

Основным недостатком AIR является то, что пользователям необходимо устанавливать на своем компьютере платформу AIR для установки и запуска приложений AIR, так же как вам нужно установить Java, прежде чем вы сможете запустить любое приложение, написанное на Java. В настоящее время большинство платформ поставляются с Java из коробки, но AIR еще не настолько распространен.

А насчет XUL, кто-нибудь, пожалуйста, исправьте меня, если я ошибаюсь, но, очевидно, это язык разметки для описания пользовательского интерфейса в приложениях Mozilla, таких как Firefox, Thunderbird и т. Д., И используемых для разработки расширений для их приложений. Я не смог получить никаких ссылок на использование XUL для реальных настольных приложений.

1 голос
/ 20 июня 2010

Если вы против изучения чего-то вроде C #, вы можете писать приложения AIR с помощью Flex. Он имеет язык разметки, но также использует некоторое реальное программирование с помощью ActionScript. Для меня это было хорошее введение в написание настольных приложений.

0 голосов
/ 20 июня 2010

Я в той же обуви, что и вы. пока я смотрел на

и упустил XUL ... хмм ... 1 преимущество XUL в том, что я могу использовать его для аддонов Firefox :) открывает новые возможности.

Я считаю, что как для титана, так и для воздуха документации не хватает, поэтому мне сложнее начать. Я действительно начал на Silverlight, но я сделал с WPF. для эфира я нахожу, что его веб-набор изменен, чтобы отключить некоторые функции css3 , которые я хотел бы использовать как @font-face и тени :( разочарован

есть привлекательные преимущества, если я использую "родной" язык программирования для настольных компьютеров

  • WPF / C # имеет прекрасную интеграцию с Windows 7 (например, списки переходов, миниатюры панели задач и т. Д.), Что может повысить производительность пользователей
0 голосов
/ 20 июня 2010

Посмотрите на WPF, который использует XAML, который, вероятно, будет для вас не слишком высокой кривой обучения.

Если вы используете Ubuntu, вы можете взглянуть на MonoFramework, который является C # в системах Linux.Существует форма XAML, называемая Moonlight, которая может быть полезна для вас.По крайней мере, вариант, который вы можете изучить!

...