Dojo и Zimbra

Два инструмента, обеспечивающие поддержку Ajax в Eclipse Ajax Toolkit Framework


Содержание

Уровень сложности: средний
Источник: IBM developerWorks

Тим Макинтайр,, инженер-программист и архитектор по кластерам HPC, консультант

Главной целью участия IBM в выпуске новой Open Ajax Initiative является увеличение доступности мощной техники веб-программирования с помощью Eclipse. Для подготовки разработчиков к новому набору инструментов, эта статья представляет вашему вниманию два существующих инструмента среды исполнения - Dojo и Zimbra - которые будет поддерживать Система Инструментария Ajax (ATF) в Eclipse.

Все, кто поддерживает инициативу по Открытому Асинхронному JavaScript и XML (Ajax), укрепляют сообщество разработчиков созданием открытой платформы, в которой смогут совместно работать все разработчики. Организаторы этой инициативы, среди которых BEA Systems, Borland Software, the Dojo Foundation, the Eclipse Foundation, Google, IBM, Laszlo Systems, Mozilla, Novell, Openwave Systems, Oracle, Red Hat, Yahoo!, Zend Technologies и Zimbra, понимают огромную важность представления новых инструментов постоянно растущему сообществу разработчиков Ajax. Эта инициатива предоставляет большое количество инструментов людям, которые создают ответные пользовательские интерфейсы (UI) в новых и существующих средах. Унифицированный пользовательский интерфейс и более мощные системы отладки в Eclipse дают сообществу среду кодирования корпоративного класса. ATF Eclipse предлагает лёгкий доступ к набору инструментов от Dojo и Zimbra.

Сторонники этой инициативы считают, что главной аргументом в пользу Open Ajax может стать тот факт, что Web всё ещё активно развивается и не исчерпал всех возможностей. Open Ajax Initiative стремится оказать положительное влияние на всю Сеть в целом.

Внимание: См. Ресурсы чтобы прочесть пресс-релиз по Open Ajax Initiative.

Eclipse ATF

Организация по Eclipse (Eclipse Foundation) была маяком для разработки ПО с открытым исходным кодом и сред разработки приложений. Eclipse - это основанная на Java™ платформа по разработке ПО с открытым исходным кодом. Обладая большими возможностями расширения, она может разворачиваться на любой популярной платформе. Для неё имеется широкий выбор подключаемых модулей и инструментов.

Будучи частью Open Ajax Initiative, Eclipse Foundation создаёт ATF, которая обеспечит расширяемую среду разработки для сред выполнения, например, Dojo и Zimbra. ATF работает как центральный компонент, объединяющий инструменты, который является частью Open Ajax Initiative. Более ранняя версия ATF доступна на IBM alphaWorks (смотрите Ресурсы).

Основываясь на Проекте Сетевых Инструментов Eclipse, ATF предлагает инструменты для построения интегрированных сред разработки (IDE), включая такие функциональные возможности, как проверку синтаксиса при работе, внедряет отладчик JavaScript, браузер Модели Объекта Документа (DOM) и браузер Mozilla Web. ATF - это то, что придаёт традиционно бедным функциональными возможностями инструментам с открытым исходным кодом многие черты корпоративной среды разработки, в которой с успехом работают многие разработчики. Эта консультация основывается на Dojo и Zimbra, так как они являются двумя самыми мощными и проверенными доступными инструментами Ajax. На Рисунке 1 показаны компоненты инициативы и размещение ATF.


Компоненты Open Ajax Initiative

Dojo

Прежде чем работать с инструментами, использующимися в Open Ajax Initiative, вы должны ознакомиться с набором инструментов, которые поддерживает ATF - Dojo и Zimbra.

Dojo - общий проект, разработанный для объединения усилий сообществ JavaScript и Dynamic Hypertext Markup Language (DHTML) в одном направлении, путём создания стандартной библиотеки JavaScript. Сообщество осознало, что без взаимодействия далеко не уйдешь, поэтому три отдельных предшествующих набора инструментов были объединены для создания Dojo Foundation, которая владеет кодом и сохраняет его. Dojo имеет несколько вариативных пакетов, включая комплект Ajax; I/O комплект; и комплект «Kitchen Sink», которое включает полный набор инструментов.

