Desarrollando Aplicaciones Cliente y Web con WFP y Silverlight

El otro día a raíz de un post de Juan, Windows Presentation Foundation. El final de Windows Forms…, alguien preguntaba si era posible desarrollar la misma aplicación para ejecutarla en un cliente Windows y un cliente web. Posible sí que es y además hay varias opciones para conseguirlo, aunque habrá que tener en cuenta las limitaciones que existen.

La primera opción que se presenta es crear una aplicación WPF y XBAP. Esto se puede conseguir usando el Template para Visual Studio, Flexible Application. Este template lo que hace es proveer en un solo proyecto la capacidad de compilar en exe y xbap. Dependiendo del tipo de compilación utilizado se generará la aplicación para que corra bajo Windows o se ejecute en el Explorer.

Evidentemente esta práctica tiene sus ventajas e inconvenientes.

Ventajas:

  • Con un solo desarrollo tiene las dos aplicaciones. El código va a ser el mismo para los dos entornos, simplemente va a cambiar el tipo de compilación realizada.

Desventajas:

  • Sólo para plataforma Windows. Cómo XBAP se ejecuta en el cliente, el cliente debe tener instalado el .Net Framework. Esto limita los entornos en los que la aplicación puede ser utilizada.
  • XBAP se encuentra limitado al ejecutarse en un Sandbox. Esto hace que haya que tener en cuenta estas restricciones de seguridad a la hora de plantear el desarrollo.

Referencias sobre el Template de Flexible Application:

La segunda opción sería realizar dos desarrollos paralelos: uno en WPF y otro en Silverlight. Para llevar esto acabo habría que realizar un desarrollo específico para cada tecnología. Probablemente las aplicaciones no serían iguales. Silverlight no es igual de potente que WPF, así que habría que tener en cuenta las limitaciones de esta.

El New York Times recientemente se ha encontrado con esta problemática. Se veían obligados a tener que mantener dos aplicaciones diferentes y que además realmente no ofrecían la misma funcionalidad a los diferentes usuarios. Un usuario de MAC, que sólo puede utilizar la aplicación Silverlight, no contaba con las mismas opciones que uno de Windows con la aplicación WPF. Por este motivo, el New York Times opto por Adobe Air. Abode Air si permite ejecutar sus aplicaciones tanto en entornos Windows como Web.

Así que la tercera, y última opción, es Silverlight 3. Silverlight 3 nace con la idea de competir con Adobe Air. Ya que esta nueva versión si permite que la aplicación viva “out of browser”.

Con Silverlight 3, una aplicación podrá ser ejecutada en un cliente Windows y en un cliente Web. Así que con un solo desarrollo la aplicación podrá correr bajo ambos entornos. Además la aplicación será multiplataforma ya que Silverlight si puede ser utilizado en MAC, por ejemplo. Al ser la misma aplicación también contara con la misma funcionalidad para todos los usuarios de los diferentes entornos.

El único problema que presenta esta solución es que es necesario conocer las limitaciones de la tecnología. Silverlight 3 todavía no es WPF, aunque empieza a estar cerca. Además hay que tener en cuenta que se ejecuta dentro de un Sandbox de seguridad. Cosa que limitará la funcionalidad de la misma.

2 comentarios en “Desarrollando Aplicaciones Cliente y Web con WFP y Silverlight”

  1. Tengo una duda, y porque no han modificado WPF, para poder realizar lo mismo que WPF, como se parecen tanto, tiene algún sentido mantener dos tecnologías similares, crees que al final WPF y Silverlight llegaran a unirse o simplemente compartiran parte de la arquitectura y seran siempre productos diferentes, al final lo que buscamos es poder desarrollar una aplicación que funcione en ambos entornos Windows y Web, pero la limitación de WPF de ejecutarse en solo en entornos Windows e muy grande, quizas si mono estuviese actualzado esto podria ser una realidad. ¿Que opinas?.

    Saludos.

  2. Yo creo que siempre serán productos diferentes porque están pensados para entornos diferentes. WPF escritorio, Silverlihgt Web. Aunque seguramente Silverlight acabe llegando a “casi” tener las capacidades de WPF.

    Tambíen creo que en la guerra RIA, Microsoft tiene un problema bastante gordo. Sus aplicaciones no llegan a todos. Creo que el no ser multiplataforma le va a pesar un poco. Sobre todo cuando hablamos de aplicaciones web.

    Por eso, empresas como el New York Times con una gran necesidad de llegar a todos sus lectores se deciden por tecnologias que si son 100% multiplataforma.

    Con Silverlight, WPF o Mono te ves obligado a mantener varios equipos, varios proyectos con su conseguiente coste.

    Además Mono siempre va ir por detras de Microsoft. Tienen que esperar a que las cosas estén listas para poder copiarlas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *