Ext JS

Ext JS JavaScript Framework
Extjs-desktop.jpg
Ext JS 2.0 Web Desktop
Stabile Version
7.5.1 / 8. Dezember 2021[1]
Typ JavaScript -Bibliothek
Lizenz Proprietär
Webseite www.Sencha.com/Produkte/extjs/

Ext js ist ein JavaScript Anwendungsrahmen zum Aufbau interaktiver plattformübergreifender Web Applikationen[2] Verwenden von Techniken wie z. Ajax, DHTML und Dom Scripting. Es kann als einfaches Komponenten -Framework verwendet werden (z. B. um dynamische Gitter auf ansonsten statischen Seiten zu erstellen), aber auch als volles Rahmen für den Bau Einseitige Anwendungen (Spas).

Ursprünglich als Add-On-Bibliothekserweiterung erstellt[3] von Yui von Jack Slocum am 15. April 2007,[4] Ext JS hatte keine Abhängigkeiten von externen Bibliotheken, beginnend mit Version 1.1.[5] Heutzutage können ext js sowohl als einzelnes Skript (mit allen Klassen und Komponenten in einer Datei) als auch durch Erstellen der Anwendung mit dem Sencha CMD verwendet werden.

Merkmale

GUI -Steuerelemente (Komponenten)

Ext js beinhaltet eine Reihe von GUI-basierte Formsteuerung (oder "Widgets") Für die Verwendung innerhalb von Webanwendungen:

  • Textfeld und Textarea -Eingangssteuerungen
  • Datum Felder mit einem Pop-up-Datumspicker
  • Numerische Felder
  • Listenfeld und Kombinationsboxen
  • Radio und Kontrollkästchen Kontrollen
  • HTML Editor Control
  • Gitterkontrolle (Sowohl schreibgeschützte als auch Bearbeitungsmodi, sortierbare Daten, abschließbare und draggierbare Spalten und eine Vielzahl anderer Funktionen)
  • Baumkontrolle
  • Tab Panels
  • Symbolleisten
  • Menüs im Desktop-Anwendungsstil
  • Regionsplatten, damit ein Formular in mehrere Unterabschnitte unterteilt werden kann
  • Schieberegler
  • Vektorgrafikdiagramme

Themen und Toolkits

Sencha bietet auch einige Themen, um die Komponenten zu stylen. Das Ändern eines Themas erfordert einfach das Ändern von CSS und ein Skript des Themas. Bei Verwendung von Sencha CMD kann eine Wiederaufbau des Antrags erforderlich sein.[6]

Alle Komponenten sollten mit jedem Thema funktionieren, aber ihr Erscheinungsbild wird sich ändern. Zum Beispiel hat das klassische Thema eher kleine Elemente, die nicht für Berührungsgeräte geeignet sind. Neptune Touch hat größere Elemente, die besser für Tablets und Telefone geeignet sind.

Ext js erhält in zwei genannten Geschmacksrichtungen modern und klassisch Toolkit. Sie unterscheiden sich nicht nur mit verfügbaren Themen, sondern es gibt auch einige API -Unterschiede zwischen ihnen. Es ist also nicht so einfach, von einem Toolkit zum anderen zu migrieren wie für Themen. Es gibt Pläne, einige Unterschiede zwischen den Toolkits in Ext JS 7.1 auszugleichen, was 2019 geplant ist.[Benötigt Update][7]

Programmier -Toolkit

Ext JS ist eine Komposition von Klassen mit vielen Fähigkeiten. Einige Beispiele:

  • Eine abstrakte Schicht für Browser (z. Ext.isArray das kann als Ersatz für verwendet werden Array.IsArray)
  • Staatsmanagement (Geschäfte)
  • Serverkommunikationsschicht (Proxies und Ext.ajax.request)
  • Layout- und Fensterverwaltung
  • Ereignisverwaltung (mit einer vereinfachten Erstellung von benutzerdefinierten Ereignissen für benutzerdefinierte Komponenten)
  • Routing

Klassensystem

Ext JS hat ein eigenes Klassensystem.[8][9] Klassen sind definiert mit Ext.define und dann kann eine Instanz erstellt werden mit Ext.create. Einige Klassen (z. B. Komponenten und Geschäfte) können Aliase aufweisen und durch einen Alias ​​erzeugt werden. Instanzen von Komponenten werden automatisch erstellt, wenn die übergeordnete Komponente erstellt wird.

