Внешний JS - Ext JS
Внешний рабочий стол JS 2.0 | |
Стабильный выпуск | 7.0.0 / 29 августа 2019 г.[1] |
---|---|
Тип | Библиотека JavaScript |
Лицензия | Проприетарный |
Интернет сайт | www |
Внешний JS чистый JavaScript рамки приложения для создания интерактивной кросс-платформы веб-приложения[2] используя такие методы, как Аякс, DHTML и ДОМ сценарии. Его можно использовать как простую компонентную структуру (например, для создания динамических сеток на статичных страницах), а также как полную структуру для создания одностраничные приложения.
Первоначально построенный как расширение библиотеки надстройки[3] из Юй Джек Слокам 15 апреля 2007 г.,[4] Начиная с версии 1.1, Ext JS не сохраняет зависимости от внешних библиотек, вместо этого делая их использование необязательным.[5] В настоящее время Ext JS можно использовать как в виде отдельного скрипта (со всеми классами и компонентами в одном файле), так и путем сборки приложения с помощью Sencha Cmd.
особенности
Элементы управления GUI (компоненты)
Ext JS включает набор GUI на основе элементов управления формой (или "виджеты ") для использования в веб-приложениях:
- текстовое поле и элементы управления вводом 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 есть два типа зависимостей. Зависимости, объявленные с требует
свойство загружаются до создания экземпляра класса. Зависимости, определенные в использует
Свойство может быть загружено после создания экземпляра класса.
Также возможно переопределить классы. Даже встроенные классы. Переопределение встроенных классов может быть полезно, например, для обеспечить интернационализацию[11] или создать патчи. Переопределенный класс объединяется с новым объявлением. Каждый класс можно переопределить столько раз, сколько потребуется (например, предоставив i18n, а затем l10n).
История версий Ext JS
Внешний JS 2.0
Ext JS версии 2.0 был выпущен 4 декабря 2007 года. Эта версия рекламировалась как обеспечивающая интерфейс и функции, более похожие на те, которые традиционно ассоциируются с настольными приложениями. Также продвигалась новая пользовательская документация, API документация и образцы.[12]
Ext JS 2.0 не обеспечивает обратной совместимости с версией 1.1. Для решения этой проблемы было разработано руководство по миграции.[13]
Внешний JS 3.0
Ext JS версии 3.0 был выпущен 6 июля 2009 г. В этой версии добавлена поддержка связи для ОСТАЛЬНЫЕ и новая серверная платформа Ext.Direct. К стандартным компонентам отображения были добавлены новые flash-диаграммы и элементы ListView. Он был обратно совместим с кодом версии 2.0.
Внешний JS 4.0
Версия 4.0 платформы Ext была выпущена 26 апреля 2011 года. Она включает полностью измененную структуру классов,[14] исправленный пакет данных, пакет анимации и рисования, который использует SVG и VML,[15] и пересмотрены схемы и тематика. Он также включает дополнительную архитектуру, которая обеспечивает модель – представление – контроллер (MVC) стиль организации кода.
Внешний 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 разработчиков.
Внешний JS 6.0
Версия 6.0 фреймворка Ext JS была выпущена 1 июля 2015 года.[19] Он объединяет Sencha Touch (мобильный) фреймворк в Ext JS.[20]
Внешний JS 7.0
Версия 7.0 фреймворка Ext JS была выпущена 29 августа 2019 года.[21] Ext JS 7.0 был второстепенным выпуском. В Modern Toolkit было добавлено несколько компонентов. Classic Toolkit получил Материальный дизайн Тема.
Сенча
15 июня 2010 г. произошло слияние Ext JS с JQTouch и Рафаэль было объявлено[22] создание новой организации под названием Sencha Inc. Ext JS по-прежнему доступен в качестве основного продукта на новом веб-сайте Sencha.[23] вместе с Sencha Touch, Sencha GWT (теперь Sencha GXT), Sencha Architect, Sencha Animator и Ext core.
23 августа 2017 года Sencha была приобретена ИДЕРА (который, в свою очередь, владеет 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]
Смотрите также
использованная литература
- ^ Представляем Sencha Ext JS 7.0 и Tooling GA
- ^ Смотрите также, Богатое Интернет-приложение
- ^ "Десять вопросов к автору YAHOO.ext Джеку Слокаму". Получено 2015-08-11.
- ^ "@jackslocum #ExtJS 1.0 был выпущен 15 апреля 2007 года. С днем рождения. @Sencha". Джек Слокам. Получено 2013-04-14.
- ^ Ext JS версии 2.0 работает с различными базовыми библиотеками или адаптерами. (например. Юй, jQuery, Прототип ), или это может работать автономный. Возможность работы с несколькими базовыми библиотеками была удалена в версии 4.0.
- ^ "Система тем | Ext JS 6.5.3". Документация по Sencha. Получено 2018-06-11.
- ^ «Обновление плана развития продукта Sencha». Sencha.com. 2017-11-29. Получено 2018-06-11.
- ^ "Система классов | Ext JS 6.5.3". Документация по Sencha. Получено 2018-06-11.
- ^ «Основы ООП | Ext JS 6.5.3». Документация по Sencha. Получено 2018-06-11.
- ^ "Компоненты | Ext JS 6.5.3". Документация по Sencha. Получено 2018-06-10.
- ^ "Локализация | Ext JS 6.5.3". Документация по Sencha. Получено 2018-06-11.
- ^ «Ext JS 4.0.7 - Sencha Docs». Extjs.com. Получено 2012-11-19.
- ^ [1] В архиве 20 февраля 2008 г. Wayback Machine
- ^ «Обратный отсчет до Ext JS 4: динамическая загрузка и новая система классов | Блог». Сенча. 2011-01-19. Получено 2012-11-19.
- ^ «Обратный отсчет до Ext JS 4: пакет данных | Блог». Сенча. 2011-01-21. Получено 2012-11-19.
- ^ "Представляем Sencha Ext JS 5 | Блог". Сенча. 2014-06-02. Получено 2014-07-16.
- ^ "Sencha Ext JS 5 объединяет мобильные и настольные приложения для разработчиков". eWeek. 2014-06-14. Получено 2014-09-11.
- ^ «Sencha Ext JS 5 оптимизирует и объединяет». Доктора Добба. 2014-06-05. Получено 2014-09-11.
- ^ «Примечания к выпуску 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. Получено 2012-11-19.
- ^ «Ведущая в отрасли платформа JavaScript для создания настольных веб-приложений | Sencha Ext JS | Продукты». Сенча. Получено 2012-11-19.
- ^ {{cite web | url =https://www.sencha.com/company/press/idera-inc-acquires-sencha-to-strengthen-developer-tools-business/ | title = IDERA, Inc. приобретает Sencha, чтобы укрепить бизнес в области инструментов для разработчиков | last = Diamandopoulos | first = Cybele | publisher = Sencha, Inc. | date = 25 августа 2017 г. | website = sencha.com | access-date = 12 сентября, 2017 г.
- ^ "- Компонентная среда ASP.NET (WebForm + MVC), интегрирующая библиотеку JavaScript Sencha Ext JS | Веб-компоненты ASP.NET для WebForms и приложения MVC. Интегрирует структуру Sencha ExtJS". Ext.NET. 2011-09-20. Получено 2012-11-17.
- ^ "Изменение лицензии?". Extjs.com. Получено 2012-11-19.
- ^ «Стандартная общественная лицензия ограниченного применения GNU - версия 3, 29 июня 2007 г.». Gnu.org. Получено 2012-11-17.
- ^ "Форумы Sencha, изменение лицензии ExtJS".
- ^ "Выпущены Ext JS 2.1 и Ext GWT 1.0, предварительная версия Ext JS 3.0 | Блог | Sencha". Extjs.com. 2008-04-22. Получено 2012-11-19.
- ^ Понедельник, 28 апреля 2008 г., 15:08, Тим О'Брайен из Opinion (2008-04-28). "Подделка лицензии попадает в ExtJS и Java Service Wrapper: сообщества отчуждены - блог O'Reilly ONJava". Oreillynet.com. Получено 2012-11-19.
- ^ Аси, Мэтт (25 февраля 2008 г.). «ExtJS: Когда открытый исходный код вообще не открыт | The Open Road - CNET News». News.cnet.com. Получено 2012-11-19.
- ^ «Ext JS и развлечения с лицензиями с открытым исходным кодом». Аяксиан. 2008-04-26. Получено 2012-11-19.
- ^ «Споры вокруг вокруг EXTJS« Байт останавливается здесь ». Bytestopshere.com. Получено 2012-11-19.
- ^ "Лицензирование Sencha | Веб-сайт | Sencha". Sencha.com. 2011-01-13. Получено 2016-05-16.
- ^ "Анонсирование Sencha Ext Community Edition". Sencha.com. 2018-11-06. Получено 2019-12-06.
- ^ "Ext JS Community Edition". Sencha.com. 2018-10-31. Получено 2019-12-06.
Список используемой литературы
- Орчард, Лесли М .; Пехливанян, Ара; Кун, Скотт; Джонс, Харли (31 августа 2009 г.). Профессиональные фреймворки JavaScript: Prototype, YUI, ExtJS, Dojo и MooTools (1-е изд.). Wrox Press. п. 888. ISBN 978-0-470-38459-6.
- Фредерик, Ши; Рамзи, Колин; «Режущие» лезвия, Стив (28 ноября 2008 г.). Изучение Ext JS (1-е изд.). Packt Publishing. п. 299. ISBN 978-1-84719-514-2.
- Гонсалес, Армандо; Вилла, Крисфель (2012-10-08). Изучение Ext JS 4 (1-е изд.). Packt Publishing. п. 434. ISBN 978-1-84951-684-6.