Ext JS es un framework de aplicaciones JavaScript para crear aplicaciones web interactivas multiplataforma [ 2 ] utilizando técnicas como Ajax , DHTML y scripting DOM . Puede utilizarse como un framework de componentes simple (por ejemplo, para crear cuadrículas dinámicas en páginas estáticas), pero también como un framework completo para crear aplicaciones de una sola página (SPA).
Originalmente creado como una extensión de biblioteca complementaria [ 3 ] de YUI por Jack Slocum el 15 de abril de 2007, [ 4 ] Ext JS no ha tenido dependencias de bibliotecas externas desde la versión 1.1. [ 5 ] Hoy en día, Ext JS se puede usar tanto como un único script (con todas las clases y componentes en un solo archivo) como creando la aplicación con Sencha CMD.
Características
Controles de interfaz gráfica de usuario (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 selector de fecha emergente
- campos numéricos
- cuadros de lista y cuadros combinados
- Controles de radio y casillas de verificación
- control del editor HTML
- Control de cuadrícula (con modos de solo lectura y edición, datos ordenables, columnas bloqueables y arrastrables, y diversas funciones adicionales).
- control de árboles
- paneles de pestañas
- barras de herramientas
- Menús estilo aplicación de escritorio
- paneles regionales para permitir que un formulario se divida en múltiples subsecciones.
- deslizadores
- gráficos vectoriales
Temas y herramientas
Sencha también proporciona algunos temas para personalizar el estilo de los componentes. Cambiar un tema requiere simplemente modificar el CSS y el script del tema. Al usar Sencha CMD, podría ser necesario recompilar la aplicación. [ 6 ]
Todos los componentes deberían funcionar con cada tema, pero su apariencia variará. Por ejemplo, el tema Clásico tiene elementos pequeños que no son adecuados para dispositivos táctiles. Neptune Touch tiene elementos más grandes, más apropiados para tabletas y teléfonos.
Ext JS se presenta en dos versiones: una moderna y otra clásica . Se diferencian no solo por los temas disponibles, sino también por algunas diferencias en su API. Por lo tanto, migrar de una versión a otra no es tan sencillo como migrar de un tema a otro. Se planea unificar algunas de estas diferencias en Ext JS 7.1, cuyo lanzamiento está previsto para 2019.[ 7 ]
Kit de herramientas de programación
Ext JS es una composición de clases que posee muchas capacidades. Algunos ejemplos:
- una capa abstracta para navegadores (por ejemplo,
Ext.isArrayque se puede utilizar como reemplazo deArray.isArray) - administración estatal (almacenes)
- 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.definey luego se puede crear una instancia con Ext.create. Algunas clases (por ejemplo, componentes y almacenes) pueden tener alias y se pueden crear mediante un alias. Las instancias de componentes se crean automáticamente cuando se crea el componente padre.
Una clase puede extender tanto clases personalizadas como integradas. Normalmente, los componentes personalizados extenderían los componentes integrados (por ejemplo, MyApp.views.ProductsTableextendería los componentes integrados Ext.grid.Panel). [ 10 ]
Existe un cargador dinámico integrado que permite que las clases tengan dependencias dinámicas (cargadas bajo demanda). En ExtJS existen dos tipos de dependencias. Las dependencias declaradas con requiresla propiedad se cargan antes de que se cree la instancia de la clase. Las dependencias definidas en usesla propiedad pueden cargarse después de que se cree la instancia de la clase.
También es posible sobrescribir clases, incluso clases integradas. Sobrescribir clases integradas puede ser útil, por ejemplo, para proporcionar internacionalización [ 11 ] o crear parches. La clase sobrescrita se fusiona con la nueva declaración. Cada clase puede sobrescribirse tantas veces como sea necesario (por ejemplo, para proporcionar 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ó por ofrecer una interfaz y características más similares a las tradicionalmente asociadas con las aplicaciones de escritorio. También se promocionaron la nueva documentación para el usuario, la documentación de la API y los ejemplos. [ 12 ]
Ext JS 2.0 no ofrecía compatibilidad con versiones anteriores, como la versión 1.1. Se desarrolló una guía de migración para solucionar 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 incorporó soporte para la comunicación REST y una nueva plataforma del lado del servidor, Ext.Direct. Se añadieron nuevos elementos de gráficos Flash y ListView a los componentes de visualización estándar. Era compatible con versiones anteriores, incluyendo el código de la versión 2.0.
Ext JS 4.0
La versión 4.0 del framework Ext se publicó 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 utiliza SVG y VML , [ 15 ] y gráficos y temas revisados. También incluye una arquitectura opcional que proporciona una organización de código al estilo modelo-vista-controlador (MVC).
Ext JS 5.0
La versión 5.0 del framework 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 Modelo Vista ViewModel ( MVVM ), enlace de datos bidireccional, diseños responsivos y otras mejoras 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 mejorado optimizado para pantallas táctiles junto con capacidades adicionales de gráficos financieros.
Ext JS 5 es compatible con navegadores modernos y antiguos, incluidos 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 con pantalla táctil de Windows 8 (como Surface y portátiles con pantalla táctil) que ejecutan IE10+.
Importante: A partir de la versión Ext JS 5, no se pueden adquirir licencias para menos de 5 desarrolladores.
Ext JS 6.0
La versión 6.0 del framework Ext JS se lanzó el 1 de julio de 2015. [ 19 ] Fusiona el framework Sencha Touch (móvil) en Ext JS. [ 20 ]
Ext JS 7.0
La versión 7.0 del framework Ext JS se lanzó el 29 de agosto de 2019. [ 21 ] Esta versión introdujo varios componentes nuevos en el Modern Toolkit. El Classic Toolkit recibió el tema Material Design .
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 conocida por las adquisiciones de software de desarrollo rápido de aplicaciones como Delphi (que utiliza Object Pascal como su lenguaje de programación principal). [ 24 ]
Plugin Sencha de JetBrains
El plugin de Sencha para JetBrains es una herramienta de entorno de desarrollo integrado que crea una sinergia entre los frameworks de Sencha y el software de JetBrains. Esta integración se manifiesta en forma de autocompletado , inspección y sugerencias de código, a la vez que interactúa 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 la 4.4 que integra ExtJS versión 6.5.1.
Historial de licencias
YUI-Ext estaba disponible bajo la licencia BSD . En abril de 2008, se cambió la licencia de código abierto asociada a Ext. En la versión 2.0.2, los autores declararon que Ext estaba disponible bajo una licencia de estilo LGPL siempre que se "planeara usar Ext de manera personal, educativa o sin fines de lucro" o "en un proyecto de código abierto que excluyera el uso de software que no fuera de código abierto" o "se estuviera usando Ext en una aplicación comercial que no fuera una biblioteca o kit de herramientas de desarrollo de software". Esto ya no era así 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, a diferencia de las "restricciones adicionales", que la sección 7 permitía que un distribuidor eliminara. [ 28 ]
El 20 de abril de 2008, Ext 2.1 se publicó 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 de código abierto permisiva 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 utilice ExtJS. [ 35 ] [ 36 ]
Véase también
Referencias
- ↑ "Ext JS 7.8 ha llegado" . Sencha.com . 21 de mayo de 2024. Consultado el 21 de mayo de 2024 .
- ↑ Véase también, Aplicación de Internet enriquecida
- ↑ "Diez preguntas con el autor de YAHOO.ext, Jack Slocum" . Archivado del original el 13 de septiembre de 2015. Consultado el 11 de agosto de 2015 .
- ↑ "@jackslocum #ExtJS 1.0 se lanzó el 15 de abril de 2007. Feliz cumpleaños. @Sencha" . Jack Slocum . Consultado el 14 de abril de 2013 .
- ↑ A partir de la versión 2.0, Ext JS funciona con diferentes bibliotecas base o adaptadores (por ejemplo, YUI , jQuery , Prototype ), o puede funcionar de forma independiente . La capacidad de trabajar con múltiples bibliotecas base se eliminó en la versión 4.0.
- ↑ "Sistema de temas | Ext JS 6.5.3" . Documentación de Sencha . Consultado el 11 de junio de 2018 .
- ↑ "Actualización de la hoja de ruta de productos de Sencha" . Sencha.com . 29 de noviembre de 2017. Consultado el 11 de junio de 2018 .
- ↑ "El sistema de clases | Ext JS 6.5.3" . Documentación de Sencha . Consultado el 11 de junio de 2018 .
- ↑ "Conceptos básicos de POO | Ext JS 6.5.3" . Documentación de Sencha . Consultado el 11 de junio de 2018 .
- ↑ "Componentes | Ext JS 6.5.3" . Documentación de Sencha . Consultado el 10 de junio de 2018 .
- ↑ "Localización | Ext JS 6.5.3" . Documentación de Sencha . Consultado el 11 de junio de 2018 .
- ^ "Ext JS 4.0.7 - Documentos Sencha" . Extjs.com . Consultado el 19 de noviembre de 2012 .
- ↑Archivado el 20 de febrero de 2008 en Wayback Machine .
- ↑ "Cuenta regresiva para Ext JS 4: Carga dinámica y nuevo sistema de clases | Blog" . Sencha. 19 de enero de 2011. Consultado el 19 de noviembre de 2012 .
- ↑ "Cuenta regresiva para Ext JS 4: Paquete de datos | Blog" . Sencha. 21 de enero de 2011. Consultado el 19 de noviembre de 2012 .
- ↑ "Anuncio de Sencha Ext JS 5 | Blog" . Sencha. 2 de junio de 2014. Consultado el 16 de julio de 2014 .
- ↑ "Sencha Ext JS 5 unifica el desarrollo de aplicaciones móviles y de escritorio" . eWeek. 14 de junio de 2014. Consultado el 11 de septiembre de 2014 .
- ↑ "Sencha Ext JS 5 simplifica y unifica" . Dr. Dobb's. 5 de junio de 2014. Consultado el 11 de septiembre de 2014 .
- ↑ "Notas de la versión de EXT JS 6.0.2" . Consultado el 6 de enero de 2017 .
- ↑ "Sencha unifica los marcos de desarrollo de JavaScript" . 20 de marzo de 2015. Consultado el 28 de agosto de 2015 .
- ↑ "Notas de la versión de 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 de trabajo 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 su negocio de herramientas para desarrolladores" . sencha.com . Sencha, Inc. Consultado el 12 de septiembre de 2017 .
- ↑ "– Marco de componentes ASP.NET (WebForm + MVC) que integra la biblioteca JavaScript Sencha Ext JS | Componentes web ASP.NET para aplicaciones WebForms y MVC. Integra el marco Sencha ExtJS" . Ext.NET. 2011-09-20 . Consultado el 2012-11-17 .
- ↑ "¿Cambio de licencia?" . Extjs.com . Consultado el 06-05-2022 .
- ↑ "Licencia Pública General Reducida de 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. 22 de abril de 2008. Consultado el 19 de noviembre de 2012 .
- ↑ Lunes 28 de abril de 2008, 15:08 por Tim O'Brien en Opinión (2008-04-28). "Falsa estafa de licencia afecta a ExtJS y Java Service Wrapper: las comunidades se alienan - Blog de O'Reilly ONJava" . Oreillynet.com . Consultado el 19 de noviembre de 2012 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Asay, Matt (25 de febrero de 2008). "ExtJS: Cuando el código abierto no es 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 las licencias de código abierto" . Ajaxian. 26 de abril de 2008. Consultado el 19 de noviembre de 2012 .
- ↑ "Creciendo controversia en torno a EXTJS « The Byte Stops Here" . Bytestopshere.com . Consultado el 19 de noviembre de 2012 .
- ↑ "Licencias de Sencha | Sitio web | Sencha" . Sencha.com. 13 de enero de 2011. Consultado el 16 de mayo de 2016 .
- ↑ "Anuncio de Sencha Ext Community Edition" . Sencha.com . 6 de noviembre de 2018. Consultado el 6 de diciembre de 2019 .
- ↑ "Ext JS Community Edition" . Sencha.com . 31 de octubre de 2018. Consultado el 6 de diciembre de 2019 .
Bibliografía
- Orchard, Leslie M.; Pehlivanian, Ara; Koon, Scott; Jones, Harley (31 de agosto de 2009). Marcos de trabajo profesionales de JavaScript: Prototype, YUI, ExtJS, Dojo y MooTools (1.ª ed.). Wrox Press . pág. 888. ISBN 978-0-470-38459-6Archivado del original el 6 de julio de 2011. Consultado el 15 de agosto de 2009 .
- Frederick, Shea; Ramsay, Colin; 'Cutter' Blades, Steve (28 de noviembre de 2008). Learning Ext JS (1.ª ed.). Packt Publishing . pág. 299. ISBN 978-1-84719-514-2.
- González, Armando; Villa, Crysfel (8 de octubre de 2012). Aprendiendo Ext JS 4 (1.ª ed.). Packt Publishing . pág. 434. ISBN 978-1-84951-684-6.
Enlaces externos
- El sitio web original de Ext JS creado por Jack Slocum.
- Bibliotecas de JavaScript
- Ajax (programación)
- marcos de trabajo web