Die Klasse kann sowohl benutzerdefinierte als auch integrierte Klassen erweitern. Normalerweise würden benutzerdefinierte Komponenten in den Komponenten eingebaute Komponenten erweitern (z. MyApp.Views.ProductStable würde eingebaut ausdehnen Ext.grid.panel).[10]

Es gibt einen integrierten dynamischen Lader, sodass Klassen dynamische Abhängigkeiten haben können (geladen auf Nachfrage). Es gibt zwei Arten von Abhängigkeiten in ExtJs. Abhängigkeiten erklärt mit erfordert Die Eigenschaft wird vor der Erstellung der Klasse geladen. Abhängigkeiten definiert in Verwendet Die Eigenschaft kann nach dem Erstellen der Klasse geladen werden.

Es ist auch möglich, Klassen außer Kraft zu setzen. Sogar eingebaute Kurse. Übergeordnete integrierte Klassen können nützlich sein, um z. Internationalisierung bieten[11] oder Patches erstellen. Die Overdiden -Klasse wird mit einer neuen Erklärung verschmolzen. Jede Klasse kann nach Bedarf so oft überschrieben werden (z. B. Bereitstellung von i18n und dann L10N).

Ext JS -Versionsgeschichte

Ext js 2.0

Ext JS -Version 2.0 wurde am 4. Dezember 2007 veröffentlicht. Diese Version wurde als Schnittstelle bereitgestellt und bietet mehr ähnlichen denen, die traditionell mit Desktop -Anwendungen verbunden sind. Ebenfalls beworben wurde die neue Benutzerdokumentation, API Dokumentation und Proben.[12]

Ext JS 2.0 hat mit Version 1.1 keine Rückwärtskompatibilität bereitgestellt. Es wurde ein Migrationshandbuch entwickelt, um dies anzugehen.[13]

Ext js 3.0

Ext JS Version 3.0 wurde am 6. Juli 2009 veröffentlicht. Diese Version fügte Kommunikationsunterstützung für hinzu SICH AUSRUHEN und eine neue ext.direct Server -Seitenplattform. Neuen Flash -Diagramm- und ListView -Elemente wurden zu den Standardanzeigekomponenten hinzugefügt. Es war rückwärts kompatibel mit Version 2.0.

Ext js 4.0

Version 4.0 des EXT -Frameworks wurde am 26. April 2011 veröffentlicht. Es enthält eine vollständig überarbeitete Klassenstruktur.[14] ein überarbeitetes Datenpaket, ein Animations- und Zeichnungspaket, das verwendet SVG und VML,[15] und überarbeitete Charts und Themen. Es enthält auch eine optionale Architektur, die a bietet Model View Controller (MVC) Stil der Codeorganisation.

Ext js 5.0

Version 5.0 des Ext -JS -Frameworks wurde am 2. Juni 2014 veröffentlicht.[16] Es umfasst die Möglichkeit, Desktop-Apps auf Touch-fähigen Geräten zu erstellen[17]- Verwenden einer einzelnen Codebasis, einem Modell View ViewModel (MVVM) Architektur, Zwei-Wege-Datenbindung, reaktionsschnelle Layouts und andere Komponenten-Upgrades mit Unterstützung für das Hinzufügen von Widgets in einer Gitterzelle für die Datenvisualisierung und die Big-Data-Analyse.[18] Ext JS 5 enthält auch ein verbessertes Touch-optimiertes Charting-Paket sowie zusätzliche Finanzchartfunktionen.

Ext JS 5 unterstützt moderne und ältere Browser, darunter: Safari 6+, Firefox, IE8+, Chrome und Opera 12+. Auf der mobilen Plattform unterstützt Ext JS 5 Safari auf iOS 6 und 7, Chrome auf Android 4.1+ und Windows 8-Touchscreen-Geräten (wie Oberflächen- und Touchscreen-Laptops). IE10+.

Wichtig: Aus der Ext JS 5 -Version können Sie keine Lizenz für weniger als 5 Entwickler kaufen.

Ext js 6.0

Version 6.0 des Ext -JS -Frameworks wurde am 1. Juli 2015 veröffentlicht.[19] Es verschmilzt die Sencha Touch (Mobile) Framework in ext js.[20]

Ext js 7.0

Version 7.0 von Ext JS Framework wurde am 29. August 2019 veröffentlicht.[21] Ext JS 7.0 war eine geringfügige Veröffentlichung. Das moderne Toolkit wurden mehrere Komponenten hinzugefügt. Das klassische Toolkit erhielt das Material Design Thema.

Sencha

Am 15. Juni 2010 die Zusammenführung von ext js mit JQTouch und Raphaël wurde vorgestellt[22] Die Bildung einer neuen Organisation namens Sencha Inc. ext js ist weiterhin als Hauptprodukt auf der neuen Sencha -Website erhältlich[23] zusammen mit Sencha Touch, Sencha GWT (jetzt Sencha GXT), Sencha Architect, Sencha Animator und Ext Core.

Am 23. August 2017 wurde Sencha von erworben von Idera (was wiederum besitzt Embarcadero -Technologien). Embarcadero ist bekannt für Akquisitionen von Rapid Application Development Software wie z. Delphi (was auf Objekt Pascal als primäre Programmiersprache).[24]

Sencha Jetbrains Plugin

Das Jetbrains -Plugin von Sencha ist ein integriertes Entwicklungsumfeldtool, das einen Zusammenfluss zwischen den Software von Sencha Frameworks und JetBrains erzeugt. Diese Integration kommt in Form von Code -Abschluss, Inspektion und Vorschlag, während sie mit nativem Jetbrains -Verhalten zusammenarbeiten.

Ext.net

Ext.net ist ein ASP.NET Komponentenrahmen integrieren die EXT -Bibliothek,[25] Die aktuelle Version (ab September 2017) ist 4.4, was die ExtJS -Version 6.5.1 integriert.

Lizenzgeschichte

Yui-oxt war unter dem verfügbar BSD -Lizenz. Im April 2008 die Open Source -Lizenz mit EXT verbunden wurde geändert. In Version 2.0.2 gaben die Autoren an, dass Ext unter einem verfügbar sei LGPL-Style-Lizenz, solange Sie "in einem Open-Source-Projekt, das die Verwendung von nicht geöffneten Quellsoftware ausschließt," in einem Open-Source-Projekt ausschließt, "in einem Open-Source-Projekt ausschließt" oder "Ext in einer kommerziellen Anwendung, die die Verwendung von nicht geöffneter Quellsoftware verwendet Keine Softwareentwicklungsbibliothek oder Toolkit ". Dies war bei ext 2.1 nicht mehr der Fall.[26] Die Ext -Autoren behaupten, dass Abschnitt 7[27] von der LGPL, wie sie formuliert wird, galt nicht für "Bedingungen", die ihre Lizenz vor der Verteilung im Rahmen des LGPL im Gegensatz zu "zusätzlichen Beschränkungen" zulässig war, was nach Abschnitt 7 einem Händler zu entfernen ließ.[28]

Am 20. April 2008 wurde ext 2.1 unter einer neuen Dual -Lizenzstruktur veröffentlicht, die die Optionen der vollständigen GPL 3.0 -Lizenz oder einer proprietären Lizenz ermöglichte.[29]

Die Änderung der Lizenz im Laufe der Zeit, von einer zulässigen Open -Source -Lizenz zu einer restriktiven Doppellizenz, verursachte Kontroversen in der EXT -Benutzer -Community.[30][31][32][33]

Sencha hat Details zu seinen kommerziellen und GPL -Lizenzbedingungen auf seiner Website veröffentlicht.[34]

Im November 2018 kündigte Sencha seine Community -Ausgabe an, die kostenlos, aber durch den Jahresumsatz einer Person oder eines Unternehmens mit ExtJs eingeschränkt ist.[35][36]

Siehe auch

