En algunas ocasiones nos encontramos que necesitamos de prestaciones o características en una web app que flash no puede solventar, en estas ocasiones podemos echar mano de otra tecnología en este caso c# Sharp de Microsoft que con su sistema clickOnce se puede convertir en un perfecto complemento y aliado de una app echa en flash.
En mi caso necesite recurrir a c#sharp para poder crear un complemento de firma electrónica que se comunicara con la app flash y firmara electrónicamente archivos xml generados por la misma, además de poder acceder al almacén de certificados del usuario y el lector de tarjetas o DNI. Todo esto sin necesidad de instalar nada en la maquina del cliente manteniendo así la política de actualización del servicio web app en la nube y fusionando 2 tecnologías casi hasta el punto de parecer una sola.
Aunque contemple varias alternativas más como por ejemplo Java o un Applet de java ninguna me ofrecía una puesta en marcha tan rápida como con c# Sharp, el descarte de crear un applet en java vino provocado por la lentitud en la ejecución del mismo, las restricciones de seguridad y embrollos de certificados.
Una de las ventajas de utilizar la tecnología clickOnce reside en que podemos ejecutar una aplicación c# Sharp desde un servidor sin necesidad de instalar nada, más o menos como si ejecutáramos una aplicación flash pero con la ventaja que disponemos de prácticamente del control completo de la maquina del cliente sin las restricciones de seguridad de flash y sin necesidad de firmar certificados como en un applet de java. Claro está que esto es solo aplicable para app’s o RIA’s orientadas a empresas de confianza o que la gente sabe lo que va a ejecutar en su máquina, yo personalmente no iría ejecutando aplicaciones clickOnce por amor al arte sin saber su legitimidad o procedencia. Aunque también es posible firmar una aplicación clickOnce para poder ejecutarla con confianza, pero si no lo hacemos la aplicación accederá a la maquina del cliente igualmente solo por el mero hecho de permitir su ejecución algo que es de agradecer porque evita el tener que lidiar con certificados en pequeños proyectos urgentes en los que no es necesario.
Algunas de las cosas que podemos hacer es llamar y ejecutar una aplicación clickOnce desde flash y pasarle parámetros, interactuar con la aplicación clickOnce desde el cliente y la base de datos online mediante services o llamadas simples, comunicar flash y clickonce entre sí con php o amfphp de por medio, podemos acceder a recursos de la maquina del cliente y todo esto sin instalación ninguna. Además cualquier tipo de actualización realizada en la app tendrá efecto en el momento que el cliente vuelva a ejecutar la aplicación. Hay que tener en cuenta que cualquier cliente que quiera ejecutar una aplicación clicOnce deberá tener instalado si puede ser la última versión del Microsoft .NET Framework.
El problema de esta tecnología es que solo esta soportada nativamente en internet explorer por lo que para ejecutar o lanzar aplicaciones clickOnce desde Firefox o Chrome deberemos instalar los complementos apropiados para cada uno.
Antes de nada hay que añadir un .htacces en el directorio donde se encuentre nuestro programa clickonce con el siguiente contenido
AddType application/x-ms-application application
AddType application/x-ms-manifest manifest
AddType application/octet-stream deploy
Despues de eso ya podemos continuar con el sigueinte paso
Inatalar complemento para lanzar aplicaciones clickOnce con Firefox
Una vez instalado el Mozilla Firefox nos dirigiremos al apartado de complementos y en el apartado de búsqueda de complementos introduciremos el siguiente nombre “FxClickOnce ” y pulsaremos en buscar.
Una vez obtengamos los resultados nos aparecerá el complemento FxClickOnce en la lista y tan solo deberemos pulsar en el botón instalar y reiniciar el navegador.
Una vez instalado el componente FxClickOnce ya podremos lanzar desde firefox aplicaciones clickOnce
A día de hoy 06/12/2012 la versión de FxClickOnce 0.1 funciona correctamente con la última versión de firefox 17.0.1.
Google a retirado del markert el plugin que permitia reconocer y lanzar aplicaciones clickonce por motivos que desconozco, por lo tanto ya no es posible desde google chrome.
1 punto menos. toca recomendar otros navegadores :/
Extensión para lanzar aplicaciones clickOnce con Chrome
Una vez instalado el Google Chrome nos dirigiremos al menú de personalización y configuración / herramientas / extensiones. Una vez localizada la pantalla de extensiones pulsaremos en obtener más extensiones que nos llevara a la web store de Chrome y en el campo de búsqueda pondremos “clickOnce for google Chrome” .
Una vez obtengamos los resultados nos aparecerá el complemento clickOnce for google Chrome en la lista y tan solo deberemos pulsar en él y luego el botón Añadir.
Una vez instalado el componente clickOnce for google Chrome ya podremos lanzar desde Chrome aplicaciones clickOnce
A día de hoy 06/12/2012 la versión de clickOnce for google Chrome 1.2.3 funciona correctamente con la última versión de Chrome 23.0.1271.95