Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Ext JS - это среда приложений на чистом JavaScript для создания интерактивных кроссплатформенных веб-приложений [2] с использованием таких методов, как Ajax , DHTML и сценарии DOM . Его можно использовать как простую компонентную структуру (например, для создания динамических сеток на статичных страницах), а также как полную структуру для создания одностраничных приложений .

Первоначально построен в качестве дополнения библиотеки расширения [3] из YUI Джека Слокума 15 апреля 2007 года [4] , начиная с версии 1.1, Ext JS не сохраняет зависимостей от внешних библиотек, а не делает их использование необязательной. [5] В настоящее время Ext JS можно использовать как как отдельный скрипт (со всеми классами и компонентами в одном файле), так и путем создания приложения с помощью Sencha Cmd.

Особенности [ править ]

Элементы управления (компоненты) графического интерфейса [ править ]

Ext JS включает набор элементов управления формой (или « виджетов ») на основе графического интерфейса пользователя для использования в веб-приложениях:

  • текстовое поле и элементы управления вводом textarea
  • поля даты со всплывающим окном выбора даты
  • числовые поля
  • список и поля со списком
  • радио и Флажок управления
  • элемент управления редактора HTML
  • управление сеткой (с режимами только для чтения и редактирования, сортируемыми данными, блокируемыми и перетаскиваемыми столбцами и множеством других функций)
  • управление деревом
  • панели вкладок
  • панели инструментов
  • меню в стиле настольных приложений
  • панели областей, позволяющие разделить форму на несколько подразделов
  • ползунки
  • диаграммы векторной графики

Темы и инструменты [ править ]

Sencha также предоставляет несколько тем для стилизации компонентов. Для изменения темы требуется просто изменить CSS и сценарий темы. При использовании Sencha CMD может потребоваться перекомпоновка приложения. [6]

Все компоненты должны работать с каждой темой, но их внешний вид изменится. Например, тема Classic имеет довольно мелкие элементы, не подходящие для сенсорных устройств. Neptune Touch имеет элементы большего размера, которые лучше подходят для планшетов и телефонов.

Ext JS поставляется в двух вариантах: современный и классический инструментарий. Они различаются не только доступными темами, но и различиями в API. Поэтому перейти с одного инструментария на другой не так просто, как для тем. Планируется выровнять некоторые различия между наборами инструментов в Ext JS 7.1, что запланировано на 2019 год. [ Требуется обновление ] [7]

Набор инструментов для программирования [ править ]

Ext JS - это композиция классов, обладающая множеством возможностей. Некоторые примеры:

  • абстрактный слой для браузеров (например, Ext.isArrayкоторый может использоваться как замена Array.isArray)
  • государственное управление (магазины)
  • уровень связи с сервером (прокси и Ext.Ajax.request)
  • макет и управление окнами
  • управление событиями (с упрощенным созданием пользовательских событий для пользовательских компонентов)
  • маршрутизация

Система классов [ править ]

Ext JS имеет собственную систему классов. [8] [9] Классы определены с помощью, Ext.defineа затем можно создать экземпляр с помощью Ext.create. Некоторые классы (например, компоненты и хранилища) могут иметь псевдонимы и могут быть созданы с помощью псевдонима. Экземпляры компонентов создаются автоматически при создании родительского компонента.

Класс может расширять как настраиваемые, так и встроенные классы. Обычно пользовательские компоненты расширяют встроенные компоненты (например MyApp.views.ProductsTable, расширяют встроенные Ext.grid.Panel). [10]

Имеется встроенный динамический загрузчик, поэтому классы могут иметь динамические зависимости (загружаться по запросу). В ExtJS есть два типа зависимостей. Зависимости, объявленные с помощью requiresсвойства, загружаются до создания экземпляра класса. Зависимости, определенные в usesсвойстве, могут быть загружены после создания экземпляра класса.

Также возможно переопределить классы. Даже встроенные классы. Переопределение встроенных классов может быть полезно, например, для обеспечения интернационализации [11] или создания исправлений. Переопределенный класс объединяется с новым объявлением. Каждый класс можно переопределить столько раз, сколько потребуется (например, предоставив i18n, а затем l10n).

История версий Ext JS [ править ]