Verweise

  1. ^ "Ext js 7.5 ist angekommen". Sencha.com. 8. Dezember 2021. Abgerufen 20. Februar 2022.
  2. ^ Siehe auch, Reiche Internetanwendung
  3. ^ "Zehn Fragen mit Yahoo.Ext Autor Jack Slocum". Abgerufen 2015-08-11.
  4. ^ "@jackslocum #extjs 1.0 wurde am 15. April 2007 veröffentlicht. Alles Gute zum Geburtstag. @Sencha". Jack Slocum. Abgerufen 2013-04-14.
  5. ^ Ab Version 2.0 arbeitet Ext JS mit verschiedenen Basisbibliotheken oder -adaptern. (z.B. Yui, JQuery, Prototyp) oder es kann eigenständig funktionieren. Die Fähigkeit, mit mehreren Basisbibliotheken zu arbeiten, wurde in der Veröffentlichung von 4.0 entfernt.
  6. ^ "Theming -System | ext js 6.5.3". Sencha -Dokumentation. Abgerufen 2018-06-11.
  7. ^ "Sencha Product Roadmap Update". Sencha.com. 2017-11-29. Abgerufen 2018-06-11.
  8. ^ "Das Klassensystem | ext js 6.5.3". Sencha -Dokumentation. Abgerufen 2018-06-11.
  9. ^ "Grundlagen von OOP | ext js 6.5.3". Sencha -Dokumentation. Abgerufen 2018-06-11.
  10. ^ "Komponenten | ext js 6.5.3". Sencha -Dokumentation. Abgerufen 2018-06-10.
  11. ^ "Lokalisierung | ext js 6.5.3". Sencha -Dokumentation. Abgerufen 2018-06-11.
  12. ^ "Ext js 4.0.7 - sencha docs". Extjs.com. Abgerufen 2012-11-19.
  13. ^ [1] Archiviert 20. Februar 2008 bei der Wayback -Maschine
  14. ^ "Countdown zu Ext JS 4: Dynamisches Laden und neues Klassensystem | Blog". Sencha. 2011-01-19. Abgerufen 2012-11-19.
  15. ^ "Countdown zu Ext JS 4: Datenpaket | Blog". Sencha. 2011-01-21. Abgerufen 2012-11-19.
  16. ^ "Ankündigung von Sencha ext js 5 | Blog". Sencha. 2014-06-02. Abgerufen 2014-07-16.
  17. ^ "Sencha ext js 5 vereint Mobile, Desktop App Dev". Eweek. 2014-06-14. Abgerufen 2014-09-11.
  18. ^ "Sencha ext js 5 Stromlinien und vereinigt". Dr. Dobbs. 2014-06-05. Abgerufen 2014-09-11.
  19. ^ "Versionshinweise für Ext JS 6.0.2". Abgerufen 6. Januar 2017.
  20. ^ "Sencha vereint Javascript Development Frameworks". Abgerufen 28. August 2015.
  21. ^ "Versionshinweise für Ext JS 7.0.0". Abgerufen 9. Juli 2019.
  22. ^ "Ext js + jqtouch + raphaël = sencha | Blog". Sencha. 2010-06-14. Abgerufen 2012-11-19.
  23. ^ "Branchenführende JavaScript -Framework zum Erstellen von Desktop -Web -Apps | Sencha ext js | Produkte". Sencha. Abgerufen 2012-11-19.
  24. ^ Diamandopoulos, Cybele (25. August 2017). "Idera, Inc. erwirbt Sencha, um Entwicklertools Business zu stärken". sencha.com. Sencha, Inc. Abgerufen 12. September, 2017.
  25. ^ " - ASP.NET (WebForm + MVC) -Komponenten -Framework Integration der Sencha Ext JS JavaScript -Bibliothek. Ext.net. 2011-09-20. Abgerufen 2012-11-17.
  26. ^ "Lizenzwechsel?". Extjs.com. Abgerufen 2022-05-06.
  27. ^ "GNU Lesser allgemeine öffentliche Lizenz - Version 3, 29. Juni 2007". Gnu.org. Abgerufen 2012-11-17.
  28. ^ "Sencha -Foren, ExtJS -Lizenzwechsel".
  29. ^ "Ext JS 2.1 und Ext GWT 1.0 veröffentlicht, Vorschau von Ext JS 3.0 | Blog | Sencha". Extjs.com. 2008-04-22. Abgerufen 2012-11-19.
  30. ^ Montag, 28. April 2008, 15:08 Uhr von Tim O'Brien in Stellungnahme (2008-04-28). "Lizenz gefälschte Hits ExtJs und Java Service Wrapper: Gemeinschaften entfremdet - O'Reilly Onjava Blog". Orebeilynet.com. Abgerufen 2012-11-19.
  31. ^ Asay, Matt (2008-02-25). "ExtJS: Wenn Open Source überhaupt nicht geöffnet ist | The Open Road - CNET News". News.cnet.com. Abgerufen 2012-11-19.
  32. ^ "Ext js und der Spaß mit Open Source -Lizenzen". Ajaxian. 2008-04-26. Abgerufen 2012-11-19.
  33. ^ "Brau -Kontroverse umgibt extjs« Das Byte hält hier auf ".Bytestopshere.com. Abgerufen 2012-11-19.
  34. ^ "Sencha Lizenzierung | Website | Sencha".Sencha.com.2011-01-13. Abgerufen 2016-05-16.
  35. ^ "Ankündigung der Sencha Ext Community Edition". Sencha.com. 2018-11-06. Abgerufen 2019-12-06.
  36. ^ "Ext JS Community Edition". Sencha.com. 2018-10-31. Abgerufen 2019-12-06.

Literaturverzeichnis

Externe Links