Comunicar webapp con desktop

Buenas tardes a todos,
¿Alguien sabe, si se puede comunicar una aplicacion de escritorio con una web app?

Me explico, tengo una webapp que accede a datos de una base de datos mysql, muestra esos datos en un weblistbox, por otro lado tengo una aplicacion de escritorio que tiene embebida esa aplicacion con un htmlviewer, y me gustaria que al pulsar un boton desde la aplicacion de escritorio pues lea el listbox. O tambien me valdria si al pulsar un boton de la webapp, pudiese ejecutar una funcion de la aplicación de escritorio. Creo que esto que pido es un poco raro y no se si se podra hacer, pero por intentarlo que no quede.

Un saludo y gracias
Isaac

Si, que se puede. En el webinar “Xojo Framework: HTTPSocket” @Paul Lefebvre te muestra como hacerlo de forma muy sencilla. Incluso hay un ejemplo para una aplicación en iOS.

Lo que pides no es para nada raro, todo lo contrario.

Saludos!

Hola Isaac,

Mucho me temo que tendras que intentarlo con el mtodo HTMLViewer.ExecuteJavaScript ( js As String ) del control HTMLViewer.

Desde luego, el uso de una aplicacin hbrida como la que tienes siempre es una tentacin para “portar” el desarrollo web al terreno del escritorio. En ese caso te recomiendo que, para el tipo de necesidades que tienes, utilices desde tu app de escritorio llamadas a una API que disees en la parte web de tu aplicacin. Para ello, tal y como indica Amando, te ser tremendamente til el webinar sobre el uso de HTTPSocket.

Saludos,

Javier Rodrguez
Evangelista Xojo en Espaol
Autor de “Programacin Multiplataforma Xojo

Hola a todos,
antes de nada daros las gracias a los dos por contestar, Amando te sigo en twitter y Javier tengo tu libro, muy didactico. Ya metidos en materia lo que comenta Amando pues lo habia realizado ya en otro proyecto, comunicarme via json con mi aplicacin de escitorio, y la verdad funciona muy bien y nos ofrece total libertad a la hora de comunicarnos con cualquier otra aplicacin, pero no es exactamente lo que busco en este caso.
Javier, lo que tu me indicas se acerca un poco mas, pero creo que "HTMLViewer.ExecuteJavaScript ( js As String ) " aunque no lo conocia y para otros proyectos si me pueda valer, tampoco es lo que busco.

Como bien dices, lo que me gustara seria una aplicacin hbrida, porque me gustara tener la libertad de que fuese una aplicacin web, pero con un marco de escritorio para poder utlizar funciones de escritorio.

Os cuento mi caso para que lo entendais al 100%. Tengo 10 usuarios que acceden a los datos en un servidor en la nube, y una aplicacin web, que los trabaja, esta aplicacin como es web la puedo modificar y por ejemplo puedo cambiar un listbox (aadir columnas, etc) de forma transparente para los usuarios ya que se hace en el servidor, esa creo que es la mayor de las ventajas de las webapp. Pero el problema que necesito es que al mismo tiempo los usuarios tienen que ejecutar otra aplicacion al mismo tiempo de escritorio, entonces he realizado una aplicacin de escritorio que al iniciar tiene un marco para realizar cualquier tipo de acciones tpicas de escritorio, y al mismo tiempo tiene dentro un HTMLViewer con la webapp, que gano con esto, pues que si tengo que hacer una modificacin la hago en la webapp para todos los usuarios, sin tener que instalar la aplicacin a los 10 usuarios, ya que lo hago en el servidor.
El problema es que a veces necesito comunicar los dos mundos, por ejemplo tengo un listbox en la webapp, y necesitaria leer esos datos del listbox (que estan dentro del HTMLViewer) desde la aplicacin de escritorio.

Se que lo lgico, seria realizar el proyecto de escritorio y listo, pero hay dos peros, uno que ya no es tan dnamica, y cada vez que realice una modificacin, debo de actualizar los 10 usuarios, y el segundo el acceso a la base de datos, ya que la webapp, accede desde localhost, y si lo hago desde escritorio, tengo que crear un usuario a la tabla y abrirlo para cualquier acceso desde cualquier lugar, y eso ya no es tan seguro.

Bueno perdn por extenderme tanto, estoy comenzando con xojo, y me parece apasionante.

Isaac Daz

Hola Isaac,

Gracias por tus comentarios sobre el libro :wink:

Sobre tu problema, por eso te comentaba que igual para eso casos “puntuales” te vendra de perlas implementar en el lado Web una API que devolviese a tu app de escritorio lo necesario De ese modo, tu app web no perdera la facultad de “actualizarse” de forma transparente para los usuarios, al tiempo que tampoco requerira un mayor esfuerzo en el lado desktop.

Con un buen diseo de la API, si en el futuro haces cambios en el lado web no debera de afectar en la llamada utilizado en el acceso desde el lado desktop.

Le sigo dando vueltas por si se me ocurre alguna otra solucin.

Saludos,

Javier Rodrguez
Evangelista Xojo en Espaol
Autor del libro “Programacin Multiplataforma Xojo

Gracias Javier, por tu respuesta, referente al libro, pues que decir totalmente recomendable, y casi forzoso para los que empezamos con xojo.

Aprovecho para realizar otra consulta, sin mucha dilacin en la respuesta para no desviarnos demasiado del hilo, algn consejo para ejecutar una webapp con apache en un servidor propio? He conseguido que mi aplicacin funcione correctamente como stand alone, pero no como cgi, el error que me marca apache es “Premature end of script headers: nombredelaapp” y nada mas.

Tu que recomiendas, webapp con apache o standalone?

Gracias y un saludo,

Isaac Daz

Hola Isaac (y disculpa por tardar tanto en la respuesta… se me había “colado”).

Doy por hecho que ya has revisado estos puntos a la hora de determinar lo que pueda estar fallando:

— Verify that you compiled your web app as Standalone or CGI depending on how you are trying to access it.
— Verify that you compiled your web app for your Server platform and not your desktop platform.
— Be sure to set your Application Identifier to a unique value.
— Check the permissions for the files and folders containing your web application.
— Ensure that the web application and the libraries in the Libs folder are all set to be executable.
— For CGI web apps, ensure that you add “AddHandler cgi-script .cgi” somewhere in your Apache configuration or .htaccess file.
— For standalone applications or CGI applications that are not set to “Choose Port Automatically”, make sure that the port you are using is open and available and that the web app is actually running. Port numbers should be <= 65535. If you are not a privileged user, the port should be >=1024.
— Always check your server logs to see if they have additional information.

Sobre las preferencias… personalmente prefiero que vaya como standalone para evitar dolores de cabeza en la configuración… ¡aunque con Xojo Cloud evitarás esos y mucho otros! :wink:

Saludos,

Javier Rodríguez
Evangelista Xojo en Español
Autor del libro “Programación Multiplataforma Xojo”