25 de febrero de 2008

Actualización de aplicación VFP de manera sencilla

Artículo original: VFP Application Updating Made Simple
http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,06bb82c3-9e4c-4048-9b3b-87cc8579eb59.aspx
Autor: Craig Boyd
Traducido por: Luis María Guayán

Corrección del 16/02/2008: Gracias a Dave Crozier por encontrar un error en el código (vea los comentarios más abajo). Un nuevo archivo .Zip de AppUpdate.zip se ha subido al servidor. Si ya ha descargado el .Zip, puede descargarlo de nuevo o hacer los cambios que se describen en los comentarios de este artículo.

Actualizando aplicaciones Visual FoxPro

Una de las cosas que he tratado de hacer en mi artículo sobre ClickOnce, era proporcionar a los desarrolladores Visual FoxPro, la comprensión de una de las tantas soluciones disponibles para la actualización de las aplicaciones una vez que ya se han distribuido. Aunque ClickOnce es muy poderoso, hay momentos en que una solución mas de cosecha propia, puede ser más apropiada. La actualización de aplicaciones, con aplicaciones que los desarrolladores han escrito y/o poseen el código fuente, también pueden ofrecer un grado de flexibilidad y poder que sólo no se encuentra disponible en soluciones como ClickOnce, ni en el servicio de actualización de InstallShield. Así que en esta entrada del blog, presentaré una aplicación que he creado usando Visual FoxPro SP2 que se puede utilizar para actualizar prácticamente cualquier aplicación Visual FoxPro.

AppUpdate.exe AppUpdate.exe

AppUpdate.exe es lo que se conoce como un 'cargador' (loader). Esto significa básicamente que es responsable de la comprobación de las actualizaciones, la instalación en caso de que estas existan, y luego la ejecución de la aplicación que se actualizó. Basándose en gran medida en la utilización de las nuevas vfpcompression.fll y vfpconnection.fll, AppUpdate.exe está diseñada para permitir a los desarrolladores de Visual FoxPro, añadir rápida y fácilmente, la capacidad de actualización de sus aplicaciones. Aquí hay un par de capturas de pantalla de AppUpdate ejecutándose...





Si bien estoy incluyendo el código fuente del proyecto AppUpdate, este no es necesario para modificar AppUpdate con el fin de configurarlo para actualizar una aplicación particular. AppUpdate obtiene su información del archivo appupdate.ini que proporciona una gran variedad de secciones y de entradas que le permitirá especificar qué aplicación se supone que la carga, cuando comprobar si hay actualizaciones, la manera de cargar la aplicación, lo que se muestra al usuario, donde copia localmente las actualizaciones con el fin de que la misma actualización sólo debe descargarse una vez en un entorno multiusuario, cuando mostrar las actualizaciones, que código VFP se ejecutará una vez que la actualización se ha instalado, etc. Así que, como desarrollador sólo necesita modificar el archivo ini para adaptar AppUpdate, con su conjunto de aplicaciones VFP.

En la descarga ...

En la descarga he incluido un ejemplo totalmente funcional de AppUpdate, junto al código fuente. He incluido sampleapp.exe que es la versión 1.0 y he puesto una actualización para este (la versión 2.0) en el servidor de SweetPotato Software para este fin, por lo que puede realmente probar AppUpdate y ver cómo funciona directamente del servidor. He incluido muchos comentarios en el archivo appupdate.ini que deseara examinar y un par de archivos ReadMe.txt. Simplemente descargue el archivo zip de abajo, extráigalo en algún lugar, lea rápidamente el archivo ini y el archivo ReadMe.txt incluidos, y luego ejecute AppUpdate.exe. Cuando comience a querer crear sus propias actualizaciones, puede echar un vistazo a la carpeta ServerUpdate que he incluido en la descarga, y contiene los archivos que están en el servidor de SweetPotato Software que está actualizando sampleapp.exe provisto en la descarga.

Quiero saber lo que piensas

Si prueba AppUpdate, me encantaría saber lo que piensas de él. Si tiene alguna sugerencia para mejorar o encuentra algún error, no dudes en dejar un comentario y yo responderé.
Hasta la próxima… Visual FoxPro Rocks!

Descarga del Proyecto AppUpdate y Ejemplo (922 KB aprox.)


Comentarios:

Craig,
Hay un problema en el proyecto ApplicationUpdate. En el formulario UpdateMessage, en el método downloadupdate() hay dos líneas mal:
* Lineas antiguas 
* m.lcUpdateFile = "File://" + m.lcUpdateFile 
* m.llReturn = FileGet(this.updateFile, m.lcUpdateURL,"m.goThisForm.ProgressHandler()") 
* Nueva linea 
This.UpdateURL = "File://" + This.UpdateURL m.llReturn = ;
  FileGet(this.updateurl, m.lcUpdateFile, "m.goThisForm.ProgressHandler()") 
Saludos,
Dave Crozier

Gran captura Dave!!
He subido un archivo .Zip corregido. El código en el método downloadupdate() fue modificado por el siguiente ...
OTHERWISE 
  IF UPPER(LEFT(This.UpdateURL, 7)) != "FILE://" 
    This.UpdateURL = "File://" + This.UpdateURL 
  ENDIF 
  m.llReturn = FileGet(This.UpdateURL, m.lcUpdateFile, "m.goThisForm.ProgressHandler()") 
ENDCASE 
Craig Boyd

1 comentario :

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.