Ext JS 2.0 [ править ]

Ext JS версии 2.0 был выпущен 4 декабря 2007 года. Эта версия рекламировалась как обеспечивающая интерфейс и функции, более похожие на те, которые традиционно ассоциируются с настольными приложениями. Также были представлены новая пользовательская документация, документация по API и образцы. [12]

Ext JS 2.0 не обеспечивает обратной совместимости с версией 1.1. Для решения этой проблемы было разработано руководство по миграции. [13]

Ext JS 3.0 [ править ]

Версия 3.0 Ext JS была выпущена 6 июля 2009 года. В этой версии добавлена ​​поддержка связи для REST и новой серверной платформы Ext.Direct. К стандартным компонентам отображения были добавлены новые flash-диаграммы и элементы ListView. Он был обратно совместим с кодом версии 2.0.

Ext JS 4.0 [ править ]

Версия 4.0 структуры Ext была выпущена 26 апреля 2011 года. Она включает полностью измененную структуру классов, [14] исправленный пакет данных, пакет анимации и рисования, который использует SVG и VML , [15], а также переработанные схемы и темы. Он также включает дополнительную архитектуру, которая обеспечивает стиль организации кода модель – представление – контроллер (MVC).

Ext JS 5.0 [ править ]

Версия 5.0 инфраструктуры Ext JS была выпущена 2 июня 2014 года. [16] Она включает возможность создания настольных приложений на устройствах с сенсорным экраном [17] - с использованием единой базы кода, архитектуры Model View ViewModel ( MVVM ), двусторонняя привязка данных, адаптивные макеты и обновления других компонентов с поддержкой добавления виджетов внутри ячейки сетки для визуализации данных и анализа больших данных. [18] Ext JS 5 также включает обновленный пакет для построения графиков, оптимизированный для сенсорного управления, и дополнительные возможности построения финансовых графиков.

Ext JS 5 поддерживает современные и устаревшие браузеры, включая Safari 6+, Firefox, IE8 +, Chrome и Opera 12+. На мобильной платформе Ext JS 5 поддерживает Safari на iOS 6 и 7, Chrome на Android 4.1+ и устройства с сенсорным экраном Windows 8 (например, Surface и ноутбуки с сенсорным экраном) под управлением IE10 +.

Важно: Начиная с версии Ext JS 5 вы не можете купить лицензию менее чем на 5 разработчиков.

Ext JS 6.0 [ править ]

Версия 6.0 фреймворка Ext JS была выпущена 1 июля 2015 года. [19] Он объединяет фреймворк Sencha Touch (мобильный) с Ext JS. [20]

Ext JS 7.0 [ править ]

Версия 7.0 фреймворка Ext JS была выпущена 29 августа 2019 года. [21] Ext JS 7.0 был второстепенным выпуском. В Modern Toolkit было добавлено несколько компонентов. Classic Toolkit получил тему материального дизайна .

Сенча [ править ]

15-Jun-2010, в результате слияния Ext JS с JQTouch и Рафаэле было объявлено [22] формирования новой организации под названием Сенча Inc. Ext JS продолжает быть доступным в качестве основного продукта на новом сайте Сенча [23] вместе с Сенча Touch , Sencha GWT (теперь Sencha GXT), Sencha Architect, Sencha Animator и Ext core.

23 августа 2017 года Sencha была приобретена IDERA (которая, в свою очередь, владеет Embarcadero Technologies ). Embarcadero известен приобретением программного обеспечения для быстрой разработки приложений, такого как Delphi (который полагается на Object Pascal в качестве основного языка программирования). [24]

Плагин Sencha JetBrains [ править ]

Плагин Sencha JetBrains - это инструмент интегрированной среды разработки, который создает слияние между Sencha Frameworks и программным обеспечением JetBrains. Эта интеграция осуществляется в форме завершения , проверки и предложения кода при взаимодействии с собственным поведением JetBrains.

Ext.NET [ править ]

Ext.NET - это компонентная структура ASP.NET, объединяющая библиотеку Ext, [25] текущая версия (по состоянию на сентябрь 2017 г.) - 4.4, которая объединяет ExtJS версии 6.5.1.

История лицензий [ править ]

