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