índice de Visual Studio 2005 y .NET Framework 2.0 ClickOnce

Sistema para distribución y actualización de aplicaciones
de .NET Framework 2.0

Código para Visual Basic.NET (VB.NET)

Código para C Sharp (C#)


Publicado el 27/Oct/2005
Actualizado el 29/Oct/2005
Autor: Guillermo 'guille' Som

Aquí te voy a explicar cómo funciona esto del ClickOnce, (o Click Once) al menos desde el punto de vista de las aplicaciones accesibles desde un sitio Web.

 

Introducción

Como seguramente ya sabrás, ClickOnce permite instalar una aplicación desde cualquier sitio, incluso desde un sitio Web.
La "gracia" de este sistema de instalación es que cuando se ejecute la aplicación instalada con ClickOnce, la aplicación buscará nuevas actualizaciones de forma automática, y si la hubiera, te preguntará si la quieres instalar.

También se encargará de instalar los requisitos que esa aplicación necesite, por tanto, si nunca has trabajado con una aplicación que use el .NET Framework 2.0, éste se instalará en tu máquina.

Debes saber, que en la fecha que publico esta página, (27 de Octubre de 2005), ya está la versión definitiva de .NET Framework 2.0, por tanto, lo que se instalará usando los ejemplos que he puesto, NO será una beta, sino la versión final.

Y para empezar, la primera aplicación de consola que he hecho con el Visual Basic 2005 Express, osea que está recién salida del horno ;-)

 

¿Cómo funciona el ClickOnce?

Cuando pulses en el link, te mostrará una ventana como esta, en la que, además de la información de la aplicación, también te indicará los requisitos que no tienes instalado para que funcione, en este ejemplo solo el runtime de .NET Framework 2.0, tal como vemos en la figura 1:

Figura 1. La página de instalación de la aplicación

Figura 1. La página de instalación de la aplicación

 

Cuando pulses en Install, te preguntará que quieres hacer, si bajar el ejecutable o ejecutarlo directamente, puedes hacer las dos cosas, ya que siempre lo bajará primero. Pero si decides indicar que lo guarde, tendrás que ejecutarlo y después de las advertencias del Windows XP con SP2 (si es que tienes ese sistema operativo), te pedirá que aceptes el contrato de licencia y esas cosas que siempre piden los programas.

 

Y una vez aceptado, empezará a bajar los requisitos necesarios:

Figura 2. Bajando los ficheros necesarios para la aplicación

Figura 2. Bajando los ficheros necesarios para la aplicación

En este caso, bajará solamente el .NET Framework 2.0, y empezará la instalación, primero del .NET Framework 2.0 (si es que no lo tienes instalado):

Figura 3. Si no tienes el .NET Framework 2.0, se instalará

Figura 3. Si no tienes el .NET Framework 2.0, se instalará

La ventaja del .NET Framework, es que no te pide que reinicies el equipo, al menos a mi no me lo ha pedido. Yo tengo el Windows XP Professional con Service Pack 2 y todas las actualizaciones habidas y por haber... o casi.

De todas formas, siempre es conveniente de que lo reinicies después de que se instale el .NET 2.0.

 

Por curiosidad, si tu equipo es lento, puede que el mensaje que te muestre mientras se instala el .NET 2.0 sea como esta, que está capturada de un portátil de 850 mhz con 256 MB de RAM:

Figura 3b. La instalación de .NET Framework 2.0 en un equipo "bajo" en recursos

Figura 3b. La instalación de .NET Framework 2.0 en un equipo "bajo" en recursos

 

 

Después de instalar el .NET Framework, empezará la instalación de la aplicación en sí.

 

¿Problemas?

Sí, al menos cuando recién publiqué esto, tal como podemos ver en la figura 4:

Figura 4. Error al intentar instalar desde un servidor que tiene ciertas extensiones restringidas

Figura 4. Error al intentar instalar desde un servidor que tiene ciertas extensiones restringidas

El problema es que mi servidor de Internet (donde está elguille.info) no reconoce la extensión .application, y es que resulta que esa es la extensión que tienen los ficheros de configuración que usa el ClickOnce, por tanto, hasta que no le digan al Windows 2003 que tienen la gente del "hosting" que acepte esa extensión, pues dirá que no existe... ¡aunque exista!

 

Ahora mismo voy a "dar el parte de incidencias" para que la activen... a ver que dicen, por tanto, es posible que cuando pruebes esto, ya esté operativo.

 

Respuesta de la gente del servidor

Según me dicen, resulta que no se puede instalar desde la Web porque aún no tienen instalado el .NET 2.0 RTM en el servidor, pero en cuanto lo tengan, ya se podrán bajar los ejemplos. Como te dije ayer, si usas algunos de los links, por lo menos te podrás instalar el .NET Framework 2.0.

 

La solución

Realmente no es necesario tener el .NET Framework 2.0 instalado en el server.

Examinando el mensaje de error al intentar instalar, vi que una de las extensiones era .manifest, además de que al .exe le agregaba también una extensión: .deploy, (seguramente para permitir que se descargue sin que diera una alerta de seguridad), pero esa extensión que se le añade al ejecutable se puede "controlar" desde las opciones de ClickOnce, bueno, realmente no es que se pueda controlar, sino que se puede indicar que no la añada.

Al grano... ¿la solución? dar permisos también a los ficheros con extensión .manifest (además de .application), para que sean accedidos desde el sitio Web. Y de esa forma, pues todo funciona a las mil maravillas, tal como podemos ver en las capturas que siguen.

 

 

Volviendo a la normalidad

Una vez resueltos los problemas de configuración del servidor, y que también hemos indicado en las opciones de la ficha de "publicación" que no use la extensión .deploy, tal como podemos ver en la figura 5, todo irá como es de esperar.

Figura 5. Click Once puede agregar una extensión al ejecutable publicado

Figura 5. ClickOnce puede agregar una extensión al ejecutable publicado

 

Como te decía, después de que se hayan instalados los requisitos, (en nuestro ejemplo sólo el runtime del .NET Framework 2.0), seguiremos con la instalación.

Figura 6. Verificación de los requisitos de la aplicación

Figura 6. Verificación de los requisitos de la aplicación

 

Una vez comprobado que todo está bien en nuestra máquina, nos preguntará si queremos instalar la aplicación, ver figura 7, le diremos que sí, que se fíe de ella.

Figura 7. Aviso de seguridad al instalar la aplicación

Figura 7. Aviso de seguridad al instalar la aplicación

 

Tal como vemos en la figura 8, empezará el proceso de instalación, bajándose el ejecutable, en estos casos, desde mi sitio.

Figura 8. Instalando la aplicación

Figura 8. Instalando la aplicación

 

Y cuando haya terminado, se ejecutará, tal como vemos en la figura 9.

Figura 9. La aplicación de consola en plena ejecución

Figura 9. La aplicación de consola en plena ejecución

 

Y eso es todo... o casi...

Ya que cada vez que ejecutes la aplicación, comprobará si hay alguna nueva versión, de ser así, te preguntará si la quieres instalar.

Para volver a acceder a la aplicación, lo puedes hacer desde el menú de programas de Inicio, tal como se muestra en la figura 10.

Figura 10. Se incluyen accesos en el menú de programas

Figura 10. Se incluyen accesos en el menú de programas

 

Si quieres desinstalar la aplicación, pues como cualquier otra aplicación de Windows, te vas al Panel de control, Agregar o quitar programas, buscas la aplicación por el nombre mostrado en el menú (ver figura 10), y te preguntará que es lo que quieres hacer, tal como vemos en la figura 11:

Figura 11. Desinstalar una aplicación instalada con ClickOnce

Figura 11. Desinstalar una aplicación instalada con ClickOnce

 

Si pulsas en el botón "More Information..." te llevará a la página que le hayas indicado en las opciones de ClickOnce, (ver figura 5).

 

Comprobar nuevas versiones

Cada vez que ejecutes la aplicación comprobará si hay una nueva versión, y en caso de que así sea, te preguntará si la quieres instalar, tal como podemos comprobar en la figura 12.

Figura 12. Aviso de que hay una nueva versión de la aplicación

Figura 12. Aviso de que hay una nueva versión de la aplicación

 

Si le dices que OK, pues la bajará, la instalará (figura 13) y la ejecutará (figura 14).

Figura 13. Actualización de la aplicación

Figura 13. Actualización de la aplicación

 

Figura 14. La nueva versión en funcionamiento

Figura 14. La nueva versión en funcionamiento

 

En este caso, la "posible" nueva versión la he puesto diferente, para que se "note" de que realmente es otra. Además de que, como puedes comprobar, la clase Console ahora admite que se pueda indicar cosas como el color de la fuente, el tamaño de la ventana, el título a mostrar y muchas cosas más... ¡como casi todo lo que .NET 2.0 incluye!

 

¿Y si no me gusta la nueva versión?

Pues nada... la desinstalas, pero, y esto es lo bueno de ClickOnce, te permite volver a la versión anterior.
Esto lo haremos desde Agregar o quitar programas, pero en este caso (cuando hay actualizaciones), además de darte la oportunidad de desinstalar completamente la aplicación, también te dirá si quieres volver a la versión anterior, tal como vemos en la figura 15:

Figura 15. Desinstalar o volver a la versión anterior

Figura 15. Desinstalar o volver a la versión anterior

 

Si eliges volver a la versión anterior, pues quitará la nueva y dejará la vieja, avisándote desde dónde puedes hacerlo, que como vemos en la figura 16, es desde el menú de Inicio>Programas.

 

Figura 16. Aviso de desinstalación de la nueva y disponibilidad de la vieja

Figura 16. Aviso de desinstalación de la nueva y disponibilidad de la vieja

 

 

¿Cómo puedo probar que todo lo que dices es cierto?
¿Dónde se consigue la actualización?

Pues resulta que solo está la versión 1.0.0.0 por la sencilla razón de que si ponía la actualización, y es la primera vez que entras en la página con las aplicaciones de ejemplo, te instalará siempre la más reciente, que es lo lógico, ya que no tiene mucho sentido tener actualizaciones y empezar a instalar desde la más antigua.

De todas formas, fíate de mi, que lo que te he mostrado son capturas reales.

Pero como se que el movimiento se demuestra andando, (o eso dicen), publicaré un ZIP con otra aplicación, para que te lo bajes, la aplicación incluida en el ZIP será la versión 1.0.0.0.
Esa misma aplicación la tendré publicada, pero NO debes bajártela desde la Web, ya que la que habrá en la Web es la actualización de la incluida en el ZIP, con idea de que compruebes que hay otras formas de distribuir aplicaciones: distribuyendo la primera versión de forma "habitual", y poniendo solo las actualizaciones en la red.

A ver si lo consigo, ya que el "instalador" de ClickOnce es tan listo, que cuando va a instalar la primera versión comprueba si hay alguna nueva y de ser así la instala directamente.

 

Nos vemos.
Guillermo

 


la Luna del Guille o... el Guille que está en la Luna... tanto monta...