YUI-Ext был доступен по лицензии BSD . В апреле 2008 года лицензия с открытым исходным кодом, связанная с Ext, была изменена. В версии 2.0.2 авторы заявили, что Ext был доступен по лицензии в стиле LGPL, если вы «планируете использовать Ext в личных, образовательных или некоммерческих целях» или «в проекте с открытым исходным кодом, который исключает использование не -программное обеспечение с открытым исходным кодом »или« используют Ext в коммерческом приложении, которое не является библиотекой или инструментарием для разработки программного обеспечения ». В Ext 2.1 этого больше не было. [26] Авторы Ext утверждают, что раздел 7 [27]LGPL в том виде, в каком она сформулирована, не применялась к «условиям», которые требовались их лицензии до того, как было разрешено распространение в рамках LGPL, в отличие от «дополнительных ограничений», которые раздел 7 разрешал дистрибьютору удалить. [28]

20 апреля 2008 года Ext 2.1 был выпущен под новой структурой двойной лицензии, которая позволяла использовать полную лицензию GPL 3.0 или частную лицензию. [29]

Смена лицензии с течением времени с разрешительной лицензии с открытым исходным кодом на ограничительную двойную лицензию вызвала споры в сообществе пользователей Ext. [30] [31] [32] [33]

Sencha опубликовала подробную информацию об условиях своей коммерческой лицензии и лицензии GPL на своем веб-сайте. [34]

В ноябре 2018 года Sencha объявила о выпуске Community Edition, которая бесплатна, но ограничена годовым доходом лица или компании, использующих ExtJS. [35] [36]

См. Также [ править ]

  • Сравнение фреймворков JavaScript

Ссылки [ править ]

  1. ^ Объявление о выпуске Sencha Ext JS 7.0 и Tooling GA
  2. ^ См. Также Rich Internet application.
  3. ^ "Десять вопросов с автором YAHOO.ext Джеком Слокамом" . Проверено 11 августа 2015 .
  4. ^ "@jackslocum #ExtJS 1.0 был выпущен 15 апреля 2007 года. С днем ​​рождения. @Sencha" . Джек Слокам . Проверено 14 апреля 2013 .
  5. ^ Ext JS версии 2.0 работает с различными базовыми библиотеками или адаптерами. (например, YUI , jQuery , Prototype ), или он может работать автономно . Возможность работы с несколькими базовыми библиотеками была удалена в версии 4.0.
  6. ^ "Система тем | Ext JS 6.5.3" . Документация Sencha . Проверено 11 июня 2018 .
  7. ^ «Обновление плана развития продукта Sencha» . Sencha.com . 2017-11-29 . Проверено 11 июня 2018 .
  8. ^ "Система классов | Ext JS 6.5.3" . Документация Sencha . Проверено 11 июня 2018 .
  9. ^ "Основы ООП | Ext JS 6.5.3" . Документация Sencha . Проверено 11 июня 2018 .
  10. ^ "Компоненты | Ext JS 6.5.3" . Документация Sencha . Проверено 10 июня 2018 .
  11. ^ "Локализация | Ext JS 6.5.3" . Документация Sencha . Проверено 11 июня 2018 .
  12. ^ "Ext JS 4.0.7 - Sencha Docs" . Extjs.com . Проверено 19 ноября 2012 .
  13. ^ [1] Архивировано 20 февраля 2008 г., в Wayback Machine.
  14. ^ «Обратный отсчет до Ext JS 4: динамическая загрузка и новая система классов | Блог» . Сенча. 2011-01-19 . Проверено 19 ноября 2012 .
  15. ^ «Обратный отсчет до Ext JS 4: пакет данных | Блог» . Сенча. 2011-01-21 . Проверено 19 ноября 2012 .
  16. ^ "Объявление о Sencha Ext JS 5 | Блог" . Сенча. 2014-06-02 . Проверено 16 июля 2014 .
  17. ^ «Sencha Ext JS 5 объединяет мобильные и настольные приложения для разработчиков» . eWeek. 2014-06-14 . Проверено 11 сентября 2014 .
  18. ^ "Sencha Ext JS 5 оптимизирует и объединяет" . Доктора Добба. 2014-06-05 . Проверено 11 сентября 2014 .
  19. ^ «Примечания к выпуску EXT JS 6.0.2» . Проверено 6 января 2017 года .
  20. ^ «Sencha объединяет рамки разработки JavaScript» . Проверено 28 августа 2015 года .
  21. ^ «Примечания к выпуску EXT JS 7.0.0» . Дата обращения 9 июля 2019 .
  22. ^ "Ext JS + jQTouch + Raphaël = Sencha | Блог" . Сенча. 2010-06-14 . Проверено 19 ноября 2012 .
  23. ^ «Ведущая в отрасли платформа JavaScript для создания настольных веб-приложений | Sencha Ext JS | Продукты» . Сенча . Проверено 19 ноября 2012 .
  24. ^ Diamandopoulos, Кибела (25 августа 2017). «IDERA, Inc. приобретает Sencha, чтобы укрепить свой бизнес в сфере инструментов для разработчиков» . sencha.com . Сенча, Inc . Проверено 12 сентября 2017 года .
  25. ^ "- Компонентная среда ASP.NET (WebForm + MVC), интегрирующая библиотеку JavaScript Sencha Ext JS | Веб-компоненты ASP.NET для WebForms и приложения MVC. Интегрирует структуру Sencha ExtJS" . Ext.NET. 2011-09-20 . Проверено 17 ноября 2012 .
  26. ^ "Изменение лицензии?" . Extjs.com . Проверено 19 ноября 2012 .
  27. ^ «Стандартная общественная лицензия ограниченного применения GNU - Версия 3, 29 июня 2007 г.» . Gnu.org . Проверено 17 ноября 2012 .
  28. ^ "Форумы Sencha, Изменение лицензии ExtJS" .
  29. ^ "Выпущены Ext JS 2.1 и Ext GWT 1.0, предварительная версия Ext JS 3.0 | Блог | Sencha" . Extjs.com. 2008-04-22 . Проверено 19 ноября 2012 .
  30. Понедельник, 28 апреля 2008 г., 15:08, автор - Тим О'Брайен, автор мнения (2008-04-28). «Подделка лицензий на ExtJS и Java Service Wrapper: сообщества отчужденных - блог O'Reilly ONJava» . Oreillynet.com . Проверено 19 ноября 2012 .
  31. ^ Асей, Мэтт (2008-02-25). «ExtJS: Когда открытый исходный код вообще не открыт | The Open Road - CNET News» . News.cnet.com . Проверено 19 ноября 2012 .
  32. ^ «Ext JS и развлечения с лицензиями с открытым исходным кодом» . Аяксиан. 2008-04-26 . Проверено 19 ноября 2012 .
  33. ^ «Споры пивоварения Surround EXTJS« Байт останавливается здесь » . Bytestopshere.com . Проверено 19 ноября 2012 .
  34. ^ "Лицензирование Sencha | Веб-сайт | Sencha" . Sencha.com. 2011-01-13 . Проверено 16 мая 2016 .
  35. ^ "Анонсирование Sencha Ext Community Edition" . Sencha.com . 2018-11-06 . Проверено 6 декабря 2019 .
  36. ^ "Ext JS Community Edition" . Sencha.com . 2018-10-31 . Проверено 6 декабря 2019 .

Библиография [ править ]

  • Орчард, Лесли М .; Пехливанян, Ара; Кун, Скотт; Джонс, Харли (31 августа 2009 г.). Профессиональные фреймворки JavaScript: Prototype, YUI, ExtJS, Dojo и MooTools (1-е изд.). Wrox Press . п. 888. ISBN 978-0-470-38459-6.
  • Фредерик, Ши; Рамзи, Колин; «Режущие» лезвия, Стив (28 ноября 2008 г.). Learning Ext JS (1-е изд.). Packt Publishing . п. 299. ISBN 978-1-84719-514-2.
  • Гонсалес, Армандо; Вилла, Крисфель (2012-10-08). Learning Ext JS 4 (1-е изд.). Packt Publishing . п. 434. ISBN 978-1-84951-684-6.

Внешние ссылки [ править ]

  • Оригинальный сайт Ext JS от Джека Слокума
  • Веб-сайт Sencha