Actualizar automáticamente una aplicación .Net

Hace unos días un amigo me comentaba que quería hacer una aplicación .Net que se actualizara automáticamente. Googleando, encontré varios recursos.

Primero me topé con algo que parece que está archivado, pero aun disponible. Es el Updater Application Block 2.0. Como es parte de los Pattern & Practices de MS, fui por allí y descubrí que lo que necesitaba era leer la guía de Implantación de aplicaciones basadas en el Framework 2.0. Leyendo la guía, que es un PDF muy interesante (cero línea de código, muchos conceptos), encontré que referenciaba al sitio oficial de Windows Forms y Windows Presentation Fundation: WindowsClient.NET. Uno de los artículos de dicho sitio, me llevaba directo a la implementación de una aplicación auto actualizable.

Un pequeño problema que encontré, es que las aplicaciones de ejemplo estaban hechas en C#, mientras que a mi C# me paspa un poco (no por el lenguaje, sino porque en Visual Basic, Visual Studio tiene más ayudas) y mi amigo solo programa en Visual Basic.

Resolviendo el problema

La solución que elegí, es utilizar una aplicación de fachada que chequea por actualizaciones e inicia la aplicación de verdad. El chequeo se hace contra un WebService. Dicho WebService compara la versión de la aplicación que lo llama, contra la versión de la aplicación que tiene guardada.

El WebService devuelve la ruta de desacarga y la aplicación de fachada descarga el nuevo ejecutable. Tanto lo descargue, como no lo haga por ya tener la versión actual, dicha aplicación de fachada inicia a la aplicación real, y se cierra.

El código del WebService es demasiado tonto como para ponerlo, sin embargo, puede ser interesante mostrar parte del código de la aplicación de fachada. Tengan en cuenta que es un código para demostrar como se haría. Compila y hace la descarga. Cualquier purista vería que no es un código para copiar y pegar en una aplicación de verdad.

Quienes deseen implmentar algo así, pero de verdad, lean el PDF que mencionaba para tener los conceptos y luego vayan al articulo de WindowsClient.Net. Con un poco de trabajo podrán hacer andar los ejemplos en C#, y ya que están, escriben todo en C# y van a sentirse más machos.

Comentarios

Comentarios cerrados. Este archivo conserva únicamente los comentarios históricos aprobados.

krloslenin

buenazo chovis

developer

no para en veldá seh macho chico debeis programá en assembler, eso si que me pela eh celebro chaval

a

No se trata que duro o blando sea, que tan facil o dificil, todos los lenguajes deberian ser sumamente sencillos de aprender, si no es asi, no estan haciendo un buen trabajo, y deben resolver la mayoria de los problemas reales existentes en la vida cotidiana, dejense de niñerias de lisp y ruby, los gurus prefieren ensamblador, no hay nada que no se pueda hacer con eso

luis

Realmente todos esos lenguajes son faciles si se les compara a ABAP, el lenguaje de programacion que dificil que he usado, y por el que mas dinero he ganado :)

Fede

Tengo un cliente que me pidió le cotizara hacerle un autoupdate y le coticé esto. Si sale, lo publico con un ejemplo de verdad.

Anda por ahí un gráfico que dice cual es el lenguaje más duro desde la vista de los programadores. Java anda bastante blandito. Ni te digo VB ni C#. La machés parece estar en Lisp, Ruby y cosas locas de esas.

Juarez

Para ser macjo hay q programar en JAVA.. q C# y c++ !!

… POr cierto bueno el articulo.., pero me gustaria q dieras un ejemplo real de una aplicacion cencilla q se actualiza sola..

Fede

JAJAJA!

Tenés razón, no sé en que estaba pensando en ese momento.

Me alegro que te sirva, creo que así cumplí mi objetivo del día y ya puedo irme a dormir tranquilo ;-)

gustavo

justo lo que estaba buscando!
lo unico, para ser macho hay que programar en c++, no en c# =P