abril 04, 2010

Integracion a Google (2da 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.

(Actualizado al 21/04/2012)
Esta es la segunda parte de nuestro proyecto de Integración de Google al entorno de desarrollo del framework ExtJs, tal como habíamos prometido realizar, y cuyo objeto es unir las ventajas que nos ofrece ExtJs, y el innegable aporte de Google al desarrollo del mundo Web, y en esta oportunidad vamos a centrar nuestra atención en el uso de Spreadsheets de Google como fuente de datos, y esto porque es una forma bastante rápida para familiarizarnos con el uso de las herramientas de desarrollo que nos brindan tanto ExtJs como Google para el desarrollo de aplicaciones "sencillas", que fácilmente bien podríamos desarrollar para pequeños negocios y otros..

En este caso, he considerado para este codelab el uso de una Hoja de Calculo con una única tabla, y que se diseñó para que personas ligadas a un negocio "retail" de Productos de Belleza y Cosmética pueda controlar su negocio: Ventas y Cobranza, con la "ventaja" que todo el "ingreso y actualización de datos" se puede realizar digitando directamente sobre una Hoja de Calculo usando Google Docs (ahora llamado Google Drive), pero que le permite consultar sus stocks de productos para venta, y los recordar los saldos por cobrar de sus clientes desde cualquier lugar con acceso a Internet (incluido s por supuesto teléfonos celulares, tablets, otros), y creemos que ya pueden imaginar que, esta simple herramienta resultó bastante importante, especialmente cuando ya se tiene varias decenas de clientes y cientos de productos colocados en plaza..

Este simple ejercicio puede aún complementarse con el empleo de "Google Apps Script", los que trabajan perfectamente dentro del entorno de las hojas de Calculo de Google Docs, y con el que podemos organizar el registro y captura de nuestros datos (compras, cobranzas, gastos, ventas, cobranzas, encuestas, citaciones, registro para eventos, etc.), validarlos, procesarlos, calcular nuestros stocks de productos y saldos por cobrar, y finalmente consolidar y sumarizar la información disponible para monitorear los resultados de nuestro negocio (utilidad, saldo en caja, etc), e incluso interactuar de una manera bastante sencilla con nuestros clientes remitiéndo en forma periódica ofertas, saldos, adeudos, promociones, etc.

 ..realmente me ha impresionado el potencial de las "Apps Script" (en pleno proceso de evolución), pero vale también resaltar que estas opciones tienen un limite, ahora de 10,000 lineas u operaciones por tabla, hasta 256 columnas, y un máximo de 400,000 celdas; que siendo una cuota importante (programándose cortes anuales ó mensuales según la carga de trabajo), y aún pudiendo esta cuota incrementarse, la realidad, es que esta es una herramienta apropiada para micro y pequeños negocios (hay varios cientos de miles de ellas aquí en Perú y Latinoamérica en general), pero para las empresas medianas, y las que tengan aspiraciones de crecer, por supuesto pueden utilizar estas herramientas para temas específicos y complementarios, pero tal ez ya no para la gestión completa del negocio, y por supuesto, estas empresas deben necesariamente, empezar a programar dentro de sus costos de operación y funcionamiento, a personal de Desarrollo y Soporte TI permanente, para enfocar sus respectivos casos y sus soluciones informáticas, bajo parámetros mas convencionales (empleo de Base de Datos, Departamentalización de procesos y Automatización de las área críticas (producción, ventas, cobranzas, contabilidad, etc.), todo por supuesto bajo un enfoque de sistemas, y tomando en consideración todas las herramientas y entornos cliente-servidor, "cloud & grid computing" vigentes y disponibles en el ahora interesante e importante mercado del desarrollo de software.

Pero lo que si debo destacar es que, las "Apps script" tiene como ventaja que su API permite entre otras, dos opciones importantes: la creación de Interfaz de Usuario personalizados (utilizando UI Service y GUI Builder), los que permiten que diseñemos nuestros pantallas de captura de datos y proceso de la información al grabarlas en nuestras tablas, así como también permiten la conexión a cualquier bases de datos mediante JDBC (lectura y escritura), con lo que podemos utilizar fácilmente esta herramienta para facilitar el acceso de nuestros usuarios y procesar correctamente y validar nuestra data antes de cargarlas a bases de datos corporativas o de nuestras aplicaciones. (para un mejor alcance de estos conceptos pueden revisar nuestra entrada: Web2.0: los Negocios y las redes sociales).

Audiencia

Se recomienda que, para entender este tutorial, tengamos los suficientes conocimientos de ExtJs y desarrollo Web (HTML, Javascript, y manejo básico del back-end PHP-MySQL, instalado sobre un servidor HTTP Apache, o haber seguido los capitulos iniciales del curso de ExtJs que nos ofrece Crysfel Villa de México en su pagina del Quizzpot.

Asimismo se recomienda haber leido y probado: Integracion a Google (1ra parte), especialmente para comprender todo el proceso de integracion de las herramientas Google a ExtJs (y viceversa), que se emplean en este tutorial.

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

IntGoogle-02.rar, Descomprimir este material de apoyo sobra la carpeta "www" de nuestro Servidor Web Local (seguir los pasos de la 1ra. parte de este tutorial de Integración a Google), si ya ha instalado éste módulo anteriormente sobre-escriba todos los archivos que así lo indiquen ( se ha efectuado  algunas adiciones, modificaciones y mejoras que se han tenido que realizar sobre algunas funciones y extensiones para adaptarlos a la versión 3.4.0 (la ultima v3.x ofrecida por Sencha.com antes del lanzamiento de ExtJS4), o si usted lo desea, descomprimalos en una nueva carpeta con un nombre apropiado.

(si no entiende este paso favor consulte "empezando desde cero').


IntGoogle-02.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, pero en este caso, comprende al proyecto 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 al llamarlo desde la barra de direcciones de nuestro navegador usando "http://localhost/WebMatrix/Int-Google02", y esto porque el archivo inicio del codelab en este caso es "index.html", el cual es de ejecución automática al llamar a la carpeta que los contienen...


Ahora, si trabajamos con el primer código, y si con nuestro navegador ingresamos a "http://localhost", y luego a la carpeta "Int-Google02" ( o donde hayamos descargado el material de apoyo), y ejecutamos el archivo "02.GVisualization-sample.html", debe aparecer una pantalla como la que se muestra a continuación:




Esto nos indica que nuestra descarga y copia ha sido correcta así tambien es correcta el ruteo para la importación de las librerías de ExtJs, y ya estamos listos para revisar el material de apoyo instalado.. y descubrir como hemos Integrado ExtJs con las SpreadSheets de Google (hojas de calculo).

Nota.- 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 diferente de la indicada en nuestro archivo HTML (..ahora estamos usando la versión ext-3.3.1, pero si estamos trabajando con otra versión debemos cambiar los nombres y la ruta de la carpeta que lo contiene si fuera necesario). Asimismo, observe que ahora tambien utilizamos la libreria "Groupsummary.js" de ExtJs (en la ruta ../extjs/extjs-3.x.x/examples/ux, que asi corresponde en los archivos de la versión completa ExtJs que hayamos bajado.. si esta utilizando una version "liviana" como se indica en el Curso ExtJs de Quizzpot, cerciorese de copiar este archivo en la ruta indicada.. u otra cualquiera conveniente que nos rutee adonde este se encuentre dicho archivo).

Observe asimismo que, como se indica en el Curso ExtJs, resulta conveniente copiar solo los archivos de ExtJs que necesitemos y evitar, cuando carguemos nuestros ejercicios, pruebas o desarrollos en un servidor web real (como x10hosting.com u otros de los muchos que se ofertan en internet, como indicamos en el post anterior), pues así lograremos que nuestros proyectos solo "pesen" lo justo.. quitando los "examples" propios del framework así como los "themes" o lenguajes "locale" que no emplearemos.

NOTA IMPORTANTE :

Resulta que el sistema de autorización "AuthSub for JavaScript" de Google ya no se encuentra disponible (pueden revisar el siguiente enlace), 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_02.js


TRABAJANDO CON OAUTH 2.0 :

por supuesto, a la brevedad actualizaremos todos nuestros códigos para que trabajen con el protocolo OAuth20, y les presentamos en esta oportunidad el código y su demo de nuestro codelab 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 IntGoogle02-Oauth demo  (New!) .
the demo may prompt popup window (you must enable it)

IntGoogle02-OAuth20.rar ( 3.14Mb ), Este código corresponde a nuestro codelab pero adecuado al protocolo OAuth version 2.0, 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 autenticación y autorización para acceder a nuestras cuentas y poder utilizar todas las API de Google, por ello hemos adecuado nuestro codelab a dicho estándar 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 actualización a la API v.3)..por supuesto, al trabajar con nuestro servidor local "localhost" no se presentan problemas.. el tema se presenta al cargar nuestros proyectos a un servicio de hosting externo cualquiera.. como la plataforma GAE (Google App Engine), que es donde esta corriendo nuestra demo.


Detalle del Modulo.

1. Para poder utilizar el modulo,como ya se indicó en la primera parte, debe tenerse una cuenta activa en Google,.

2. Al revisar los archivos desempaquetados de nuestro material de ayuda encontraremos los siguientes archivos:
  • 02.GVisualization-sample.html, que contiene las instrucciones HTML para llamar a la biblioteca ExtJs y las API de Google, entre otras llamadas y configuraciones.
  • MenuGVisualization_02.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.
  • SpreadSheet-ExtJs.js , que contiene las instrucciones Javascript en ExtJs, que nos permiten visualizar , en esta oportunidad, una tabla u hoja de Calculo de Google (creada a través de Google Docs), pero utilizando Visualizaciones Google y de ExtJs, que representan para nosotros, nuestro segundo 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, y en este caso, funciones ExtJs que nos permiten "migrar" la data de la tabla Google a objetos "store" que puedan ser manipulados desde ExtJs.
  • GroupSummary.js, que como hemos indicado debe estar contenida en las carpetas de "extjs-3.31" y la necesitamos para importar la libreria ExtJs GroupSummary en el archivo "02.GVisualization-sample.htm", (podemos revisar su contenido en cualquier editor de textos como Notepad++)
3. En el archivo "02.GVisualization-sample.html", se encuentra comentadas casi todas las líneas explicando paso por paso que realizan.

4. ( New! ) Hemos añadido en esta oportunidad el archivo Spreadsheet productos.xls en formato Excel estandard, para los que deseen efectuar sus pruebas sobre una hoja de calculo propia, pues simplemente ingresen a Google Docs y carguen este archivo, por supuesto que adaptado al formato de Google Docs; luego solo basta copiar en la variable "dataSourceUrl" que corresponda la dirección web de nuestra hoja de claculo de Google Docs (la que se indica en la barra de direcciones de nuestro navegador cuando ingresemos a nuestro documento cargado a Google Docs)

Este archivo no forma parte del "proyecto" así que solo debe ser considerado como referencia.. asimismo debemos tener en cuenta que a Google Docs se puede cargar diversos formatos de hojas de calculo los que automáticamente traducirá al formato de Google Docs, como CSV, Openoffice, etc.

5. En el archivo "SpreadSheet-ExtJs.js", se encuentran detalladas cada una de las funciones llamadas desde "MenuGVisualization_02.js", que muestran el código de cada Visualización mostrada, y entre las que tenemos:
Integracion.Google.SpreadSheetExtJs, que muestra un "grid" completo de nuestra Tabla Google, y para lo cual utilizamos la extensión "Ext.ux.EVisualizationPanel", detallada en nuestro archivo GVisualizationPanel.js, y que a diferencia de la extensión "Ext.ux.GVisualizationPanel" que empleamos para adaptar nuestro "store" creado a partir de un "data array", y crear nuestra visualización Google; pues, como en este caso vamos a mostrar data Google sobre una visualización Google, no es necesario adaptar la data, y nuestra extensión nos permite mostrar la visualizacion sobre el panel ExtJs, y si indicamos un dataQuery, realizar la operación SQL que querramos...



En este caso, hemos utilizado como Query: 'select * where A is not null', esto porque, muchas veces, al final de nuestras hojas de calculo podemos poner resúmenes, cálculos especiales, anotaciones, etc... y para que estos no aparezcan en nuestra visualización, pues sencillamente ignoramos dichas lineas (por supuesto que en este caso, implica que no pongamos nada en la columna A de nuestra tabla si se trata de comentarios o resúmenes)

Integracion.Google.SpreadSheet_01, que muestra un Query un poco mas complejo tal como: 'select G ,sum(J), sum(L)+sum(N)+sum(P), count(A) where A is not null and K <> 0 group by G ', al que le hemos agregado otras propiedades como "order by", "label" y "format", siendo interesante notar que posteriormente nosotros vamos a utilizar esos "labels" o etiquetas de nuestro Query, como nombre o "id" de nuestras "Grids ExtJs".


Integracion.Google.SpreadSheet_02, que muestra el mismo Query anterior pero en un formato PieChart de los campos "comprador" y "monto" (que corresponde al monto que nuestro cliente ha comprado a la fecha).



Integracion.Google.SpreadSheet_03, que muestra el mismo Query anterior pero en un formato panel que contiene un Table y un PieChart de los campos "comprador", "monto", "cobrado" y "cantidad" (que corresponde a lo que nuestros clientes han comprado a la fecha).
Nótese asimismo que he implementado eventos sobre el PieChart y el Table, y al hacer click sobre algún componente del Pie o de la Table se ve reflejada la operación en ambas gráficas.




Hasta aqui, estamos utilizando la extensión "Ext.ux.EVisualizationPanel" de forma similar a como utilizamos "Ext.ux.GVisualizationPanel" en la 1ra parte de este tutorial para mostrar Visualizaciones Google sobre ExtJs (pero con data de un "store array"), y por supuesto, que podemos utilizar esta extensión para utilizar cualquiera de las visualizaciones Google que mostramos en la Galeria de Visualizaciones Google, pero utilizando como datasource a las hojas de Calculo de Google.

Resulta también conveniente a este respecto, revisar los siguientes enlaces:





Integracion.Google.SpreadSheet_04, que utiliza el mismo Query anterior pero en este caso nuestro formato panel contiene graficas ExtJs de los campos "comprador", "monto" y "cobrado", y para ello empleamos una nueva extension que hemos llamado "Integracion.Google.GoogleStorePanel", y cuya principal función va a ser adaptar los datos de la tabla Google al formato "store" de ExtJs, y colocarlas en los paneles correspondientes.



Como mostramos, ExtJs tambien tiene opciones interesantes en sus gráficas o visualizaciones que podriamos utilizar, y una de ellas es la capacidad de poder agrupar filas y columnas en sus "grids", por ello vamos a mostrar "paso a paso" como poder utilizar una agrupacion de filas en las visualizaciones que siguen a continuación.

Integracion.Google.SpreadSheet_05, en esta visualizacion vamos a mostrar como deberíamos "crear" nuestros querys para poder agruparlos, por ello, si en este caso, quisieramos agrupar los productos comprados por cada uno de nuestros clientes, y mostrar el detalle de lo vendido, lo pagado, y el saldo correspondiente (por cada producto y del total del cliente), pues nuestro campo de agrupamiento seria el "comprador", y nuestro Query seria el siguiente:

select B, G, I, J, L+N+P where A is not null and K <> 0
order by G
label B "Producto", G "Comprador", I "FVenta", J "Monto", L+N+P "Cobrado"

En este caso detallo las etiquetas, por cuanto esos nombres los vamos a utilizar como campos (fields), de nuestro "store" a crear.


Estoy mostrando nuestro dataquery en una visualización Google tipo Table utilizando la extensión "Ext.ux.EVisualizationPanel".

Integracion.Google.SpreadSheet_06, ahora mostramos el mismo dataquery pero sobre un Grid ExtJs, utilizando la extensión "Integracion.Google.GoogleStoreGrid", que va a realizar la adaptación de la data Google al formato "store" mediante la función "Ext.ux.GoogleStoreAdapter", que utiliza la función "EditorGridPanel" de ExtJs (utilizo esa función aunque en este caso no editamos los valores, pero he dejado algunas lineas comentadas para que puedan probar que es posible editar los grids ExtJs)


Nótese que nuestro adaptador "Ext.ux.GoogleStoreAdapter", crea un campo "id", al estilo del formato Json, y que utilizamos como numero o identificador de registro; y asimismo que, nuestro adaptador devuelve el "store" completo de nuestra data requerida (campos y datos incluidos); esto no es lo único requerido para realizar "data grouping", pero si en la gran mayoría de sus visualizaciones y gráficas.

Integracion.Google.SpreadSheet_07, ahora si preparamos nuestro Query para poder realizar nuestro agrupamiento, y modificamos nuestro adaptador, al que hemos llamado "Ext.ux.GoogleStoreAdapterComplete", por cuanto, no solo crea el "store", sino el "reader" y la "data" (que son componentes que crean al store), y los muestra disponibles para poder utilizarlos en la función "Ext.data.GroupingStore" de nuestra extensión"Integracion.Google.GoogleStoreGrouping" que crea nuestra StoreGrouping Visualization



Cabe anotar como un adicional que nuestro adaptador aparte del campo "id" que representa nuestro numero de registro, tambien ha adicionado un campo "resumen" (igual para todos los registros), esto es para poder tener la capacidad de "agrupar" toda la data en un solo bloque y poder mostrar un campo de sumarizacion resumen total tal como indicamos a continuación:

Integracion.Google.SpreadSheet_08



Bueno amigos, hasta aquí nuestra 2da parte de Integración a Google, y hay bastante para probar hasta lo avanzado, pero creo imprescindible que realicen sus pruebas empleando sus propias tablas, por lo que resulta importante que empiecen a revisar Google Docs y inicien sus propias aplicaciones, ejemplos hay demasiados...

Por mencionar solo una, todos los negocios pequeños o personales  (micro-empresas), la mayoría están afiliados a sistemas simplificados de declaración y recaudación fiscal, (régimen RUS de la SUNAT aquí en Lima-Peru), y solo requieren para sus declaraciones contables contar con un registro de ventas, que fácilmente se podría desarrollar en hojas de calculo de Google Docs, y que complementado con un registro de Compras y Gastos fácilmente podrían llevar el manejo administrativo contable de un pequeño negocio, "on line" colgado sobre Internet y literalmente "indestructible", y con posibilidades de consulta remota desde cualquier lugar de la ciudad, del país y del mundo... con lo que se tendría una poderosa herramienta de control para los miles de "emprendedores" que han hecho negocios pero que actualmente tienen bastantes problemas de administración y control..

Personalmente, en mi experiencia con PYMES realmente he observado muchos negocios que emplean hojas de calculo para sus procesos de administración y control, y asimismo tambien en varios casos les he planteado solución a varios negocios de este tipo (boutiques, salones spa, tiendas o bodegas, etc.), utilizando exclusivamente spreadsheets de Google Docs en donde solo se requiere una computadora con acceso a Internet (y que también se pueden complementar a soluciones Web2.0 para mercadeo y publicidad de nuestros productos/servicios, y para la fidelización de clientes), ..respecto a este tema, ahora resulta importante destacar que la principal red social de estos momentos: Facebook, había decretado en octubre del 2011 la obsolescencia de su lenguaje FBML nativo, pero para el 01 de Junio de este año 2012 ha programado su cese, lo que afectará a varios cientos de miles y tal vez millones de negocios y profesionales en todo el mundo, cuyas paginas "fanpage" estan actualmente hechas en lenguaje FBML, utilizando la plataforma de desarrollo de Facebook.. lo que orientará el mercado de desarrollo de las pequeñas empresas hacia otras herramientas como son el empleo del SDK Javascript y "canvas" de Facebook, y por supuesto, hacia Google Docs (ahora Google Drive), y con uso de "Apps Script".. claro que para varios desarrolladores tal vez estas sean soluciones simples, pero realmente pueden llegar a ser más económicas y efectivas.. e incluso bastante complejas y especializadas.

En lo que respecta a nuestro proyecto Integracion Google, en próximos codelabs vamos a plantear el mismo ejercicio pero sobre otras plataformas...y entre las que me parecen muy interesantes para utilizar tenemos el Back-End PHP+MySQL (muy popular en servicios de Hosting externos y utilizados para instalar y desplegar "servicios sociales" muy difundidos como Wordpress, Elgg, phpBB, Drupal  y otros, y que por supuesto, bien podriamos integrar a nuestros desarrollos); tambien tenemos a la combinación JSP(Java)+MySQL, que es bastante empleado para desarrollos "complejos" y profesionales; y asimismo ya dentro del mundo Google Cloud tenemos el "datastore" de Google App Engine, que involucra el manejo del concepto "Big Table". Para todos los casos planteados, tenemos como principal requisito que, primero debe desarrollarse un modelo básico de mantenimiento o gestión de base de datos (altas, bajas, modificación, consulta, impresión, etc), por cuanto, a diferencia de partir de una tabla de Google Docs, en dichas plataformas debe "programarse" el registro y manejo de nuestra data, el cual debe realizarse a través de base de datos, y nuestra información no debe ser ingresada directamente a las tablas, sino a través de formularios y/o grids editables o la combinación de ambos, los que bien pueden ser diseñados con ExtJs.

Saludos

Opina en nuestro foro §FB..!




3 comentarios: