новости
статьи
.технологии

применение технологии XUL для RAD

Материал содержит обзор языка XUL и среды разработки для него - XULRunner/libxul. Дается краткое описание языка, его особенностей и преимуществ для RAD (Rapid Application Development, быстрая разработка приложений). В конце доклада рассматриваются текущие продукты сообщества Mozilla и других организаций, использующие в своей работе XULRunner.

почему XUL?

XUL или XML User Interface Language - это, как видно из его названия, язык, позволяющий создавать достаточно богатые по функциональности пользовательские интерфейсы, которые можно запускать ("отрисовывать") как стандартные приложения или загружать из Интернет. При этом приложения на XUL можно легко настраивать, менять в них текст или графические объекты, переводить на различные языки и т.д. Для программирования на XUL не требуется специальных навыков, любой веб-разработчик, знакомый с Dynamic HTML, (DHTML), сможет быстро выучить XUL и начать создавать свои приложения.

Отличительные особенности XUL:

- мощный язык разметки с поддержкой пользовательских элементов (widgets) (всех, которые поддерживаются платформой mozilla);

- в отличие от DHTML, с помощью которого можно создавать веб-страницы, с помощью XUL можно создавать переносимые приложения, содержащие окна, кнопки и ссылки;

- основан на существующих стандартах. XUL - это язык XML, основанный на стандарте W3C XML 1.0. Приложения, написанные на XUL, используют дополнительные стандарты W3C - HTML 4.0; Cascading Style Sheets (CSS) 1 и 2; Document Object Model (DOM) Levels 1 2; JavaScript 1.5, включающий ECMA-262 Edition 3 (ECMAscript); XML 1.0;

- межплатформенная переносимость. XUL может быть использован на любой платформе, поддерживаемой XULRunner;

- отделенная логика для отображения и формирования интерфейса;

- легкость локализации, модификации или настройки.

Таким образом, XUL является легким в освоении, гибким и переносимым языком для RAD.

XULRunner

С точки зрения браузера или сервера, "понимающего" XUL, отдельное приложение на этом языке ничем не отличается от разметки HTML/JS: это тот же код, который сначала надо скачать с сервера (либо передать его отдельному серверу на обработку), потом преобразовать (отрендерить) и показать пользователю.

Можно запускать пользовательские приложения, расположенные в сети, а не на локальном диске клиента, и XULRunner – интерпретатор XUL-приложений. Эти приложения распространяются в виде обычного .jar архива с XUL-контентом и сопутствующими библиотеками (например, для поддержки ssl, LDAP или sqlite). Существует множество расширений для стандартных продуктов mozilla.org. Они добавляют необходимую для пользователей функциональность. Крайняя форма таких расширений это глобальные большие приложения, которые можно выделить в самостоятельные продукты. К сожалению, пользователь вынужден ставить себе браузер (или другой продукт) для запуска таких приложений, что затрудняет как распространение ПО на базе XUL из-за большого размера сопутствующего ПО, так и разработку из-за отсутствия отдельного приложения-интерпретатора, на котором можно производить процесс отладки.

XULRunner и XRE (XUL Runtime Evironment) - попытка избавиться от этой зависимости. XUL-приложения могут запускаться обычным образом: через программу-загрузчик (XULRunner) или с помощью встраиваемых библиотек для рендеринга (XRE или libxul). Кроме того, применение XULRunner позволяет устанавливать, обновлять и удалять приложения таким же способом, как и обычные программы mozilla.org (Firefox, Thunderbird и др.).

libxul

libxul является основным элементом в концепции развития Mozilla 2.0. Эта библиотека предоставляет стабильный (или, как называют его разработчики, "замороженный") API для XUL-приложений и встроенных приложений на базе Gecko.

На сегодняшний день обычная сборка mozilla-based приложения предоставляет много различных разделяемых библиотек, которые являются как частью самостоятельных компонентов, так и отдельными библиотеками с интерфейсами для различных сторонних библиотек или протоколов (например LDAP). при этом все они являются частью Gecko (то есть движка для рендеринга). libxul призвана заменить такое многообразие на одну статическую библиотеку, которая будет предоставлять Gecko и куда будут входить все его составные компоненты (поддержка сетевых служб, DOM, рендеринг и т.д). Это позволит использовать прогрессивные технологии mozilla не только в продуктах mozilla.org, но и в любой сторонней разработке, делая ее переносимой между различными платформами, снабжая удобным и легким GUI и поддержкой сетевых служб.

продукты на libxul/XULRunner

Еще год назад нельзя было сказать, что есть рабочие примеры применения XULRunner, но с выходом первого стабильного предварительного релиза (stable developer preview) список приложений на базе XULRunner заметно расширился. Рассмотрим основных представителей:

Chatzilla. IRC-клиент на базе кода mozilla. Использует XUL для отрисовки GUI. Проект одним из первых перешел на XULRunner.

Firefox. Браузер на базе кода mozilla. Использует XUL для отрисовки GUI. Имеется тестовая сборка, использующая XULRunner. Полный переход планируется к Firefox 3.0.

Thunderbird. Почтовый клиент на базе кода mozilla. Использует XUL для отрисовки GUI. В планах разработки - переход на XULRunner к версии 3.0.

Mozilla Composer. По словам основного архитектора Mozilla Composer Daniel Glazman, следующая версия Mozilla Composer будет использовать XULRunner и код Nvu, визуального (WYSIWYG) редактора HTML.

Songbird. Сетевой мультимедийный плеер. Использует код Firefox и XUL для отрисовки интерфейса и поддержки сетевых служб. Проект находится в активной разработке. Имеются данные, что следующие версии будут использовать XULRunner.

Mozilla Sunbird. Календарь-планировщик. Проект находится в активной разработке. Имеются данные, что следующие версии будут использовать XULRunner.



Константин Лепихов, Алексей Гладков, Russian Mozilla Team, mozilla@mozilla.ru
обсудить статью
© сетевые решения
.
.