Запустить Dojo также легко, как и скачать одно из этих пяти изданий:

  • Ajax - С помощью издания Ajax вы сможете создать приложение с асинхронным I/O (XmlHttp), создать сложные визуальные эффекты и использовать аспектно-ориентированную событийную систему.
  • I/O (XmlHttp) - Комплект I/O создан с помощью dojo.io.bind, поэтому вы можете использовать XmlHttp уровень для асинхронного I/O.
  • Event + I/O - Этот комплект включает аспектно-ориентированную событийную систему Dojo и слой XmlHttp.
  • Widgets - Оно включает HTML и возможности шаблонов по Cascading Style Sheet (CSS), предлагает чёткое разделение стиля, содержания и логики.
  • «Kitchen Sink» - Включает в себя все библиотеки Dojo.

Установка Dojo

Выберите тот комплект Dojo, который вам подходит, загрузите его и разархивируйте пакет. Переместите следующие файлы в ваш корневой каталог Web (файл helloworld.html добавляется для примера):

  • dojo.js
  • iframe_history.html
  • src (directory)
  • helloworld.html

Добавьте одну строку к .html-файлам, в которой указан путь к вашим Dojo-файлам:


<script type="text/javascript" src="path/to/dojo/dojo.js"></script>

Теперь вы можете загружать библиотеки Dojo с помощью JavaScript. (Смотрите Ресурсы для получения дополнительной информации).

Простой пример Dojo

Теперь давайте рассмотрим простой пример - печать «Hello World!» в процессе отладки каждый раз, когда вы нажимаете кнопку. Мы добавим helloworld.html в этот пример. Исходный кусок кода, показанный в Листинге 1, устанавливает путь для dojo.js и включает режим отладки, таким образом, вы можете протестировать ваш вывод.

Листинг 1. Простой пример - печать «Hello World!»
                
<html>
  <head>
    <script type="text/javascript">
      djConfig = { isDebug: true };
    <script>

    <script type="text/javascript" src="./dojo.js"></script>

Используйте кнопку Button2 с «events» для вызова функции helloPressed:


Листинг 2. Используйте Button2 с «events» для вызова функции helloPressed
                
<!-- DOJO EXECUTION -->
<script type="text/javascript">
  dojo.require("dojo.widget.Button2");
  dojo.require("dojo.event.*");

Эта функция helloPressed просто вызывает dojo.debug для печати сообщения «Hello World!»:


function helloPressed()
{
  dojo.debug('Hello World!');
}

Здесь вам дана функция init, которая соотносит helloButton с окном элемента Dojo. Вторая строка показывает, что функция helloPressed должна быть вызвана, когда вы нажимаете Press Me.


function init()
{
  var helloButton = dojo.widget.byId('helloButton');
  dojo.event.connect(helloButton, 'onClick', 'helloPressed');
}

Следующая строка запускает функцию init на начальной странице загрузки:


dojo.addOnLoad(init);

Наконец, HTML содержит реальную кнопку, которая дана в type и Id для соотнесения его с данным выше JavaScript.

Листинг 3. Соотнесение ID с данным выше JavaScript
                
    </script>
  </head>

  <body>
    <button dojoType="Button2" widgetId="helloButton">Press Me</button>

  </body>
</html>

На Рисунке 2 показан вывод вашего Dojo-приложения «Hello World!» после нажатия на Press Me.


Вывод Dojo-приложения Hello World

Подробный пример HelloWorld можно скачать с Dojo wiki (см. Ресурсы).

Dojo легко соединяет маленькие фрагменты Ajax-кода в существующие веб-страницы, предоставляя мощный и увеличивающийся виджет-набор, с помощью которого вы можете легко добавить UI-эффекты, которые вы хотите найти в среде настольной системы. Разработчикам не нужно писать каждую часть UI самостоятельно. Для продвинутых пользователей предлагаются разные возможности, которых нет в других наборах. Например, включены системы упаковки и построения для быстрого развёртывания проектов. Dojo - отличное решение для Ajax-разработчиков на всех уровнях.

Вступление к ATF, которое интегрирует Dojo в Eclipse, покажет, как использовать эти возможности с помощью графической среды кодирования и доступа к дополнительным подключаемым программам. Ранняя демо-версия Dojo в Eclipse дана в разделе Ресурсы.

Набор инструментальных средств Zimbra Ajax Toolkit

Zimbra вносит вклад в Open Ajax Initiative, предоставляя открытый доступ к набору инструментария Zimbra Ajax Toolkit (AjaxTK). Zimbra использовал AjaxTK для продвижения обложки, которую мы считаем веб-страницей, разработав полностью интерактивный Совместный Пакет (Collaboration Suite), в который входит учрежденческая электронная почта, календарь и контакты. Набор инструментария AjaxTK сводит разрыв между веб-основанным приложением и стандартным настольным приложением практически к нулю. На рисунке 3 показано почтовое приложение, включённое в Zimbra's Collaboration Suite, разработанного с использованием набора инструментария AjaxTK.



