Ext JS — это платформа приложений JavaScript для создания интерактивных кроссплатформенных веб-приложений [2] с использованием таких методов, как сценарии Ajax , DHTML и DOM . Его можно использовать как простую структуру компонентов (например, для создания динамических сеток на статических страницах), но также и как полную структуру для создания одностраничных приложений (SPA).
Первоначально созданный Джеком Слокамом 15 апреля 2007 года как расширение дополнительной библиотеки [3] YUI , [4] Ext JS не имел зависимостей от внешних библиотек, начиная с версии 1.1 . [5] В настоящее время Ext JS можно использовать как в виде единого скрипта (со всеми классами и компонентами в одном файле), так и путем создания приложения с помощью Sencha Cmd.
Ext JS включает набор элементов управления формами на основе графического интерфейса (или « виджетов ») для использования в веб-приложениях:
Sencha также предоставляет несколько тем для стилизации компонентов. Для изменения темы требуется просто изменить CSS и сценарий темы. При использовании Sencha CMD может потребоваться пересборка приложения. [6]
Все компоненты должны работать с каждой темой, но их внешний вид изменится. Например, классическая тема имеет довольно мелкие элементы, не подходящие для сенсорных устройств. 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 2.0 была выпущена 4 декабря 2007 года. Эта версия рекламировалась как предоставляющая интерфейс и функции, более похожие на те, которые традиционно ассоциируются с настольными приложениями. Также были представлены новая пользовательская документация, документация по API и примеры. [12]
Ext JS 2.0 не обеспечивал обратной совместимости с версией 1.1. Для решения этой проблемы было разработано руководство по миграции. [13]
Версия Ext JS 3.0 была выпущена 6 июля 2009 года. В этой версии добавлена поддержка связи для REST и новая серверная платформа Ext.Direct. К стандартным компонентам отображения были добавлены новые элементы флэш-диаграмм и ListView. Он был обратно совместим с кодом версии 2.0.
Версия 4.0 платформы Ext была выпущена 26 апреля 2011 года. Она включает в себя полностью переработанную структуру классов, [14] переработанный пакет данных, пакет анимации и рисования, использующий SVG и VML , [15] а также переработанные диаграммы и темы. Он также включает дополнительную архитектуру, которая обеспечивает стиль организации кода модель-представление-контроллер (MVC).
Версия 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 разработчиков.
Версия 6.0 платформы Ext JS была выпущена 1 июля 2015 года. [19] Она объединяет инфраструктуру Sencha Touch (мобильную) с Ext JS. [20]
Версия 7.0 платформы Ext JS была выпущена 29 августа 2019 года. [21] В этой версии появилось несколько новых компонентов в Modern Toolkit. Классический инструментарий получил тему Material Design .
15 июня 2010 г. было объявлено о слиянии Ext JS с JQTouch и Raphaël [22] с образованием новой организации под названием Sencha Inc. Ext JS по-прежнему доступен в качестве основного продукта на новом веб-сайте Sencha [23] вместе с Sencha. 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 Frameworks и программное обеспечение JetBrains. Эта интеграция осуществляется в форме завершения кода , проверки и предложения при одновременном взаимодействии с собственным поведением JetBrains.
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]
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка )