Как стать автором
Обновить

Как это было или отчет о первой конференции ExtJS

Время на прочтение6 мин
Количество просмотров1.4K
logo1Как вам наверное известно, недавно состоялась первая конференция, организованная компанией ExtJS LLC, посвященная как новым продуктам (ExtJS 3.0, Ext Core, ExtGWT), так и практическим аспектам работы с фреймворком, проектированием приложений и работу с новыми технологиями (вроде поддержки Adobe AIR). К сожалению, мне не удалось побывать на конференции, но там был один из читателей моего блога, Сергей Козлов, который любезно предложил свою помощь в организации этого небольшого обзора.

Официальное расписание конференции и основные доклады собраны в специальном разделе сайта (можно посмотреть здесь), организаторы обещают в скором времени выложить материалы выступлений.

Сама конференция происходила в довольно живописном месте во Орландо, Флорида (США). Не будем скрывать, что самым основным и ожидаемым на всей конференции было представление новой версии фреймворка ExtJS 3.0, и хотя мы уже кратко описывали нововведения, но сделаем это еще раз, по сути это вольная транскрипция основных моментов из ключевого доклада Аарона Конрана (Aaron Conran).


aaron-conran-talking-about


И так, мы получили:
  • Новый компонент ListView, по сути — легковесная замена полноценным таблицам (Grid). Ключевые особенности:
    • легкость и простота (минимальное количество HTML-кода)
    • Изменение размеров колонок и сортировка данных
    • Возможность использовать шаблоны для рендеринга колонок
    • Описание схемы колонок приближено к Grid-у
    • Ширина колонок может быть относительной (должно помочь в задании размеров, с чем у грида немного сложности)

  • Компонент для рисования графиков Chart, расширение FlashComponent, предназначенного для включения флешевых модулей в JS-код.
    • графики расширяют стандартный BoxComponents
    • данные получают из стандартной системы данных (DataStore)
    • Различные виды графиков (линейные, круговые, столбовые и т.п.)
    • Широкие возможности по кастомизации внешнего вида
    • Графики интегрированы в систему событий.

  • Новый компонент ButtonGroup — отлично имитирует части интерфейса MS Offoce 2007 (Ribbon)
    • колоночная верстка колонок
    • могут рендериться в любой компонент, не только Toolbar

  • Группы табов (GroupTabs) — по сути, расширенный массив TabPanels
  • В редактируемой таблице появился RowEditor, редактор для всей строки сразу в виде всплывающего окна
  • Новая система обработчиков событий mon(), которая позволяет избежать или уменьшить утечки памяти. Многие компоненты ExtJS уже используют новую систему. Для упрощения понимая, вот пример: раньше было this.el.on('click', ...), теперь можно писать так: this.mon(this.el, 'click', ...)
  • Компонент Buttons теперь может принимать любые размеры и совместим с любыми лайаутами.
  • Toolbar автоматически вытесняет не помещающиеся кнопки в дополнительное меню по краю видимой области. То же доступно и в меню.
  • AnchorTip — расширенный компонент подсказок, может содержать любой тип контента внутри.
  • Buffered GridView — теперь можно рендерить только видимые строки (автоматически)
  • Отладочная консоль, примерный аналог Firebug, в основном сфокусирована на специфических моментах ExtJS, вроде показа структуры компонент в указанном объекте и т.п.
  • Новые типы лайаутов (HBox/VBox)
  • Новая система взаимодействия с сервером — Ext.Direct
    • На клиентской части Ajax-запрос отвечает за сбор параметров, отсылку запроса и прием ответа, его декодирование, генерирование событий
    • Серверная сторона для работы с Direct-ом должна реализовать роутинг запросов и API (примеры будут доступны для множества платформ, пока есть для PHP)
    • Провайдеры для доступа к данным: JsonProvider, RemotingProvider, PollingProvider, LongPollingProvider и FlashProvider (самое интересное, я даже начал сам делать подобное, но пока в дистрибутив не входит, так что ожидаем). Последние два провайдера позволяют реализовать технологию server-push (CometD). К сожалению, на прямой вопрос — можно ли FlashProvider использовать в паре с DataStore для обработки данных, сказано, что нет (по видимому, это будет уточнено в релизной версии).

  • Глобальная обработка клавиатурных событий для всего приложения, а также индивидуальная работа с каждым контейнером
  • Изменения в CSS — разделение на две части, визуальную и структурную часть.

Другие доклады были, конечно же, не менее интересными. Например, для разработчиков были своеобразные мастер-классы, где детально разбирали «по косточкам» примеры и создание собственных компонент.

new-row-editor-demo-by-aaro


Что интересно, сравнительно небольшой интерес вызвала сессия, посвященная Ext GWT. Видимо, на конференции было мало разработчиков, использующих этот продукт. В связи с этим напрашиваются некоторые выводы на счет возможного отказа от этого проекта вообще либо вновь выделение его в самостоятельный проект вне ExtJS LLC, что коррелирует с заявлениями менеджмента, что они стараются быть независимыми от серверной части и сконцентрироваться хотят только на клиентских технологиях.

Был задан вопрос публике, кто на чем пишет серверную часть. Около 50% — Java, около 30% — PHP и .NET, остальное разделено между меньшинствами — Ruby, Python, Perl, etc. Это уже интереснее — так как ExtGWT это все же Java-мир. Впрочем, посмотрим как будут развиваться события, пока же выпустили новую версию ExtGWT.

