Dojo toolkit
Dojo Toolkit | ||
---|---|---|
Parte de biblioteca de JavaScript | ||
Información general | ||
Tipo de programa | Biblioteca de JavaScript | |
Desarrollador | Dojo Foundation | |
Lanzamiento inicial | 2004 | |
Licencia | Licencia BSD y AFL | |
Información técnica | ||
Programado en | JavaScript | |
Versiones | ||
Última versión estable | 1.3.1 ( 13 de febrero de 2009) | |
Enlaces | ||
Dojo es un framework que contiene APIs y widgets (controles) para facilitar el desarrollo de aplicaciones Web que utilicen tecnología AJAX. Contiene un sistema de empaquetado inteligente, los efectos de UI, drag and drop APIs, widget APIs, abstracción de eventos, almacenamiento de APIs en el cliente, e interacción de APIs con AJAX.
Resuelve asuntos de usabilidad comunes como pueden ser la navegación y detección del navegador, soportar cambios de URL en la barra de URLs para luego regresar a ellas (bookmarking), y la habilidad de degradar cuando AJAX/JavaScript no es completamente soportado en el cliente. Es conocido como "la navaja suiza del ejército de las bibliotecas Javascript". Proporciona una gama más amplia de opciones en una sola biblioteca JavaScript y es compatible con navegadores antiguos.
Características
Complementos
Los complementos de Dojo son componentes preempaquetados de código JavaScript, HTML y CSS que pueden ser usados para enriquecer aplicaciones web.
- Menús, pestañas y tooltips.
- Tablas ordenables, gráficos dinámicos y dibujado de vectores 2D.
- Efectos de animación y la posibilidad de crear animaciones personalizables.
- Soporte para arrastrar y soltar.
- Formularios y rutinas de validación para los parámetros.
- Calendario, selector de tiempo y reloj.
- Editor online de texto enriquecido.
- Núcleo de componentes (dijit) accesible desde versiones anteriores y lector de pantalla.
Comunicación asíncrona
Una característica importante de las aplicaciones AJAX es la comunicación asíncrona entre el navegador y el servidor. Tradicionalmente, se realizaba con el comando JavaScript XMLHttpRequest. Dojo provee de una capa de abstracción (dojo.io.bind) para varios navegadores web con la que se pueden usar otros transportes (como IFrames ocultos) y diferentes formatos de datos. De esta forma podemos obtener los campos que se van a enviar como parámetros del formulario de una manera sencilla.
Sistema de paquetes
Dojo provee de un sistema de paquetes para facilitar el desarrollo modular. El script de inicio inicializa una serie de jerarquías de paquetes de espacios de nombre (io, event, etc.) bajo el paquete raíz dojo. Después de la inicialización del paquete dojo, cualquier otro paquete puede ser cargado (vía XMLHttpRequest o cualquier otro transporte similar) usando las utilidades ofrecidas en el arranque. También es posible inicializar paquetes adicionales dentro o al mismo nivel que el paquete dojo, permitiendo extensiones o bibliotecas de terceros.
Los paquetes de Dojo pueden contener múltiples archivos. Cualquier paquete o archivo puede depender de otro. En este caso, cuando el paquete es cargado, cualquier dependencia será también cargada.
Dojo también brinda una manera de crear perfiles; el sistema ofrece una lista de paquetes y usa Apache Ant para crear un archivo JavaScript comprimido que contiene dichos paquetes y dependencias. De esta manera se tiene todo el código necesario para ser cargado y es inicializado de una sola vez, permitiendo así el cacheado (la mayoría de los navegadores web no permiten el cacheado de archivos vía XMLHttpRequest).
Almacenamiento en el cliente de datos
Adicionalmente, ofrece funciones para leer y escribir cookies, proporcionando en el lado cliente una abstracción llamada Dojo Storage. Dojo Storage permite a la aplicación web almacenar datos en el lado cliente, persistencia y seguridad. Cuando se incluye en una página web, determina cual es el mejor método para almacenar la información. Cuando la aplicación web ha sido cargada desde el sistema de archivos (por ejemplo desde file://URL), Dojo Storage usa de manera transparente XPCOM en Firefox y ActiveX en Internet Explorer para mantener la persistencia de la información. El desarrollador que use Dojo Storage no se tiene que preocupar de esto, ya que Dojo tiene una capa de abstracción con métodos put() y get().
Almacenamiento en el servidor
Desde enero de 2007, Dojo incluye las siguientes implementaciones de almacenamiento de datos en el paquete dojo.data:
- CsvStore: almacenamiento de sólo lectura y acceso CSV.
- OpmlStore: almacenamiento de sólo lectura y lectura jerárquica desde archivos en formato OPML.
- YahooStore: almacenamiento de sólo lectura que obtiene los resultado del servicio web del buscador de Yahoo Search!.
- DeliciousStore: almacenamiento de sóolo lectura que obtiene los marcadores del servicio web que ofrece Del.icio.us.
- RdfStore: almacenamiento de solo lectura que usa SPARQL para comunicarse con el servidor de datos RDF.
Soporte para Adobe Integrated Runtime (AIR)
Dojo permite usar aplicaciones Adobe AIR basadas en JavaScript. Ha sido modificada para satisfacer los requisitos de seguridad de Adobe.
La consultora Sitepen ha desarrollado una aplicación Adobe AIR llamada Dojo Toolbox usando Dojo, en la que se incluye un API y un sistema de construcción grafico. Generalmente, el sistema de construcción se ejecuta dentro de Rhino, pero esta aplicación AIR puede ejecutarse desde el mismo AIR, sin el uso de Java.
Desarrollo con Dojo
El desarrollo con Dojo puede hacerse bien con los IDE Aptana o Komodo. Existe una versión para la comunidad de Aptana y una versión de 21 día de prueba de Komodo. Los plugins de Dojo están disponibles para ambos (actualmente Dojo 0.4.3 y 0.9.0). Para el desarrollo WYSIWYG usando Dojo, se puede utilizar la aplicación de código abierto WaveMaker Visual Ajax Studio.
Fundación Dojo y patrocinio
IBM y Sun Microsystems han anunciado soporte oficial para Dojo, incluyendo contribución de código.
Zend Technologies, la compañía detrás del núcleo de PHP, anunció una asociación con Dojo para incorporarlo en el framework Zend.
La fundación Dojo es una asociación sin ánimo de lucro fundada para ayudar a proyectos de código abierto. Su principal objetivo es la ayuda para las compañías en su adopción y animar el uso de los proyectos con los que colabora.
Sus patrocinadores son:
La fundación Dojo también colabora en los siguientes proyectos:
- Persevere
- OpenRecord
- Cometd
- DWR
- Psych Desktop (renombrado como Lucid Desktop)