Initial release | January 8, 2007 |
---|---|
Stable release | |
Type | JavaScript library |
License | Proprietary |
Website | www |
Ext JS is a JavaScript application framework for building interactive cross-platform web applications [2] using techniques such as Ajax, DHTML and DOM scripting. It can be used as a simple component framework (for example, to create dynamic grids on otherwise static pages) but also as a full framework for building single-page applications (SPAs).
Originally built as an add-on library extension [3] of YUI by Jack Slocum on April 15, 2007, [4] Ext JS has had no dependencies on external libraries beginning with version 1.1. [5] Nowadays, Ext JS can be used both as a single script (with all classes and components in one file) or by building the application with the Sencha Cmd.
Ext JS includes a set of GUI-based form controls (or "widgets") for use within web applications:
Sencha also provides some themes to style the components. Changing a theme requires simply changing CSS and a script of the theme. When using Sencha CMD a re-build of the application might be required. [6]
All components should work with each theme, but their look&feel will change. For example Classic theme has rather small elements not suited for touch devices. Neptune Touch has bigger elements better suited for tablets and phones.
Ext JS comes in two flavours called modern and classic toolkit. They differ not only with available themes but there are also some API differences between them. So it is not as easy to migrate from one toolkit to the other as it is for themes. There are plans to even out some differences between the toolkits in Ext JS 7.1, which is planned for 2019.[ needs update ] [7]
Ext JS is a composition of classes that has many capabilities. Some examples:
Ext.isArray
that can be used as a replacement for Array.isArray
)Ext.Ajax.request
)Ext JS has its own class system. [8] [9] Classes are defined with Ext.define
and then an instance can be created with Ext.create
. Some classes (e.g. components and stores) can have aliases and can be created by an alias. Instances of components are created automatically when the parent component is created.
Class can extend both custom and built-in classes. Typically custom components would extend built in components (e.g. MyApp.views.ProductsTable
would extend built-in Ext.grid.Panel
). [10]
There is a built-in dynamic loader so classes can have dynamic dependencies (loaded on-demand). There are two types of dependencies in ExtJS. Dependencies declared with requires
property are loaded before the instance of the class is created. Dependencies defined in uses
property might be loaded after the instance of the class is created.
It is also possible to override classes. Even built-in classes. Overriding built-in classes might be useful to e.g. provide internationalization [11] or create patches. Overridden class gets merged with new declaration. Each class can be overridden as many times as required (e.g. providing i18n and then l10n).
Ext JS version 2.0 was released on 4 December 2007. This version was promoted as providing an interface and features more similar to those traditionally associated with desktop applications. Also promoted were the new user documentation, API documentation, and samples. [12]
Ext JS 2.0 did not provide a backward compatibility with version 1.1. A migration guide was developed to address this. [13]
Ext JS version 3.0 was released on 6 July 2009. This version added communication support for REST and a new Ext.Direct server side platform. New flash charting and ListView elements were added to the standard display components. It was backwards compatible with version 2.0 code.
Version 4.0 of the Ext framework was released on April 26, 2011. It includes a completely revised class structure, [14] a revised data package, an animation and drawing package that uses SVG and VML, [15] and revised charting and theming. It also includes an optional architecture that provides a model–view–controller (MVC) style of code organization.
Version 5.0 of the Ext JS framework was released on June 2, 2014. [16] It includes the ability to build desktop apps on touch-enabled devices [17] —using a single code base, a Model View ViewModel (MVVM) architecture, two-way data binding, responsive layouts, and other component upgrades with support for adding widgets inside a grid cell for data visualization and big data analytics. [18] Ext JS 5 also includes an upgraded touch-optimized charting package along with additional financial charting capabilities.
Ext JS 5 supports modern and legacy browsers including: Safari 6+, Firefox, IE8+, Chrome, and Opera 12+. On the mobile platform, Ext JS 5 supports Safari on iOS 6 and 7, Chrome on Android 4.1+, and Windows 8 touch-screen devices (such as Surface and touch-screen laptops) running IE10+.
Important: From the Ext JS 5 version you cannot buy license for fewer than 5 developers.
Version 6.0 of the Ext JS framework was released on July 1, 2015. [19] It merges the Sencha Touch (mobile) framework into Ext JS. [20]
Version 7.0 of Ext JS framework was released on August 29, 2019. [21] This version introduced several new components in the Modern Toolkit. The Classic Toolkit received the Material Design Theme.
On 15-Jun-2010, the merge of Ext JS with JQTouch and Raphaël was announced [22] forming a new organisation called Sencha Inc. Ext JS continues to be available as a main product on the new Sencha website [23] together with Sencha Touch, Sencha GWT (now Sencha GXT), Sencha Architect, Sencha Animator and Ext core.
On 23-Aug-2017, Sencha was acquired by IDERA (which in turn owns Embarcadero Technologies). Embarcadero is known for acquisitions of rapid application development software such as Delphi (which relies on Object Pascal as its primary programming language). [24]
Sencha’s JetBrains plugin is an Integrated Development Environment tool that creates a confluence between Sencha Frameworks and JetBrains software. This integration comes in the form of code completion, inspection, and suggestion, while cooperating with native JetBrains behavior.
Ext.NET is an ASP.NET component framework integrating the Ext library, [25] current version (as of September 2017) is 4.4 which integrates ExtJS version 6.5.1.
YUI-Ext was available under the BSD license. In April 2008, the open source license associated with Ext was changed. In version 2.0.2, the authors stated that Ext was available under an LGPL-style license as long as you "plan to use Ext in a personal, educational or non-profit manner" or "in an open source project that precludes using non-open source software" or "are using Ext in a commercial application that is not a software development library or toolkit". This was no longer the case with Ext 2.1. [26] The Ext authors claim that section 7 [27] of the LGPL as it is worded did not apply to "conditions" which their license required before distribution under the LGPL was permitted as opposed to "additional restrictions", which section 7 allowed a distributor to remove. [28]
On 20 April 2008, Ext 2.1 was released under a new dual license structure which allowed the options of the full GPL 3.0 license or a proprietary license. [29]
The change in license over time, from a permissive open source license to a restrictive dual license, caused controversy in the Ext user community. [30] [31] [32] [33]
Sencha has published details about its commercial and GPL license terms on its website. [34]
In November 2018 Sencha announced its Community Edition that is free but restricted by annual revenue of either a person or company using ExtJS. [35] [36]
Apache Flex, formerly Adobe Flex, is a software development kit (SDK) for the development and deployment of cross-platform rich web applications based on the Adobe Flash platform. Initially developed by Macromedia and then acquired by Adobe Systems, Adobe donated Flex to the Apache Software Foundation in 2011 and it was promoted to a top-level project in December 2012.
Dojo Toolkit is an open-source modular JavaScript library designed to ease the rapid development of cross-platform, JavaScript/Ajax-based applications and web sites. It was started by Alex Russell, Dylan Schiemann, David Schontzler, and others in 2004 and is dual-licensed under the modified BSD license or the Academic Free License.
Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.
The Spry Framework is an open source Ajax framework developed by Adobe Systems which is used in the construction of Rich Internet applications. Unlike other pure JavaScript frameworks such as the Dojo Toolkit and Prototype, Spry is geared towards web designers, not web developers. On August 29, 2012, Adobe announced that it would no longer continue development of Spry and handed it over to the community on GitHub.
QF-Test from Quality First Software is a cross-platform software tool for automated testing of programs via the graphical user interface. The program is specialized on cross-browser test automation of static and dynamic web-based applications. Version 4.1 added support for MacOS and the Apple Safari and Microsoft Edge browsers via the Selenium WebDriver. RESTful web service testing. From version 5.0, Windows applications can also be tested and modern C++ applications. Version 5.3 added support for the Chrome DevTools protocol, which allows browsers to be controlled using CDP drivers.
MooTools is a lightweight, object-oriented JavaScript framework. It is released under the free, open-source MIT License.
This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.
Vaadin is an open-source web application development platform for Java. Vaadin includes a set of Web Components, a Java web framework, and a set of tools that enable developers to implement modern web graphical user interfaces (GUI) using the Java programming language only, TypeScript only, or a combination of both.
Pimcore is an open-source enterprise PHP software platform for product information management (PIM), master data management (MDM), customer data management (CDP), digital asset management (DAM), content management (CMS), and digital commerce.
Sencha Touch is a user interface (UI) JavaScript library, or web framework, specifically built for the Mobile Web. It can be used by Web developers to develop user interfaces for mobile web applications that look and feel like native applications on supported mobile devices. It is based on web standards such as HTML5, CSS3 and JavaScript. The goal of Sencha Touch is to facilitate quick and easy development of HTML5 based mobile apps which run on Android, iOS, Windows, Tizen and BlackBerry devices, simultaneously allowing a native look and feel to the apps.
Ajax Animator is a free, web-based animation suite. Its development began in March 2006 by Antimatter15, then a sixth grader. Ajax Animator was originally intended to be a free replacement to Flash MX, but is now a general-purpose animation tool. Ajax Animator is primarily written using JavaScript, the Ext JS framework, and HTML5-related technologies such as SVG. The software can be used either from within a web browser or from an offline installation.
WebSharper is an open-source and commercial web-programming framework that allows web developers to create and maintain complex JavaScript and HTML5 front-end applications in the F# programming language. Other than a few native libraries, everything is F# source.
Ember.js is an open-source JavaScript web framework that utilizes a component-service pattern. It is designed with the aim of allowing developers to create scalable single-page web applications by incorporating common idioms, best practices, and patterns from other single-page-app ecosystem patterns into the framework.
libGDX is a free and open-source game-development application framework written in the Java programming language with some C and C++ components for performance dependent code. It allows for the development of desktop and mobile games by using the same code base. It is cross-platform, supporting Windows, Linux, macOS, Android, iOS, BlackBerry and web browsers with WebGL support.
KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, file format support, additional graphical control elements, plotting functions, and spell checking, the collection serves as the technological foundation for KDE Plasma and KDE Gear. It is distributed under the GNU Lesser General Public License (LGPL).
Ionic is an open-source UI toolkit for building cross-platform mobile, web, and desktop applications using web technologies such as HTML, CSS, and JavaScript/TypeScript. It provides a set of pre-designed UI components and tools for building high-quality, interactive applications. Ionic was originally built as a complete open-source SDK for hybrid mobile app development created by Max Lynch, Ben Sperry, and Adam Bradley of Drifty Co. in 2013. The original version was released in 2013 and built on top of AngularJS and Apache Cordova. However, the latest release was re-built as a set of Web Components using StencilJS, allowing the user to choose any user interface framework, such as Angular, React or Vue.js. It also allows the use of Ionic components with no user interface framework at all. Ionic provides tools and services for developing hybrid mobile, desktop, and progressive web apps based on modern web development technologies and practices, using Web technologies like CSS, HTML5, and Sass. In particular, mobile apps can be built with these Web technologies and then distributed through native app stores to be installed on devices by utilizing Cordova or Capacitor.
Angular is a TypeScript-based free and open-source single-page web application framework run on Node.js. It is developed by Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS. The Angular ecosystem consists of a diverse group of over 1.7 million developers, library authors, and content creators. According to the Stack Overflow Developer Survey, Angular is one of the most commonly used web frameworks, second to React.
This is a list of articles related to the JavaScript programming language.
{{cite web}}
: CS1 maint: numeric names: authors list (link)