marzo 16, 2010

Integracion a Google (1ra parte)



Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

Esta es la primera parte de nuestro proyecto utilizando el framework ExtJs, cuyo objetivo es unir las ventajas que éste nos ofrece, junto con el innegable aporte de Google al Desarrollo Web, y así poco a poco, llegar a proponer proyectos de alcance profesional... ocurre que Google no sólo es el popular buscador que todos utilizamos en nuestros ordenadores ó equipos móviles con acceso a Internet, sino que existen muchos servicios como Google Maps, Google Earth, Google Docs, Google Calendar, YouTube, Google Translate, Google Visualizations, y otros cuyo resumen los podemos disfrutar a través en el llamado Google Code Playground, vale decir, Google también nos provee diversas API, principalmente utilizando tecnología Ajax de Javascript, los que nos permiten acceder a varios servicios, y utilizarlos y presentarlos en nuestras páginas y desarrollos Web, estas API casi siempre son de uso libre y gratuito (excepto las que involucren fuerte consumo de recursos de la infraestructura Google como Google App Engine, la nueva Google Cloud SQL ó la API Google Language, la cual desde este Diciembre 2011 es ahora un servicio de paga.

Planteado de esta manera, en esta oportunidad lo que mostramos es como crear los "stores" que utilizamos con ExtJs, adaptándolos a los formatos de datos de Google, y así poder utilizar Visualizaciones de Google en nuestros desarrollos con ExtJS. Este es un procedimiento realizado a través de una extensión en código Javascript del framework ExtJS denominada GVisualizationPanel; y asimismo, mediante otra extensión que hemos llamado GVisualizationMaps, hemos adaptado nuestros datos desde ExtJs para acceder a la API de Google Maps; logrando trabajar con una variedad de visualizaciones Google y de Google Maps en "paneles" ExtJs(en sus versiones Ext-3.x y ExtJS4); y éste es un primer paso donde mostramos como trabajar con los "stores" de ExtJS, y mostrarlos sobre diferentes visualizaciones y procedimientos Google. Asimismo, estamos presentando todas estas visualizaciones en un TreePanel menú, en que para acceder a la aplicación utilizamos nuestra Cuenta Google datos de usuario y password de acceso, método que corresponde al uso de la API de Autenticación de Cuentas de Google, el que también puede ser replicado para utilizar sobre Google Apps, sólo permitiendo el acceso a cuentas de los miembros de comunidades específicas.

Este codelab fue desarrollado inicialmente con código de la versión Ext-2.x, y se tuvo que realizar pequeñas modificaciones para adaptar nuestras extensiones a la versión Ext-3.x (actualmente nuestro código trabaja bien con la versión Ext-3.4.0, la última de la serie Ext-3.x lanzada por sencha.com); y ahora también entregamos nuestro codelab con su código adaptado a la versión Ext-4.0.7, la última versión opensource ExtJs4 disponible a la fecha 15/12/2011 (aunque Sencha ya menciona la próxima liberación de Ext-4.0.8 y el lanzamiento de Ext-4.1 aún en etapa "beta") ...pueden entonces ahora disfrutar nuestros códigos, que hemos intentado documentar lo mejor posible, y así poder observar las diferencias..


Audiencia

Se recomienda que, para entender este 'codelab', tengamos los suficientes conocimientos de ExtJs y desarrollo Web (HTML y Javascript básicamente, y tengamos instalado nuestro servidor HTTP Apache local para pruebas; o en su defecto, haber seguido los capítulos inicales del curso de ExtJs que nos ofrece Crysfel Villa de México en su pagina del Quizzpot (donde también describen como instalar un servidor local), o al menos haber revisado con detalle nuestro post "empezando desde cero".


Material de apoyo
( do click on blue icons to download )

IntGoogle-01.rar, Descomprimir este material de apoyo en la carpeta "www" de nuestro servidor local AppServ u otro compatible Apache-PHP-MySQL (LAMP ó WAMP), y se creara la carpeta "Ynt-Google01" (si no entiende este paso favor consulte "empezando desde cero'). Este código en su archivo "index.html" se debe terminar de configurar correctamente las rutas para la importación de las librerías de ExtJS a la versión con que trabajemos siguiendo los pasos del codelab detallados a continuación. ( código compatible versión ExtJs-3.x ).

IntGoogle-01.rar ( 2.4Mb ), Este código corresponde al material de apoyo utilizado para instalar el presente codelab pero en la plataforma de Desarrollo WebMatrix. El resultado de éste código es idéntico al material presentado primero y totalmente compatible para ejecutar sobre una plataforma LAMP ó WAMP, pero en este caso (por exigencia de la plataforma WebMatrix), el proyecto se presenta completo, es decir, se ha adicionado y configurado para su uso, a la versión "liviana" del framework  ExtJs versión 3.4.0, y si se desempaqueta éste código en una carpeta de "www" en nuestro servidor local AppServ (dentro de otra carpeta que podemos llamar "WebMatrix" ), podremos ver directamente los resultados del ejercicio al llamarlo desde la barra de direcciones de nuestro navegador usando "http://localhost/WebMatrix/Int-Google01", y esto ocurre porque el archivo inicio del ejercicio, es en este caso también "index.html", el cual como debemos tener presente, es de ejecución automática al llamar a la carpeta que los contienen...

Int-Google01-ExtJs4.rar ( 1.2Mb ), Este código corresponde a nuestro mismo "codelab", pero la codificación utilizada corresponde a ExtJs4 versión Ext-4.0.7, vigente al 15/12/2011, la cual en esta oportunidad deberá "descargar" de la pagina oficial de sencha y copiarla en su servidor local de pruebas (en nuestro caso "D:\_Appserv\www\ext-4.0.7" ...por poner un ejemplo, ruta que debemos considerar en la importación de las librerias ExtJS en "index.html"). Este codelab corresponde a nuestras experiencias de migración a código ExtJs4, y realmente tuvimos varios obstáculos que superar pues ExtJs4 es bastante diferente a Ext-3.x; pero consideramos que ExtJs4 es un gran esfuerzo de sencha.com para integrar toda la tecnología de Desarrollo Web disponible a la fecha ( incluído HTML5 y CSS3, entre otros );y realmente vale empezar a considerar la versión ExtJs4 para nuestros proyectos, mas aún que a la fecha, ya se han corregido varios "bugs" y otras anormalidades observadas, y no dudamos que el producto va a ser muy eficiente como sus predecesoras de la versión Ext-3.x  ..aún observamos algunas cosas que no funcionan igual en Google Chrome y Firefox por ejemplo, pero son cosas ahora notoriamente menores y "solucionables" respecto a las versiones anteriores, y el resultado es bastante estable (solo los hemos probado sobre Google Chrome y Firefox reiteramos) ...y en esta oportunidad les mostramos los resultados del uso del novedoso SDK de sencha  y para ello, en las fuentes entregadas deben observar con detalle a los archivos index.html e index-prod.html. Al correr el codelab con index.html (de ejecución automática), observarán que el proyecto demora algo al cargar en nuestro navegador.. pero como podrán observar al revisar su contenido que en nuestro desarrollo hemos utilizado el archivo ext-debug.js, el cual nos permite detectar y solucionar todas las declaraciones "require" que necesite nuestro proyecto para la carga dinámica de los componentes de ExtJs que utilizaremos... y por supuesto, al ejecutar el "SDK de Sencha", se crearán los archivos "app-all.js" y "all-classes.js", que contienen  los elementos de ExtJs y de nuestro código que necesitaremos para instalar  nuestro proyecto para producción... el cual por supuesto será notoriamente de menor peso (hasta mas de 50% menos al considerar únicamente los componentes ExtJs que utilizaremos), también será notoriamente más rápido para su carga y respuesta, e incluso nuestro código utilizado será "ofuscado"... El archivo index-prod no se genera automáticamente y para la prueba deberá llamar directamente al archivo mediante : http://localhost/ExtJs4/Int-Google01-ExtJs4/index-prod.html  (en nuestro caso), pero los cambios que deben efectuarse son realmente sencillos, conviene para ello que revisemos la guía ExtJs4 de sencha.com:

http://docs.sencha.com/ext-js/4-0/#!/guide/getting_started

 (recomendamos descargar este código en una carpeta independiente a las anteriores que podriamos llamar ExtJs4 por ejemplo).

Int-Google01-MVC.rar ( 1.3Mb ), Este código corresponde a nuestro mismo codelab, pero la codificación utilizada corresponde a ExtJs4 utilizando la arquitectura MVC de aplicaciones, la cual es ampliamente recomendada para facilitar la comprensión, mantenimiento y re-utilización de componentes de nuestros proyectos, especialmente si se tratase de proyectos grandes, con la participación de varios desarrolladores, los que finalmente deban integrar sus componentes desarrollados para la elaboración del producto. El ejercicio nos muestra que realmente podemos "desagregar" nuestro proyecto hasta el nivel que querramos... y en nuestro caso, hemos presentado los "models" de nuestras extensiones que adecuan nuestra data a "stores" como clases externas de ExtJs, las cuales incluso presentan sus propios "requires" para la correspondiente carga dinámica de componentes de ExtJs. A este punto vale también nuestra recomendación que revisen con detalle la guía ExtJs4 de sencha.com:

http://docs.sencha.com/ext-js/4-0/#/guide/application_architecture


Desarrollo del ejercicio

Luego de descargado nuestro Material de Apoyo, debemos ingresar a las carpetas que se han creado y con nuestro editor de preferencia (como Notepad+ u otros), como primer paso, revisar con detalle el contenido del archivo "index.html" , que corresponde a los archivos principales de ejecución automática de cada proyecto al ingresar con nuestro navegador a la carpeta que los contienen (ó el archivo 01.GVisualization-sample.html para el caso del primer código, que no es de ejecución automática y debemos seleccionar para su ejecución). Ya dentro de nuestro archivo "html" debemos prestar atención a las etiquetas "link" y "script" que nos permiten "importar" y utilizar en nuestros proyectos, a los componentes y clases javascript del framework ExtJS (como los archivos ext-all.css ó ext-all.js entre otros según la versión ExtJS que trabajemos) ..Debemos entonces verificar que las "rutas relativas" desde la carpeta "www" de nuestro servidor sean correctas (las que corresponden a la dirección "http://localhost" de nuestro navegador) ..y listo. Ahora si con nuestro navegador ingresamos a "http://localhost", y luego a la carpeta "Int-Google01" ( ó las carpetas "WebMatrix/Int-Google02", "Int-Google01-ExtJs4" ó "Int-Google01-MVC" donde hayamos descargado nuestro material de apoyo), debe aparecer una pantalla como la que se muestra a continuación:

Esto nos indica que nuestra descarga y configuración de nuestra copia ha sido correcta (y que las rutas indicadas para la importación de las librerías de ExtJs tambien lo son), y ya estamos listos para revisar el material de apoyo instalado en nuestro codelab.. y descubrir como hemos empezado a Integrar ExtJs con Google.

Nota1.- si no aparece la pagina es probable que no hayamos descargado a ExtJs en la carpeta "www", como mostramos en "el potencial de ExtJs"; o tal vez, estemos usando una versión de ExtJS descargada en una ruta diferente de la indicada en nuestro archivo HTML (..nuestro código proporcionado en la primera descarga, como podrá observar, esta configurado para trabajar con la versión extjs-3.3.1, y por supuesto ya hemos verificado que esta versión es completamente compatible con la última versión ExtJs-3.4 que es la recomendamos debe utilizar). Reiteramos que no olvide verificar las rutas relativas a "www" de nuestra carpeta AppServ sean correctas a las indicadas en las directivas de nuestros archivos "index.html", ó el archivo script  01.GVisualization-sample.html para el caso de la primera descarga.

Nota2.- si va a realizar directamente sus pruebas sobre un servicio de Hosting Apache-PHP-MySQL externo -como www.x10hosting.com u otro- Cerciórese primero de registrar correctamente su dominio; y asimismo de Registrar su propia API Key de Google Maps (si sigue el enlace indicado observará que para acceder a una API Key de Google Maps deberá indicar la dirección web de la website donde será empleada, por supuesto que Ud. podrá registrar varias website o dominios si es necesario), caso contrario, la API de Google Contacts al acceder a su pagina le mostrará respectivos mensajes de error y no le permitirá el acceso a su aplicación; pero en caso de servidores locales Google permite el uso de cualquier API Key registrado con su cuenta Google o cualquiera de las API "públicas" que se utilizan en el Google Code Playground, como es el caso que se utiliza en el material de apoyo de nuestra descarga)

Nota3.- Obsérvese que la API de Google Contacs se encuentran definidas en http://www.google.com/jsapi, y no requiere de un registro personalizado como en el caso de Google Maps (lo mismo ocurre con la API Ajax de Google -para usar Javascript y sus framework como JQuery, Dojo, Prototype, etc- , así como Google language, Google Search, Blogger, entre otros (herramientas que utilizamos incluso en el desarrollo de este Blog), y para lo cual se necesita registrar un API Key personalizado asociado al dominio donde se colgara nuestra aplicación, y para obtener estas API Keys solo es necesario como requisito tener una cuenta Google (refiriéndonos por ejemplo a una cuenta gmail)


Detalle del Modulo.

1. Para poner en funcionamiento el modulo necesitamos en primer lugar, tener una cuenta activa en Google, si no tenemos una, pues sigamos las indicaciones de la pantalla de acceso de Google Accounts, luego de haber seleccionado la opción "login", y así tener acceso a las opciones del módulo, y observar su funcionamiento.



Si desea revisar algo de teoría respecto a Autenticación de Cuentas Google ya les había sugerido revisar el siguiente link que emplea Javascript para dicho propósito:

http://code.google.com/intl/es-ES/apis/gdata/docs/js-authsub.html


NOTA IMPORTANTE :

Resulta que, si siguen el enlace indicado, podrán observar que el sistema de autorización "AuthSub for JavaScript" de Google ya no se encuentra disponible, por lo que nuestro botón "Login" de nuestro codelab no permite el acceso a nuestro ejercicio.. asimismo, la documentación de Google nos recomienda que utilicemos ahora "OAuth 2.0 for client-side applications", vale decir, tendremos que utilizar Google API Javascript Client para poder acceder a nuestras aplicaciones (u otra API cliente según la plataforma back-end que utilicemos, tal como PHP, Java, .NET, entre otros), pero en nuestro caso, como solo estamos trabajando aplicaciones por el lado del cliente, tendremos que recurrir a la librería cliente para Javascript indicada.

Por lo que, mientras adecuamos nuestro código, resulta conveniente que NO CONSIDEREN el proceso de acceso a la aplicación de la siguiente manera:

function activando(auth) {
  var c = Ext.getCmp('center');
  //google.accounts.user.login('http://www.google.com/m8/feeds/');
  auth = true;
  c.enable();
  c.update('');
  if (auth) {
    vistree.enable();
  };
};

within from : MenuGVisualization_01.js


TRABAJANDO CON OAUTH 2.0 :

por supuesto, a la brevedad trataremos de actualizar todos nuestros códigos para que trabajen con el protocolo OAuth20, pero como adelanto tenemos este código y su demo que hemos cargado a la plataforma GAE (Google App Engine), pero que usted puede probar en su servidor local de pruebas..

 ..now you can test our IntGoogle01-Oauth demo  (New!) .
the demo may prompt popup window (you must enable it)

IntGoogle01-OAuth20.rar ( 2.06Mb ), Este código corresponde a nuestro mismo codelab pero adecuado al protocolo OAuth 2.0 version 2, utilizando la "Google API Javascript Client", la cual en esta versión, incluso nos permite acceder directamente al email de nuestros usuarios.

Es importante indicar que la documentación de Google nos indica que ahora debemos trabajar con OAuth 2.0 que se esta convirtiendo en el estándar de autenticacion y autorización para acceder a nuestras cuentas y poder utilizar las API de Google, por ello hemos adecuado nuestro codelab a dicho estandar debiéndose tener en cuenta lo siguiente:

  • Crear un nuevo proyecto en el Google API Console, con el nombre mas adecuado que queramos
  • Crear una "OAuth 2.0 Client ID" en la opción API Access de la consola.. allí podremos indicar el nombre de nuestra aplicación y la URL de un logo que la represente ..a continuación debemos indicar el tipo de nuestra aplicación ("web application" en nuestro caso), y la URL de nuestra aplicación (acepta http://localhost ó http://localhost:8080 para trabajar con nuestro servidor local de pruebas, debiendo verificar que se elija correctamente el protocolo "http ó https" y la ruta completa de acceso a nuestra aplicación para que todo funcione correctamente); por lo que al crear nuestra API Access se nos indicará la carpeta "Redirect URI" donde se realizará el proceso de autenticación y autorización OAuth 2.0 solicitado (si no ha sido creada debemos editar la configuración y registrar manualmente la carpeta donde se realizará el proceso, puede ser cualquiera dentro de "www" o crear la carpeta "oauth2callback" indicada)..
  • ..y finalmente, en la misma "Google API Console" debemos seleccionar a la opción "Services" y activar la "Google+ API" (debe estar "ON" y de color verde), lográndose con ello finalmente crear nuestra "API key" en forma automática.
  • y todo ya está listo! ..ahora al volver a la opción "API Access" de nuestra aplicación, ya tendremos disponible nuestro "Client ID" y la "API Key" (dentro de "Simple Access API"), estos datos son las que debemos utilizar y reemplazar en el archivo "index.html" de nuestra aplicación para que todo pueda funcionar correctamente.

    Conviene también revisar las diferentes opciones que nos presenta la "Google API Console" pues nos puede ser necesarias como crear, modificar, renombrar, eliminar proyectos principalmente.

  • ..y ahora a probar nuestra aplicación IntGoogle01-Oauth20 !
  • y una ultima indicación.. Como estamos trabajando con la Google Maps API v2, tenemos que activar el servicio "Google Maps API v2" en la API consola, y registrar nuestra API Key al importar la API en nuestro proyecto antes de subirlo a un servicio de hosting con un dominio personalizado y así puedan funcionar los mapas de nuestro proyecto sin mayores inconvenientes (aunque la Google Maps API v2 solo estará activa hasta Marzo 2013, por lo que debemos programar nuestras actualizacion a la API v.3)..por supuesto, al trabajar con nuestro servidor local "localhost" no se presentan problemas.. el asunto es, como indicamos, al cargar nuestros proyectos a un servicio de hosting externo cualquiera.. como Godaddy, HostGator, myHosting, otros ó sobre plataforma GAE (Google App Engine), que es donde esta corriendo nuestra demo..


2. Al revisar con mayor detalle los archivos desempaquetados de nuestro material de apoyo encontraremos los siguientes archivos:

  • 01.GVisualization-sample.html (ó index.html), que contiene las instrucciones y etiquetas HTML necesarias para "llamar" a los componentes del framework ExtJs y a las API de Google, entre otras importaciones y configuraciones.
  • MenuGVisualization_01.js, que contiene las instrucciones Javascript en ExtJs que visualizan el Menú y Árbol de opciones de nuestro ejemplo, así como el código que nos permite el acceso a las opciones del Modulo, por medio de la API Contacts de Google.
  • GoogleCharts.js, que contiene las instrucciones Javascript en ExtJs, que nos permiten visualizar, en esta primera parte del proyecto, data asignada en simples "array", pero utilizando las Visualizaciones Google, que representará para nosotros, nuestro primer nivel de Integración al mundo Google.
  • GVisualizationPanel.js, que contiene las instrucciones Javascript en ExtJs que construyen las "extensiones" que nos permiten utilizar Visualizaciones Google sobre ExtJs
  • GVisualizationMaps.js, que contiene las instrucciones Javascript en ExtJs que construyen la "extensión" que nos permiten utilizar Google Maps sobre ExtJs
  • carpeta icons, que contiene archivos gráficos GIF, PNG que utilizamos en este ejemplo.

En nuestro archivo HTML resulta curiosa la instrucción mediante el cual, cargamos sin mayor propósito un archivo gráfico (en este caso "icons/mypic.gif", aunque pudo ser cualquier otro), y esto es porque uno de los requisitos para la autenticación de una cuenta, es brindar a Google un objeto que pertenezca al entorno del servidor que esta solicitando el servicio de acceso, para identificar su ubicación  y detectar si la ruta del mismo se encuentre registrada, caso contrario emitirá un mensaje de seguridad al respecto, pero nos permitirá continuar; pero de eliminarse esta línea, Google sencillamente emitirá un mensaje de error y abortará el proceso.

3. Cabe resaltar que en este proyecto estamos utilizando métodos de desarrollo que emplearíamos en proyectos reales como es el uso de "namespace", compartiendo las aplicaciones en diferentes archivos js (imagínense si todos nuestro código lo escribamos en un único archivo js. sería inmanejable), así como mostramos el uso de extensiones, funciones "xtype", manejo de "regiones" y viewports, entre otros puntos cuyo detalle podemos revisar en diversos capitulos del Curso ExtJs de Quizzpot..

4. En el archivo "01.GVisualization-sample.html" (ó archivos "index.html" según nuestra descarga), se encuentran comentadas casi todas las líneas explicando paso a paso que realizan, especialmente las empleadas para la importación de las librerías del framework ExtJs, y las correspondientes a las API de Google.

5. En el archivo "GoogleCharts.js", se encuentran detalladas cada una de las funciones llamadas desde "MenuGVisualization_01.js", que muestran el código de cada Visualización Google empleada, y entre ellas tenemos:

Integracion.Google.GoogleTable, que muestra un simple "grid"  a partir de un store elaborado por un array de datos que muestra los nombres de los empleados de una empresa (tabla que despues utilizamos para mostrar como integrar una visualización tipo organigrama utilizando esta misma data) ..debiendo indicar que todas las opciones vigentes para la Visualización Table de Google, se encuentran detalladas en :

http://code.google.com/intl/es-ES/apis/visualization/documentation/gallery/table.html



Integracion.Google.lineChartLink, que muestra un simple "LineChart" elaborado a partir de otro store elaborado a partir de las compras y ventas por años de una empresa cualquiera,  cuyas opciones de configuración, métodos, manejo de eventos y otros aspectos de esta visualización de Google, los que se encuentran detallados en :

http://code.google.com/intl/es-ES/apis/visualization/documentation/gallery/linechart.html



Integracion.Google.pieChartLink, que muestra un "PieChart", cuyas opciones vigentes de configuración, manejo de eventos y otros aspectos se encuentran detalladas en :

http://code.google.com/apis/visualization/documentation/gallery/piechart.html



Integracion.Google.gaugesLink, que muestra ejemplo de uso de Gauges, y cuyas opciones vigentes de configuración y manejo de eventos encuentran detalladas en :

http://code.google.com/intl/es-ES/apis/visualization/documentation/gallery/gauge.html


Integracion.Google.intensityMapLink, que muestra un ejemplo de uso de Mapas mundiales con "carga de data"... cuyas opciones de configuración y detalle vigentes para esta visualización se encuentran detalladas en :

http://code.google.com/apis/visualization/documentation/gallery/intensitymap.html


Integracion.Google.orgChartLink, que muestra un ejemplo de "Organizational Chart" cargado sobre la misma data que se uso en la primera visualización Table, y dividiendo el sector en 02 regiones, y con el adicional de mostrarnos una introducción del manejo de eventos (nótese que al seleccionar un nombre de organigrama se selecciona también su correspondiente en la Tabla, y viceversa). Todas las opciones de configuración y detalle de esta visualización se encuentran detalladas en :

http://code.google.com/intl/es-ES/apis/visualization/documentation/gallery/orgchart.html



Integracion.Google.myGoogleMaps, que nos muestra un ejemplo de uso del API de Google Maps, y que al ser tratada como una visualización, nos muestra como utilizarlos dentro de paneles ExtJS, y a los que se ha adicionado una simple barra de botones para agregar algun plano adicional ó una Visualizacion StretView, cuya forma de construcción, configuración, manejo de eventos y otros conceptos son detallados en la documentación del API de Google Maps, la que podemos revisar en :

http://code.google.com/intl/es-ES/apis/visualization/documentation/gallery/map.html



Cabe reiterar asimismo, que para poder utilizar Google Maps hay que utilizar una API Maps Key, y que preferentemente deba ser propia (para que Google nos registre, mida la cantidad de uso de nuestras aplicaciones y "nos vaya reconociendo")... la API key que estamos utilizando en este codelab corresponde a una API Key "pública" tomada de los ejercicios del Code Playground la que debe funcionar sin ningun problema en nuestros servidores locales.

Estas son solo alguna de las opciones de Visualización Google que les estamos presentando, pero en realidad Google tiene varias opciones que vale la pena revisar en :

http://code.google.com/intl/es-ES/apis/visualization/documentation/gallery.html

Por supuesto que ExtJs tiene sus propias visualizaciones, y algunas son muy interesantes y potentes, como es el caso de las opciones de "agrupación" y "filtrado" de Tablas (que mostraremos posteriormente en nuestro siguiente "codelab"), pero es interesante mostrar que podemos Integrar las opciones Google dentro de ExtJs sin mayores contratiempos, y ello lo efectuamos a través de las "extensiones" detalladas en :

  • GVisualizationMaps.js, para la Visualizacion de Google Maps en particular, por cuanto esta es una implementación del API de Google Maps, cuyas generalidades podemos empezar a revisar en: http://code.google.com/intl/es-ES/apis/maps/

Algunas conclusiones

Esta es la primera parte del proceso de Integración Google utilizando al entorno de desarrollo del framework ExtJs, y su objetivo es mostrar que dentro del entorno Google es posible utilizar nuestras cuentas (direcciones de gmail en este caso), como nombre de usuario - con su respectivo password - para poder tener acceso a nuestros proyectos (a nuestro modulo de visualizaciones en este caso), del mismo modo como lo hacemos con nuestros programas y sistemas de escritorio, algo que debemos tomar muy en cuenta cuando se trabaja por ejemplo con "Google Apps", que es actualmente una opción que esta empezando a ser muy utilizada por empresas y organizaciones de todo tipo. Asimismo, este ejercicio permite mostrarnos un modelo simplificado de un Menu Tree-panel bastante utilizado en desarrollos web.

En nuestro próximo ejercicio detallaremos como Integrarnos con Google utilizando Google Spreadsheets como fuentes de datos (hojas de calculo), con un caso practico que nos permita empezar con el manejo de "datasources" y bases de datos de uso más difundido como MySQL u otros.

y finalmente como podrán observar, nuestro codelab esta completamente desarrollado con herramientas Javascript, y en particular, en nuestro código que muestra el uso del protocolo OAuth 2.0 utilizamos las siguientes herramientas:

Que ventaja obtenemos? ..teniendo toda nuestra información requerida en la capa cliente (variables javascript en este caso), podremos "grabarla" en la base de datos de nuestra elección, y utilizando un lenguaje de programación de lado del servidor de nuestra preferencia (PHP, Java, Python, nodeJS, DART, Go, otros.)..vale decir, crear nuestra "comunidad" anexa a nuestra organización empresa ó emprendimiento; y empezar a interactuar con ella.. y por poner un ejemplo, en nuestro caso, al tratarse nuestro proyecto de una comunidad bastante especializado, que tal vez no llegue a millones de usuarios, ó que definitivamente tomaría bastante tiempo para llegar a ese nivel, hemos elegido como Back-End: Google Apps Script(GAS) y las Google Spreadsheets.. vale decir, cada vez que un usuario se registre en nuestros demos, su información básica de contacto será grabada en una hoja de calculo con una capacidad de almacenamiento máxima de 400,000 celdas vigente en el momento, suficiente para iniciar nuestra primera experiencia Social Media management con nuestros propios seguidores..



Saludos
@Mlaynes

Opina en nuestro foro §FB..!




marzo 13, 2010

Google busca bronca


Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

Un comentario respecto al articulo "Google busca bronca" escrito por Sergio LLerena, y publicado por la revista Somos del diario ElComercio, Lima PE..














Aunque el articulo hace más referencia respecto a lo que son los navegadores (los que son nuestra puerta de entrada a Internet), pues tanto Google como Microsoft no solo desarrollan navegadores, pues como algo se menciona, también estamos hablando de sistemas operativos (Windows 7 vs Chrome OS), suites (MS-Office vs Google Docs), redes sociales (Windows Live vs Google Buzz), lenguajes de programación (VB, .Net, ASP vs Go, Phylon, Android, y todo el mundo de desarrollo opensource: como HTML, Java, PHP, Javascript, etc. de los que Google es un verdadero promotor), y muchos otros productos .. pues es importantísimo resaltar que mientras Microsoft es software "propietario", por lo que hay que pagar para poder utilizarla; pues Google Inc. es una marca registrada cuyos productos informáticos en su mayoría operan bajo licenciamiento opensource o de código abierto, es decir, por lo que "no tenemos que pagar para poder utilizarla", y como ya es una realidad, resulta estupendo ver como dicho software, es tanto o mejor que por los que teníamos que pagar.







Y bueno, bajo estos conceptos, esto no solo es una pelea.. sino una verdadera guerra por la supervivencia; Google, como indica el articulo, no solo es un producto post-Internet, sino que, como Facebook, Twitter, Netlog, etc. y miles de proyectos (en la destaca por brillo propio el proyecto GNU/Linux y sus múltiples distribuciones), todos ellos son hijos de la "era opensource" (que poco o nada utilizan de la tecnología microsoft), y no les interesa y no les resulta necesario cobrar a sus "usuarios", por el contrario, los invita a participar en sus desarrollos y pruebas, y por supuesto que tienen ingresos. Google es también un gigante multimillonario, pero su negocio no es vender software, sino publicidad, aunque ahora le entra a todo lo que es tecnología, incluido las comunicaciones (telefonía celular), la energía, y un largo etc..







El mundo de la informática ha cambiado y va a seguir cambiando nuestras formas de ver el mundo y "hacer negocios", pero creo que ya es hora que se empiece a tomar en serio al mundo del software libre, que se mueve muy bien dentro del ambiente universitario (ya se merece su artículo!!), en donde quienes participamos de este enfoque, nos preocupa más investigar, desarrollar, promover y mejorar aplicativos que sean "útiles" para su uso comercial, social, gubernamental ó lúdico, sin pensar si nos alcanza la billetera para adquirir las herramientas para poder crearlas.





Un avance de Integración a Google


Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

Habiendo revisado con mas detalle lo correspondiente al mundo Google, observo que para facilitar su aprendizaje e integración al mundo Web, podría ser conveniente seguir los siguientes pasos:


1.- Aprender ahora si a utilizar las API Ajax de Google
     Las API AJAX de Google nos permiten crear sitios web completos y dinámicos utilizando únicamente Javascript y HTML. Pudiéndose insertar mapas, graficos o un cuadro de búsqueda dinámico en tu sitio web, o descargar feeds con tan solo unas líneas de JavaScript:

para revisar las diferentes opciones ofrecidas:

https://developers.google.com/products/



para revisar la parte práctica :

http://code.google.com/apis/ajax/playground/



Para que hagamos nuestras pruebas, solo basta con copiar los archivos html que nos presenta el Code Playground de Google, y grabarlos con nombres apropiados en una carpeta que podríamos llamar "Apicode" dentro de "www" de nuestro servidor local ( htpp://localhost ), y ejecutarlos con nuestro navegador, como hacemos con los ejemplos del curso ExtJs de Quizzpot.

El Code Playground de Google es también bastante interesante porque tiene entre sus opciones la posibilidad de cambiar el código y hacer nuestras propias pruebas desde el mismo entorno Playground, y no presenta mayores dificultades para su manejo y comprensión; no ocurre lo mismo con el entorno de desarrollo de Gadgets de Google GGE (el Google Gadget Editor), el cual si es un poco problemático para usar, y que espero que cuando veamos las API Gadgets de Google, pues ojala haya mejorado algo, bueno.. tambien algunos tips para trabajar y no tener mayores problemas.

2.- De las API Visualization de Google en particular resulta interesante observar que se puede integrar estas visualizaciones (Herramientas de Google Charts), a diferentes fuentes de datos, lo que podemos revisar con mas detalle en:

https://developers.google.com/chart/interactive/docs/dev/implementing_data_source/



...pero como tal vez nos resulte un poco complicado entender todas las opciones de fuente de datos disponibles para investigar, y tal vez sea conveniente empezar utilizando "spreadsheets" (hojas de Cálculo) de Google Docs como fuente de datos :

https://developers.google.com/chart/interactive/docs/dev/implementing_data_source/



3.- Después de revisar toda lo indicado en el punto anterior, resulta necesario probar algunos ejemplos para ver como implementar una fuente de datos, y como ya hemos sugerido resulta más fácil y conveniente empezar utilizando Spreadsheets de Google Docs como fuente de datos, así que revisemos con detalle los siguientes ejemplos del Code Playground :

http://code.google.com/apis/ajax/playground/?type=visualization#data_source_request

http://code.google.com/apis/ajax/playground/?type=visualization#using_the_query_language,

http://code.google.com/apis/ajax/playground/?type=visualization#more_query_options, aunque esta ultima opción utiliza formatos predeterminados de Google.

El empleo de las Hojas de Calculo Google resulta bastante interesante por cuanto, en primer lugar, son ejemplos sencillos y fáciles de probar (sin necesidad de haber instalado un motor de base de datos como MySQL, SQL Server, Firebird, Oracle, etc); y con ella también podemos fácilmente crear nuestras propias tablas en Google Docs, y utilizarlas en nuestras pruebas (y así podremos realmente observar la funcionalidad de utilizar Google Spreadsheet como fuente de datos); y en segundo lugar, porque para un pequeño negocio, facilmente se puede llevar su manejo administrativo empleándolas en lugar de base de datos como MySQL, SQLite, PostgreSQL, Oracle o SQLServer; cuya integración para su uso son algo más complejos, y fácilmente ya podríamos iniciarnos en el manejo de aplicaciones comerciales prácticas y sencillas, que bien ya podríamos implementar.

4.- Ya en este punto resulta necesario empezar con una revisión de la API de Cuentas de Google por lo es bueno ir leyendo:

https://developers.google.com/accounts/


Esto con el objeto de aprender a utilizar nustra Cuenta Google para Autenticarnos y Autorizar el acceso o uso de nuestros datos personales, el acceso a nuestras aplicaciones, a nuestras hojas de calculo y otros, a los que se debe permitir su uso ó ser revisadas, solamente por las personas quienes se les quiera dar acceso (además de compartir tablas con atributos de modificación o solo lectura dentro de los entorno de Google Docs ó Google Apps), resultando con todo ello que nuestras aplicaciones sean mas interesantes.

Téngase presente que a este nivel, ya nos resulta imprescindible tener nuestra Cuenta Google propia (la podemos crear utilizando nuestra cuenta hotmail u otra que utilicemos, pero conviene una gmail por cuanto nos permite el acceso a todas los elementos y herramientas de Google+), por lo que es recomendable crear una cuenta "gmail" nueva, con nuestro nombre y datos verdaderos, diferente a las que tengamos para otros usos, y anexar nuestras otras cuentas a esta nueva cuenta.

Anteriormente, era importante prestar bastante atención en revisar lo correspondiente al Protocolo de Uso de AuthSub en la Biblioteca de datos de Google de JavaScript de cliente, en el siguiente link:

http://code.google.com/intl/es-ES/apis/gdata/docs/js-authsub.html

..pero como podrán observar, este servicio ya no se encuentra disponible, y esto porque Google, en una gran cambio que ha efectuado respecto al manejo de sus cuentas, a implementado como elemento principal de toda su plataforma, el uso del protocolo OAuth (OAuth v2.0 en particular), por lo que muchos otros protocolos implementados anteriormente por Google ya han sido descartados.. pero Oauth v2.0 no solo esta disponible para diversos clientes como PHP, Java, Python, Go, NodeJS.. sino que también para Javascript, lo que nos permite su uso por el front-side en cualquier aplicación o desarrollo web, por lo que conviene empezar con revisar el siguiente enlace:

https://code.google.com/p/google-api-javascript-client/

Bueno, a estas alturas ya nos debe resultar mas sencillo comprender todo el manejo del entorno de Google en lo que respecta a sus herramientas e integracion a aplicaciones Web... las que iremos profundizando poco a poco en los siguientes posts, donde les voy a presentar un ejemplo, completo y sencillo que ya tengo casi terminado, de como integrar todas estas herramientas de Google dentro de una aplicación desarrollada con ExtJS, que incluya autenticacion de cuenta Google (para acceder al modulo), empleo de visualizaciones Google dentro de paneles ExtJS, empleo de Spreadsheets, uso indistinto de Grids Google y Grids ExtJS, utilizando por el momento a Google Spreadsheet como fuente de datos.

Pero no se preocupen si por ahora solo estamos utilizando las hojas de calculo de Google para empezar nuestro proceso de integración a integrarnos a Google; también vamos a presentar más adelante, un ejemplo detallado y sencillo de conexión utilizando como back-end PHP-MySQL, Java-MySQL, utilizando el datastore "big table" de la plataforma Google App Engine (GAE); y para lo cual utilizaremos la fuente de datos que instalaremos en nuestro Servidor Local de Pruebas, como Appserv (vea el post "empezando desde cero"), y otros que iremos descubriendo..

Como siempre no duden en postear cualquier inconveniente o interés que tengan.. y comentarnos sus pruebas y desarrollos, ahora en nuestras cajas de comentarios Facebook que hemos añadido a cada una de nuestras entradas.



Opina sobre las herramientas y API de Google





marzo 12, 2010

El potencial de ExtJS


Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

Si Ud. amigo lector ha revisado los post anteriores y han empezado con el Curso de EXtJS que nos brinda Crysfel Villa en su página web del Quizzpot, pues entonces creo que resulta necesario que puedan observar porque realmente nos resultó interesante ExtJS y lo consideramos un framework bastante importante...

Cursos Ext-3.x del Quizzpot :

A estas alturas, ya deben haber instalado su servidor Apache+MySQL +PHP+PHPMyAdmin y debe estar en funcionamiento, por lo que al ingresar "http://localhost" en la barra de direcciones de su navegador les debe aparecer lo siguiente:


tools01

Dicha imagen nos indica que nuestro servidor local esta funcionando sin mayores contratiempos.. y aparece así porque en la carpeta "www" de c:/Appserv (o la carpeta donde hayamos elegido instalar nuestro servidor), están los archivos index.php y phpinfo.php; resulta necesario aclarar, si aún no es de su conocimiento, que los archivos "index" (sean php, html, entre otros), son de ejecución automática cuando se ingrese a las carpetas que los contienen, porque así puede ser configurado por defecto (el standard es index.php), lo que podemos comprobar empezando a examinar la información que nos presenta el link "PHP Information" de la pagina mostrada en la figura...

Si no desea que aparezca esta pagina al ingresar a nuestro servidor local ("localhost"), pues sencillamente ingrese con su explorador a la carpeta en "www" y renombre index.php por Server.php por ejemplo.. y con ello lograra que cuando ingrese a "localhost" aparezca directamente el directorio del servidor (como aparecen en el Curso ExtJS de Quizzpot).

No le recomendamos eliminar esos archivos, por cuanto nos van a ser útiles cuando queramos trabajar con la base de datos MySQL ( y utilicemos PHPMyAdmin para administrarla), ó cuando queramos ver o revisar la configuración de nuestro servidor Apache y de PHP ( mediante PHPInfo.php, ...pero ténganse en cuenta, que para ingresar a los servicios del servidor, debe ahora hacer click en el ahora archivo Server.php (o abrirlo en otra pestaña).

Si ya han seguido y probado los primeros capítulos del Curso de ExtJS, y siguiendo las recomendaciones de Crysfel, deben haber bajado la ultima versión de ExtJS de su pagina oficial, aunque debo reiterarles que la ultima versión compatible 100% con la versión ExtJs utilizada en el primer curso de Crysfel es la versión ExtJs-3.4.0, y es en la que debemos utilizar y copiar en nuestra carpeta "Ext-3.4.0" los archivos básicos de ExtJs indicados en el curso (si queremos que los ejemplos funcionen tal como están). Cabe indicar asimismo que los capítulos iniciales del curso y de manejo básico del framework funcionan tal como están con ExtJs3 y ExtJs4 (por cuanto ExtJs4 reconoce las formas basicas de declaración de clases de Ext-3.x), aunque esta ultima versión sugiere una implementación MVC, y una forma de declaración de componentes de ExtJs orientada a agilizar la carga de los mismos.. y bueno.. nuestra recomendación al respecto es que el curso lo trabajen con la versión Extjs-3.4.0 y sencillamente a la hora de importar la biblioteca de ExtJs en nuestras aplicaciones o ejemplos, reemplacemos la ruta de ExtJs-2.2 que indican en el tutorial de Crysfel, y pongamos el nombre de la carpeta que corresponda a la versión de ExtJs-3.x que estemos utilizando...

Asimismo, también les recomiendo crear en la carpeta "www" de nuestro servidor Appserv, una carpeta que podriamos llamar GoogleCode, y en donde podríamos guardar nuestros propios archivos HTML que podamos copiar los ejercicios del Code Playground de Google y probar en nuestro propio servidor las herramientas y API de Google que queramos integrar a nuestros desarrollos Web, e inclusive por supuesto a nuestros desarrollos con ExtJs.

Pero hoy les propongo hacer algo más interesante... cuando hayamos bajado nuestra versión de ExtJs (la versión ExtJs-4.0.7 vigente al 02/01/2012, la versión ExtJs-4.1 aún esta en su etapa "beta" ), probablemente la hemos hecho en una carpeta cualquiera.. y de allí hayamos copiado los archivos como nos indicó Crysfel en la carpeta "Curso"... pues, mejor copiemos toda la carpeta que contiene todo nuestro ExtJs que hemos bajado también en "www", siempre revisando la web oficial de ExtJS para asegurarnos que estemos trabajando con la ultima versión vigente de ExtJs


tools02

Ingresemos ahora a nuestro navegador y en la barra de direcciones coloquemos los links:
localhost/Ext-4.0.7 (o la versión que hayamos bajado), y revisemos allí su opción "View the Examples", equivalente a la ruta: localhost/Ext-4.0.7/examples




Si no tenemos algun contratiempo debemos observar la web de ejemplos de ExtJS correspondiente a la versión que estemos utilizando... si es la última versión debe coincidir con la que muestra ExtJS en su pagina oficial:




Si observamos la barra de direcciones de nuestro navegador de nuestra primera carga, nos daremos cuenta que hacemos referencia a archivos grabados en nuestro disco (como puede observar estimado lector, toda la web oficial de ExtJs ha sido programada íntegramente en ExtJs, y la parte correspondiente a los ejemplos, la tenemos ahora grabada en nuestro disco); y sabiendo cuales son esos archivos, sencillamente los podremos revisar, copiar, modificar y utilizar durante nuestro proceso de aprendizaje... y de paso, observar las equivalencias y diferencias entre el código ExtJs-3.x del tutorial del Quizzpot, con el código de la versión ExtJs4, y así poder actualizarnos y realmente observar todo el potencial de éste framework, y que lo hace sumamente útil para desarrollar aplicaciones administrativas de "apariencia" similar a los que nos presentan cualquiera de los lenguajes de desarrollo convencionales, con el uso de ventanas, menús, grillas, formularios, etc... pero integrado completamente a la web.. y a bases de datos... asimismo, ExtJs abarca y hace posible el desarrollo de opciones que observamos en las mejores paginas web.

Ahora si revisamos las muestras nos encontraremos que varias de ellas nos permiten trabajar con pantallas muy similares a cuando hacemos nuestros desarrollos para sistemas de escritorio con ventanas, grids, forms, manejo de eventos, etc.. vale decir, todo lo necesario para empezar a desarrollar "sistemas" todo a la Web !






Algo similar ocurre si en lugar de utilizar ExtJs-4.0 empleamos la ultima versión de ExtJs-3.4 disponible, y cuya link hemos indicado, y observar la documentación de la versión y los ejemplos que nos muestran bajo el codigo de la version ExtJs-3.x, y que son equivalentes a los utilizados en el Tutorial de Crysfel, pero cabe dar una revisión a las características y mejoras de ExtJs-4.0, y empezar tambien nuestras pruebas bajo esta versión.. que nos presenta varias ventajas que para nosotros desarrolladores Web debemos empezar a revisar, pues nos permite un mejor manejo interno de los componentes del framework, y por supuesto, una increíble mejora de nuestro potencial de programación.







NOTA IMPORTANTE: Si deseamos empezar a trabajar con ExtJs4 y empezar a utilizar esta versión con los ejercicios propuestos por el Curso ExtJs-3.x de Quizzpot, debemos tener presente que para crear nuestra versión "liviana" de ExtJs4 debemos copiar dentro de una carpeta ExtJs-4 el archivo ext-all.js y la carpeta resources de nuestra fuente descargada de ExtJs4. Asimismo, para la importación de las librerías de ExtJs4 solo es necesario importar a ext-all.js mediante en siguiente script que va dentro del Head de nuestra aplicación:


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>Ext.Panel</title>
  <!-- Importar los estilos -->
  <link rel="stylesheet" type="text/css" href="../js/Ext/resources/css/ext-all.css" />

  <!-- Importar el ext-all-dev.js -->
  <script type="text/javascript" src="../js/Ext/ext-all-dev.js"></script>

  <script type="text/javascript" >
      Ext.onReady(function(){
          alert("ExtJs4 esta instalado correctamente!");
      });
  </script>
</head>
<body>
<div id="center">
<h1>Bienvenido ExtJs4...</h1>
</div>
</body>
</html>

(en la versión ExtJs4 ya no existe ni es necesario importar el "adapter")
Nota:

ExtJs es un framework de Javascript realmente potente.. y por eso mi interés de integrarlo con el mundo Google, el cual también es bastante importante... además, si han revisado los primeros links presentados referidos al mundo Google, deben notar que ExtCore esta completamente integrado a Google a través de sus API de Biblioteca AJAX; por ello los invito a bajar ExtCore y grabarlo también en "www", y observe los ejemplos que nos presenta... ExtCore no ocupa mucho espacio de disco y presenta algunos ejemplos interesantes que podemos probar y unir a nuestros proyectos...


El Potencial de ExtJs4

desde este 2011 Sencha lanza al mercado ExtJs4, y realmente esta si es una gran renovación y cambio de conceptos respecto a las versiones ExtJs-3.x..anteriores; y los cambios se plantean desde de los propios fundamentos del framework, como es la declaración de Clases y modos de Herencia y Manejo de prototipos, y aunque las formas de declaración y uso de clases de las versiones anteriores son soportadas en ExtJS4....este es realmente the New Way ExtJs4 con evidentes ventajas por supuesto... y es que ExtJS4 busca abarcar todos los conceptos vigentes de Desarrollo Web como es HTML5 y CSS3, y lo que es muy importante, el uso de la Arquitectura MVC para el desarrollo de aplicaciones sustentado en el propio diseño y concepto del framework, y no en el desarrollador como esta planteado en la mayoría de frameworks; lo que facilita su uso en el desarrollo, mantenimiento e integración de componentes en desarrollos grandes, con la participación incluso de varios desarrolladores. Se une a todo lo anterior, el lanzamiento del SDK de Sencha, el cual es una herramienta que nos permite optimizar nuestros desarrollos antes de ponerlos en producción, lograndose que solo se grabe en nuestro "hosting" los componentes de ExtJs necesarios para nuestro proyecto, y "ofuscando": incluso nuestro código, lográndose una notable mejora en el tiempo de carga y respuesta de nuestros desarrollos (hasta 2 veces mas rápido) ..y por supuesto, una mejora del "peso" de nuestras aplicaciones - hasta 50% menos de espacio de disco - y consideramos que todas estas novedades hacen a ExtJs4 un framework bastante importante.


En lo que respecta a estas novedades conviene que revisemos y sigamos con detalle los conceptos expresados en la documentación de ExtJs4 :

y asimismo, revisemos el resto de temas relacionados al framework, de la misma documentación, especialmente los temas respecto al Sistema de Clases y la Arquitectura MVC para aplicaciones, donde se detalla a manera de codelabs casos practicos para mayor entendimiento de cada tema..

una mirada al mundo ExtJS...




Google como hemos indicado utiliza tambien una version liviana de ExtJS como ExtCore, pero el potencial de este framework radica en que partiendo de las formas de esta librería Javascript se ha desarrollado Sencha Touch, que es una variación de ExtJs especializada para desarrollos web para móviles Apple, iOS y Android, (teléfonos celulares, tablets, pockets, etc.); y lo que es una interesante novedad, ExtJs4 inicia la integración del manejo de ExtJs con Sencha Touch. Asimismo en este framework tenemos Ext-GWT, como un framework especializado para el entorno Java y el desarrollo web usando Google Web Toolkit (Java software development framework); y no debemos perdernos la oportunidad de revisar Ext-Designer (un IDE gráfico para diseño de aplicaciones ExtJs), Ext-Animator y Sencha.io versión beta; y cabe resaltar que con Node.js y el motor V8 ya estamos en el camino para emplear Javascript desde el lado de Servidor (como un back-end con capacidades asincronas de alto rendimiento), y Sencha.com ya esta incursionando por ese lado con Ext-Direct, así que como podrá observarse, aún se espera mucho en el desarrollo de este framework.

En nuestro siguiente post: Integracion Google 1ra. parte, mostraremos como empezar a integrar ExtJs con alguna de las API de Google (en versión ExtJs-3.x y ExtJs4), por lo que si están siguiendo el Curso de Crysfel, los animo a continuar... pues como indique, ese curso es uno de los más completos que hemos encontrado (y bastante practico en lo que respecta a la teoría de manejo de clases asociados a la programación orientada a objetos POO), esto por la forma que esta planteado, y aunque no siempre hay ayudas visuales, pues no se preocupen, si tienen dudas o no funciona algo... posteen en el mismo curso, el foro de Quizzpot, o por nuestro bloque de comentarios facebook si lo desean...los que siempre serán bienvenidos y considerados en lo posible...