Ext JS es un marco de aplicación de JavaScript puro para la creación de aplicaciones web interactivas multiplataforma [2] utilizando técnicas como Ajax , DHTML y DOM scripting. Se puede utilizar como un marco de componente simple (para, por ejemplo, crear cuadrículas dinámicas en páginas que de otro modo serían estáticas), pero también como un marco completo para crear aplicaciones de una sola página .
Lanzamiento estable | 7.4.0 / 7 de mayo de 2021 [1] |
---|---|
Tipo | Biblioteca de JavaScript |
Licencia | Propiedad |
Sitio web | www |
Originalmente construido como una extensión de biblioteca complementaria [3] de YUI por Jack Slocum el 15 de abril de 2007, [4] comenzando con la versión 1.1, Ext JS no retiene dependencias de bibliotecas externas, sino que hace que su uso sea opcional. [5] Hoy en día, Ext JS se puede usar como un solo script (con todas las clases y componentes en un archivo) o construyendo la aplicación con Sencha Cmd.
Características
Controles GUI (componentes)
Ext JS incluye un conjunto de controles de formulario basados en GUI (o " widgets ") para su uso en aplicaciones web:
- controles de entrada de campo de texto y área de texto
- campos de fecha con un selector de fecha emergente
- campos numéricos
- cuadro de lista y cuadros combinados
- controles de radio y casilla de verificación
- control del editor html
- control de cuadrícula (con modos de solo lectura y edición, datos clasificables, columnas bloqueables y arrastrables, y una variedad de otras características)
- control de árboles
- paneles de pestañas
- barras de herramientas
- menús de estilo de aplicación de escritorio
- paneles de región para permitir que un formulario se divida en múltiples subsecciones
- deslizadores
- gráficos vectoriales gráficos
Temas y kits de herramientas
Sencha también proporciona algunos temas para diseñar los componentes. Cambiar un tema requiere simplemente cambiar CSS y una secuencia de comandos del tema. Al utilizar Sencha CMD, es posible que se requiera una reconstrucción de la aplicación. [6]
Todos los componentes deberían funcionar con cada tema, pero su apariencia cambiará. Por ejemplo, el tema clásico tiene elementos bastante pequeños que no son adecuados para dispositivos táctiles. Neptune Touch tiene elementos más grandes que se adaptan mejor a tabletas y teléfonos.
Ext JS viene en dos sabores llamados kit de herramientas moderno y clásico . No solo difieren con los temas disponibles, sino que también hay algunas diferencias de API entre ellos. Por lo tanto, no es tan fácil migrar de un conjunto de herramientas a otro como lo es para los temas. Hay planes para nivelar algunas diferencias entre los kits de herramientas en Ext JS 7.1, que está previsto para 2019. [ necesita actualización ] [7]
Kit de herramientas de programación
Ext JS es una composición de clases que tiene muchas capacidades. Algunos ejemplos:
- una capa abstracta para navegadores (por ejemplo,
Ext.isArray
que se puede usar como reemplazo deArray.isArray
) - gestión estatal (tiendas)
- capa de comunicación del servidor (proxies y
Ext.Ajax.request
) - diseño y gestión de ventanas
- gestión de eventos (con creación simplificada de eventos personalizados para componentes personalizados)
- enrutamiento
Sistema de clases
Ext JS tiene su propio sistema de clases. [8] [9] Las clases se definen con Ext.define
y luego se puede crear una instancia con Ext.create
. Algunas clases (por ejemplo, componentes y tiendas) pueden tener alias y pueden crearse mediante un alias. Las instancias de componentes se crean automáticamente cuando se crea el componente principal.
La clase puede ampliar tanto las clases personalizadas como las integradas. Normalmente, los componentes personalizados se extenderían a los componentes integrados (por ejemplo, MyApp.views.ProductsTable
se extenderían a los integrados Ext.grid.Panel
). [10]
Hay un cargador dinámico incorporado para que las clases puedan tener dependencias dinámicas (cargadas bajo demanda). Hay dos tipos de dependencias en ExtJS. Las dependencias declaradas con requires
propiedad se cargan antes de que se cree la instancia de la clase. Las dependencias definidas en la uses
propiedad se pueden cargar después de que se crea la instancia de la clase.
También es posible anular clases. Incluso clases integradas. Anular las clases integradas puede ser útil para, por ejemplo, proporcionar internacionalización [11] o crear parches. La clase anulada se fusiona con una nueva declaración. Cada clase se puede anular tantas veces como sea necesario (por ejemplo, proporcionando i18n y luego l10n).
Historial de versiones de Ext JS
Ext JS 2.0
Ext JS versión 2.0 se lanzó el 4 de diciembre de 2007. Esta versión se promocionó como una interfaz y características más similares a las asociadas tradicionalmente con las aplicaciones de escritorio. También se promocionaron la documentación del nuevo usuario, la documentación de la API y las muestras. [12]
Ext JS 2.0 no proporcionó compatibilidad con versiones anteriores de la versión 1.1. Se desarrolló una guía de migración para abordar este problema. [13]
Ext JS 3.0
La versión 3.0 de Ext JS se lanzó el 6 de julio de 2009. Esta versión agregó soporte de comunicación para REST y una nueva plataforma del lado del servidor Ext.Direct. Se agregaron nuevos gráficos flash y elementos ListView a los componentes de visualización estándar. Era compatible con versiones anteriores del código de la versión 2.0.
Ext JS 4.0
La versión 4.0 del marco Ext fue lanzada el 26 de abril de 2011. Incluye una estructura de clases completamente revisada, [14] un paquete de datos revisado, un paquete de animación y dibujo que usa SVG y VML , [15] y gráficos y temas revisados. También incluye una arquitectura opcional que proporciona un estilo de organización de código de modelo-vista-controlador (MVC).
Ext JS 5.0
La versión 5.0 del marco Ext JS se lanzó el 2 de junio de 2014. [16] Incluye la capacidad de crear aplicaciones de escritorio en dispositivos táctiles [17], utilizando una única base de código, una arquitectura Model View ViewModel ( MVVM ), enlace de datos bidireccional, diseños receptivos y otras actualizaciones de componentes con soporte para agregar widgets dentro de una celda de cuadrícula para visualización de datos y análisis de big data. [18] Ext JS 5 también incluye un paquete de gráficos optimizado al tacto mejorado junto con capacidades adicionales de gráficos financieros.
Ext JS 5 admite navegadores modernos y heredados que incluyen: Safari 6+, Firefox, IE8 +, Chrome y Opera 12+. En la plataforma móvil, Ext JS 5 es compatible con Safari en iOS 6 y 7, Chrome en Android 4.1+ y dispositivos de pantalla táctil Windows 8 (como Surface y computadoras portátiles con pantalla táctil) que ejecutan IE10 +.
Importante: A partir de la versión Ext JS 5, no puede comprar licencias para menos de 5 desarrolladores.
Ext JS 6.0
La versión 6.0 del marco Ext JS se lanzó el 1 de julio de 2015. [19] Fusiona el marco Sencha Touch (móvil) en Ext JS. [20]
Ext JS 7.0
La versión 7.0 del marco Ext JS se lanzó el 29 de agosto de 2019. [21] Ext JS 7.0 fue una versión menor. Se agregaron varios componentes a Modern Toolkit. El kit de herramientas clásico recibió el tema de diseño de materiales .
Sencha
El 15 de junio de 2010, se anunció la fusión de Ext JS con JQTouch y Raphaël [22] formando una nueva organización llamada Sencha Inc. Ext JS sigue estando disponible como producto principal en el nuevo sitio web de Sencha [23] junto con Sencha Touch , Sencha GWT (ahora Sencha GXT), Sencha Architect, Sencha Animator y Ext core.
El 23 de agosto de 2017, Sencha fue adquirida por IDERA (que a su vez es propietaria de Embarcadero Technologies ). Embarcadero es conocido por las adquisiciones de software de desarrollo rápido de aplicaciones como Delphi (que se basa en Object Pascal como su lenguaje de programación principal). [24]
Complemento Sencha JetBrains
El complemento JetBrains de Sencha es una herramienta de entorno de desarrollo integrado que crea una confluencia entre Sencha Frameworks y el software JetBrains. Esta integración viene en forma de finalización , inspección y sugerencia de código , mientras coopera con el comportamiento nativo de JetBrains.
Ext.NET
Ext.NET es un marco de componentes ASP.NET que integra la biblioteca Ext, [25] la versión actual (a septiembre de 2017) es 4.4 que integra la versión 6.5.1 de ExtJS.
Historial de licencias
YUI-Ext estaba disponible bajo la licencia BSD . En abril de 2008 se modificó la licencia de código abierto asociada con Ext. En la versión 2.0.2, los autores declararon que Ext estaba disponible bajo una licencia de estilo LGPL siempre y cuando "planee usar Ext de manera personal, educativa o sin fines de lucro" o "en un proyecto de código abierto que excluya el uso de -software de código abierto "o" están usando Ext en una aplicación comercial que no es una biblioteca de desarrollo de software o un juego de herramientas ". Este ya no era el caso con Ext 2.1. [26] Los autores de Ext afirman que la sección 7 [27] de la LGPL tal como está redactada no se aplicaba a las "condiciones" que su licencia requería antes de que se permitiera la distribución bajo la LGPL, en contraposición a las "restricciones adicionales" que la sección 7 permitía distribuidor para quitar. [28]
El 20 de abril de 2008, Ext 2.1 fue lanzado bajo una nueva estructura de licencia dual que permitía las opciones de la licencia GPL 3.0 completa o una licencia propietaria. [29]
El cambio de licencia a lo largo del tiempo, de una licencia permisiva de código abierto a una licencia dual restrictiva, causó controversia en la comunidad de usuarios de Ext. [30] [31] [32] [33]
Sencha ha publicado detalles sobre sus términos de licencia comercial y GPL en su sitio web. [34]
En noviembre de 2018, Sencha anunció su Community Edition que es gratuita pero está restringida por los ingresos anuales de una persona o empresa que usa ExtJS. [35] [36]
Ver también
- Comparación de marcos de JavaScript
Referencias
- ^ Anuncio de Sencha Ext JS 7.0 y Tooling GA
- ^ Consulte también, Aplicación de Internet enriquecida
- ^ "Diez preguntas con el autor de YAHOO.ext Jack Slocum" . Consultado el 11 de agosto de 2015 .
- ^ "@jackslocum #ExtJS 1.0 fue lanzado el 15 de abril de 2007. Feliz cumpleaños. @Sencha" . Jack Slocum . Consultado el 14 de abril de 2013 .
- ^ Ext JS a partir de la versión 2.0 funciona con diferentes bibliotecas base o adaptadores. (por ejemplo, YUI , jQuery , Prototype ), o puede funcionar de forma independiente . La capacidad de trabajar con varias bibliotecas base se eliminó en la versión 4.0.
- ^ "Sistema de tematización | Ext JS 6.5.3" . Documentación Sencha . Consultado el 11 de junio de 2018 .
- ^ "Actualización de la hoja de ruta del producto Sencha" . Sencha.com . 2017-11-29 . Consultado el 11 de junio de 2018 .
- ^ "El sistema de clases | Ext JS 6.5.3" . Documentación Sencha . Consultado el 11 de junio de 2018 .
- ^ "Conceptos básicos de POO | Ext JS 6.5.3" . Documentación Sencha . Consultado el 11 de junio de 2018 .
- ^ "Componentes | Ext JS 6.5.3" . Documentación Sencha . Consultado el 10 de junio de 2018 .
- ^ "Localización | Ext JS 6.5.3" . Documentación Sencha . Consultado el 11 de junio de 2018 .
- ^ "Ext JS 4.0.7 - Sencha Docs" . Extjs.com . Consultado el 19 de noviembre de 2012 .
- ^ [1] Archivado el 20 de febrero de 2008 en la Wayback Machine.
- ^ "Cuenta atrás para Ext JS 4: Carga dinámica y nuevo sistema de clases | Blog" . Sencha. 2011-01-19 . Consultado el 19 de noviembre de 2012 .
- ^ "Cuenta atrás para Ext JS 4: Paquete de datos | Blog" . Sencha. 2011-01-21 . Consultado el 19 de noviembre de 2012 .
- ^ "Anuncio de Sencha Ext JS 5 | Blog" . Sencha. 2014-06-02 . Consultado el 16 de julio de 2014 .
- ^ "Sencha Ext JS 5 unifica el desarrollo de aplicaciones móviles y de escritorio" . eWeek. 2014-06-14 . Consultado el 11 de septiembre de 2014 .
- ^ "Sencha Ext JS 5 racionaliza y unifica" . Dr. Dobb's. 2014-06-05 . Consultado el 11 de septiembre de 2014 .
- ^ "Notas de la versión para EXT JS 6.0.2" . Consultado el 6 de enero de 2017 .
- ^ "Sencha unifica los marcos de desarrollo de JavaScript" . Consultado el 28 de agosto de 2015 .
- ^ "Notas de la versión para EXT JS 7.0.0" . Consultado el 9 de julio de 2019 .
- ^ "Ext JS + jQTouch + Raphaël = Sencha | Blog" . Sencha. 2010-06-14 . Consultado el 19 de noviembre de 2012 .
- ^ "Marco JavaScript líder en la industria para la creación de aplicaciones web de escritorio | Sencha Ext JS | Productos" . Sencha . Consultado el 19 de noviembre de 2012 .
- ^ Diamandopoulos, Cybele (25 de agosto de 2017). "IDERA, Inc. adquiere Sencha para fortalecer el negocio de herramientas de desarrollo" . sencha.com . Sencha, Inc . Consultado el 12 de septiembre de 2017 .
- ^ "- Marco de componentes ASP.NET (WebForm + MVC) que integra la biblioteca Sencha Ext JS JavaScript | Componentes Web ASP.NET para la aplicación WebForms y MVC. Integra el marco Sencha ExtJS" . Ext.NET. 2011-09-20 . Consultado el 17 de noviembre de 2012 .
- ^ "¿Cambio de licencia?" . Extjs.com . Consultado el 19 de noviembre de 2012 .
- ^ "Licencia pública general reducida GNU - Versión 3, 29 de junio de 2007" . Gnu.org . Consultado el 17 de noviembre de 2012 .
- ^ "Foros de Sencha, Cambio de licencia de ExtJS" .
- ^ "Ext JS 2.1 y Ext GWT 1.0 lanzados, vista previa de Ext JS 3.0 | Blog | Sencha" . Extjs.com. 2008-04-22 . Consultado el 19 de noviembre de 2012 .
- ^ Lunes 28 de abril de 2008 3:08 PM por Tim O'Brien en Opinion (2008-04-28). "Licencia falsificada hits ExtJS y Java Service Wrapper: Comunidades alienadas - Blog de O'Reilly ONJava" . Oreillynet.com . Consultado el 19 de noviembre de 2012 .
- ^ Sí, Matt (25 de febrero de 2008). "ExtJS: cuando el código abierto no está abierto en absoluto | The Open Road - CNET News" . News.cnet.com . Consultado el 19 de noviembre de 2012 .
- ^ "Ext JS y la diversión con licencias Open Source" . Ajaxian. 2008-04-26 . Consultado el 19 de noviembre de 2012 .
- ^ "Brewing Controversy Surround EXTJS« El byte se detiene aquí " . Bytestopshere.com . Consultado el 19 de noviembre de 2012 .
- ^ "Licencias Sencha | Sitio web | Sencha" . Sencha.com. 2011-01-13 . Consultado el 16 de mayo de 2016 .
- ^ "Anunciando Sencha Ext Community Edition" . Sencha.com . 2018-11-06 . Consultado el 6 de diciembre de 2019 .
- ^ "Ext JS Community Edition" . Sencha.com . 2018-10-31 . Consultado el 6 de diciembre de 2019 .
Bibliografía
- Orchard, Leslie M .; Pehlivanian, Ara; Koon, Scott; Jones, Harley (31 de agosto de 2009). Frameworks profesionales de JavaScript: Prototype, YUI, ExtJS, Dojo y MooTools (1ª ed.). Prensa Wrox . pag. 888. ISBN 978-0-470-38459-6.
- Frederick, Shea; Ramsay, Colin; 'Cutter' Blades, Steve (28 de noviembre de 2008). Learning Ext JS (1ª ed.). Packt Publishing . pag. 299. ISBN 978-1-84719-514-2.
- González, Armando; Villa, Crysfel (8 de octubre de 2012). Learning Ext JS 4 (1ª ed.). Packt Publishing . pag. 434. ISBN 978-1-84951-684-6.
enlaces externos
- El sitio web original de Ext JS por Jack Slocum
- Sitio web de Sencha