Почтовое приложение Zimbra

На Рисунке 4 показано календарное приложение, также разработанное с помощью AjaxTK.


Календарное приложение Zimbra

Такой же инструментарий Ajax, использованный для разработки впечатляющего Collaboration Suite внутри компании, может быть применен всеми. Вера в силу открытой и несобственнической среды для развития Ajax дала импульс к открытию мощных инструментов для всех.

AjaxTK построен на следующих основных пакетах:

  • config - Информация о конфигурации и файлы локализации сообщения
  • core - Особые классы базы и информация о среде
  • debug - Классы отладки для запуска приложения отладки
  • dwt - DHTML Виджет-набор инструментария:
    • config - CSS правила, изображения и локализованный текст
    • core - Обработка исключительных (особых) ситуаций и служебные операции пониженного уровня DOM
    • dnd - поддержка функции «перетаскивания»
    • events - Различные события, используемые набором инструментария и построенные на основной поддержке событий AjaxTK
    • graphics - точки, прямоугольники и CSS утилиты
    • widgets - DWT виджет-набор и поддерживающие классы
    • xforms - Предлагает XForms-реализацию для создания комплексных форм
  • events - Классы событий базы и событий приёмника, а также класса событий управляющей программы, ответственной за регистрацию событий и работу диспетчера
  • net - Сетевые связи
  • soap - SOAP обработка документов
  • util - Классы утилит для таких задач, как: работа со строками, cookies-менеджмент, манипуляция с данными, поддержка отсроченного действия и поддержка обратного вызова
  • xml - XML обработка документов

Корпоративные разработчики могут чувствовать себя спокойно, зная, что набор инструментария Zimbra Ajax использовался для создания больших, надёжных приложений, развёрнутых в реальном окружении. Zimbra's Collaboration Suite содержит более 130000 строк JavaScript. AjaxTK ставит себе целью создать для разработчиков полную замену настольной прикладной системы. Если вы хотите улучшить существующие веб-страницы с помощью Ajax, возможно, вам больше подойдёт Dojo. Выбор зависит от того, что вы хотите сделать.

Так как AjaxTK интегрирован с Eclipse, становится проще и быстрее создавать такие компоненты, как деревья, кнопки и списки. Интеграция с Eclipse даёт дополнительные возможности для таблиц, включая мощные инструменты отладки и структуру переноса. Zimbra собирается продолжать развивать Ajax, сотрудничая с членами Open Ajax Initiative и поддерживая открытые, несобственнические технологии.

Продвижение инициативы

Так как использование Ajax помогает Сети выйти на новые уровни интерактивности и взаимодействия, значимость инструментов для развития производственных классов будет продолжать расти. ATF, Dojo, и Zimbra - ключевые компоненты этого развития. Так как веб-аудитория продолжает требовать лучшие, более быстрые и привлекательные веб-приложения, перед разработчиками наборов инструментария и браузеров встаёт задача создания кооперативной среды, которая будет способствовать развитию в UI и межплатформенной сочетаемости. Open Ajax Initiative - основа для этой цели.

Так как Open Ajax Initiative развивается успешно, а ATF входит в нашу жизнь, данная серия будет продолжать развиваться, предоставляя технические детали и консультации по созданию Ajax-приложений в Eclipse.

Выражаем благодарность

Особая благодарность Алексу Расселу (основателю и президенту Dojo Foundation), Россу Даргахи (Соучредителю Zimbra и вице-президенту по конструкторским и технологическим вопросам), и Джону Робу (вице-президенту Zimbra по маркетингу и управлению производством товара) за потраченное время на оценку Open Ajax Initiative для этой статьи.



Ресурсы

Научиться


Получить продукты и технологии


Обсудить

Об авторе

Тим Макинтайр (Tim McIntire) работает консультантом по компьютерным дисциплинам. Его исследование по геофизике и дистанционному зондированию было опубликовано в «Concurrency and Computation» и «IEEE Transactions». Он также является соучредителем Cluster Corp., мирового лидера в групповой интеграции Rocks и консалтинге по высокопроизводительным компьютерам. Ранее он возглавлял компьютерные исследования в Лаборатории Анализа Цифрового Изображения Океанографического института (Scripps Institution of Oceanography's Digital Image Analysis Lab), и его работа над спонсируемым НАСА проектом окружения параллельной обработки изображений (PIPE) была отражена в статье по групповому программному обеспечению Rocks в журнале по компьютерным наукам EnVision.

К содержанию



Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.