В рамках сессии Industrial Panels представитель разных компаний делились опытом практического применения фреймворка в рамках своих проектов, а все желающие могли мучить выступающих вопросами. Было интересно услышать о проблеме браузера IE, при этом один из участников решил вопрос кардинально. Просто отказались от поддержки браузера IE вообще, решив, что будет дешевле отправить своего человека по клиентам для установки у них у всех Firefox. Прагматичный и свежий подход, надо отметить (мы эту проблему решили чуточку иначе). Кстати, это одна из презентаций, уже выложенная онлайн (здесь).

what-marketo-glenlipka-di


Джек Слокум (Jack Slocum, Chief Software Architect and Founder) объявил о том, что в недалеком будущем будет запущен Marktplace, по аналогии с AppStore, на котором разработчики смогут торговать компонентами собственной разработки. Хотя я бы отметил аналогом скорее AIR Marketplace от Adobe.

Визуальный редактор для создания интерфейсов (демо которого Джек Слокум выложил еще в ноябре прошлого года) ожидается с выходом версии 3.1. Это именно то, что мы очень и очень ожидаем.

Что приятно удивило, что все, сделавшие предзаказы на ExtJS 3.0, имеется ввиду коммерческая лицензия, получать 20% скидку, 40% скидка тем, кто обладает лицензией на предыдущие версии. Так что не надо особо бояться, что новая версия будет сильно дороже, свои проекты мы уже переводим или начинаем только на 3-й версии.

А теперь немного не технических заметок, ведь кроме фактов, важна и сама атмосфера конференции.

reception-2


Во время обедов можно было познакомиться и поговорить с людьми, которых уже давно знаешь по форуму. Например, Сергею пощасливилось обедать за одним столом с Animal (активнейшим участником форума), который и в жизни оказался таким же отзывчивым и интересным. Во время обсуждения проектов он поделился своими мыслями об архитектуре Ext-based приложений. В ответ ему рассказали про фреймворк Netzke.

На второе утро, когда был выпущен RC1 для третьей версии, Аарон Конран рассказал, что он не спал ни минуты (что было заметно по его сильно покрасневшим глазам), а Джек — всего 9 минут в ту ночь. Это может объяснить то, что key-note Джека была такой короткой (не больше 10 минут), что он вышел на нее с жестянкой redbull в руке, и что он отчетливо выразил свое облегчение, когда ему не стали задавать вопросов.

reception-1


Организация конференции — на уровне люкс, что и следовало ожидать от 5-звездочного отеля. Вкусные обеды, и чуть ли не танцы официантов с блюдами вокруг столов во время подачи основного блюда. А также утром, после первой сессии, с кофе давали очень вкусные сладости.

Кстати, участникам раздали чашки-термосы для кофе с символикой компании, из который многие увлеченно пили кофе всю конференцию напролет. Черт, и я такую хочу!

Благодаря Сергею, были получены ответы на некоторые мои вопросы, заранее заготовлены. Возможно, это пригодится и вам.

ext-team-answers-questions


Не пойдет ли ExtJS по пути Dojo, разделившись на три проекта (Dijij — визуальные компоненты, Dojo ядро и Dojox всякие фишки). Уже сейчас наметилось разделение на основную библиотеку, адаптеры.
— Нет, дальнейшего разделения не планируется.

Будет ли расширяться список адаптеров, например, использующих новые CSS движки, Dojo или другие тулкиты?
— Нет.

Кроме GWT, планируется ли расширение поддержки серверной части, например, в сторону PHP или Ruby/Python? Тот же конкурент Dojo отвоевал место в Zend Framework, какие планы по поддержке РНР и вообще серверной части?
— По некоторым комментариям, стало понятно, что на данный момент они хотят оставаться и развиваться как библиотека, не зависящая от технологий, применяемых на сервере. Тем не менее примеры для работы с Ext.Direct будут включать в себя код на java, ruby, php, .net.

Планируется ли создание какой-то визуального конструктора интерфейсов, или интеграция с существующими, например, GUIStudio? Или создание плагина для Apatana IDE?
— Да, будет включен в 3.1

Будет ли внедрена поддержка в библиотеку загрузки компонент по требованию?
— Поддержки загрузки по требованию они не планируют, но Аарон сказал, что они работают над механизмом объявления зависимостей между классами Ext. Думаю, это потом вполне можно будет применить для динамической загрузки компонент.

Вот, вероятно и все.

В заключение я хочу искренне поблагодарить Сергея Козлова (Sergei Kozlov), который предоставил записи и задал мои вопросы устроителям конференции. Он же автор и фотографий, сопровождающих этот обзор. Сергей также известен как автор Netzke — молодого фреймворка, предназначенного для компонентно-ориентированного создания приложений на базе ExtJS и Ruby-on-Rails. Его сайт playcode.nl, также можно следить за твиттер-лентой (twitter.com/skozlov).
Теги:
Хабы:
+25
Комментарии20

Публикации

Изменить настройки темы

Истории

Ближайшие события

PG Bootcamp 2024
Дата16 апреля
Время09:30 – 21:00
Место
МинскОнлайн
EvaConf 2024
Дата16 апреля
Время11:00 – 16:00
Место
МоскваОнлайн
Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн