Открыть сервис

XPages Extension Library

XPages Extension Library — это набор расширений для платформы XPages, входящей в состав IBM Lotus Domino (впоследствии — HCL Domino), предназначенный для ускорения и упрощения разработки веб-приложений. Библиотека предоставляет дополнительные компоненты, контролы, темы и утилиты, которые не входят в стандартную поставку XPages, позволяя разработчикам создавать более функциональные и визуально насыщенные интерфейсы с меньшими затратами времени и кода. XPages Extension Library (далее — XPages ExtLib) является открытым проектом, распространяемым по лицензии Apache 2.0.

История

XPages были представлены компанией IBM в 2008 году как часть платформы Lotus Domino 8.5. Эта технология позволяла создавать веб-приложения на основе серверной платформы Domino, используя JavaServer Faces (JSF) в качестве основы. Однако стандартный набор компонентов XPages был ограничен, что затрудняло разработку сложных пользовательских интерфейсов.

В ответ на потребности сообщества разработчиков IBM в 2010 году выпустила первый набор расширений — XPages Extension Library. Первоначально он был доступен только для участников программы IBM Lotus Early Access Program, но вскоре стал общедоступным. Основной целью библиотеки было предоставление готовых, настраиваемых компонентов (таких как диаграммы, вкладки, диалоговые окна, панели навигации) и интеграция с популярными фреймворками, например, Dojo Toolkit.

В 2012 году IBM передала исходный код XPages ExtLib сообществу OpenNTF, некоммерческой организации, поддерживающей проекты с открытым исходным кодом для платформы Domino. С этого момента библиотека развивается силами сообщества, хотя IBM (а затем HCL Technologies, выкупившая продукты Lotus в 2018 году) продолжает вносить вклад в её развитие. Последние стабильные версии, включающие поддержку новых функций Domino, выпускаются под эгидой HCL.

Состав и структура

XPages Extension Library представляет собой набор Java-архивов (JAR-файлов), которые подключаются к проекту XPages. Библиотека включает несколько основных модулей, каждый из которых отвечает за определённый набор функций.

Основные модули

  • Core (ядро): содержит базовые классы, утилиты и общие компоненты, такие как улучшенные обработчики событий, конвертеры и валидаторы.
  • Controls (контролы): самый обширный модуль, включающий десятки готовых пользовательских компонентов. Среди них:
  • Навигация: ApplicationLayout, BreadCrumbs, Menu, TabBar.
  • Ввод данных: DatePicker, ComboBox с автодополнением, FileUpload, RichTextEditor.
  • Отображение данных: DataView, Pager, Grid, DataTable с расширенными возможностями сортировки и фильтрации.
  • Диалоги и окна: Dialog, Popup, MessageBox, Tooltip.
  • Визуализация: Chart (линейные, столбчатые, круговые диаграммы), Gauge, TreeMap.
  • Dojo Integration: модуль, обеспечивающий глубокую интеграцию с фреймворком Dojo Toolkit. Позволяет использовать виджеты Dojo (например, dijit/form/FilteringSelect, dojox/charting/Chart2D) непосредственно в XPages, управляя ими через серверный код.
  • REST Services: предоставляет набор сервлетов и сервисов для создания RESTful API на платформе Domino. Это позволяет легко обмениваться данными с мобильными приложениями, внешними системами или фронтенд-фреймворками (Angular, React).
  • Themes (темы): включает готовые темы оформления (например, OneUI, Bootstrap) и инструменты для их настройки, что позволяет быстро изменять внешний вид приложения без глубоких знаний CSS.

Структура компонента

Каждый компонент в XPages ExtLib, как правило, состоит из трёх частей:

  1. Java-класс (Renderer): серверная логика, отвечающая за генерацию HTML-кода и обработку событий.
  2. Файл свойств (Properties): определяет атрибуты компонента, доступные для настройки в дизайнере XPages.
  3. Ресурсы (Resources): связанные CSS-стили, JavaScript-файлы и изображения, которые автоматически подключаются к странице.

Применение

XPages Extension Library используется для разработки веб-приложений на платформе HCL Domino, преимущественно в корпоративной среде. Основные области применения:

  • Внутренние порталы и интранет-системы: создание интерфейсов для управления задачами, документами, проектами и коммуникациями.
  • Системы документооборота: построение сложных форм с множеством полей, вкладок и таблиц, а также маршрутизация документов.
  • Клиентские приложения для работы с базами данных Domino: замена устаревших клиентов Lotus Notes на современные веб-интерфейсы.
  • Интеграционные решения: использование REST-сервисов для обмена данными между Domino и другими системами (ERP, CRM, 1С).

Библиотека особенно ценна в проектах, где требуется быстрое прототипирование и высокая скорость разработки. Готовые компоненты позволяют избежать написания шаблонного кода и сосредоточиться на бизнес-логике.

Преимущества и недостатки

Преимущества

  • Ускорение разработки: готовые компоненты (диаграммы, навигация, диалоги) сокращают время создания интерфейса на 30–50% по сравнению с написанием кода вручную.
  • Улучшенный пользовательский интерфейс: компоненты ExtLib, как правило, более современны и функциональны, чем стандартные контролы XPages, что повышает удобство работы.
  • Интеграция с Dojo: возможность использовать мощные виджеты Dojo (например, для построения сложных графиков) без глубоких знаний JavaScript.
  • Открытый исходный код: сообщество OpenNTF активно развивает библиотеку, исправляет ошибки и добавляет новые функции.
  • Совместимость: библиотека поддерживается на всех основных версиях Domino (начиная с 8.5.3) и HCL Domino (до актуальных версий).

Недостатки

  • Сложность отладки: из-за многослойной архитектуры (JSF, Dojo, серверный код) ошибки в компонентах ExtLib могут быть трудны для диагностики.
  • Зависимость от версий: некоторые компоненты могут работать некорректно при обновлении Domino или браузера, если не обновлять саму библиотеку.
  • Ограниченная документация: официальная документация от IBM/HCL не всегда полна, а сообщественная документация разрознена.
  • Производительность: использование большого количества компонентов ExtLib может замедлить загрузку страницы из-за обилия подключаемых ресурсов (CSS, JS).
  • Устаревание: с развитием современных фронтенд-фреймворков (React, Vue.js) и уходом от серверного рендеринга, XPages ExtLib воспринимается многими как устаревшая технология.

Версии и совместимость

Библиотека распространяется в виде нескольких версий, каждая из которых привязана к определённой версии Domino:

Версия XPages ExtLibВерсия DominoПримечания
14.0.xHCL Domino 14Последняя стабильная версия, включает поддержку новых функций Domino 14.
1.0.x – 1.3.xIBM Domino 8.5.3 – 9.0.1Базовые версии, активно использовались в 2010–2015 годах.
2.0.x – 2.2.xIBM Domino 9.0.1 – 10.0.xВерсии с улучшенной поддержкой Dojo и новыми компонентами.
3.0.x – 4.0.xHCL Domino 11 – 12Переход на HCL, добавлена поддержка Bootstrap 4.

Сообщество и поддержка

Основным центром разработки и распространения XPages Extension Library является сайт OpenNTF (openntf.org). Там можно скачать последние версии библиотеки, получить доступ к исходному коду, а также найти форумы и документацию, созданные сообществом. HCL Technologies также предоставляет официальную поддержку для клиентов, имеющих действующие контракты на обслуживание.

Источники

  1. OpenNTF. XPages Extension Library Project Page.
  2. IBM Redbooks. XPages Extension Library: A Developer’s Guide. IBM Corporation, 2011.
  3. HCL Domino Documentation. XPages Extension Library.
  4. NotesIn9. Видеоуроки по XPages Extension Library (серия подкастов).
  5. Форум сообщества OpenNTF. Обсуждения и решения проблем.
  6. Книга: "XPages Portable Command Guide" by Martin Donnelly, Mark Wallace, Tony McGuckin. IBM Press, 2012.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →