Feeds:
Entradas
Comentarios

Posts Tagged ‘Microsoft’

Esta es una discusión que a menudo suelo escuchar. Hay quieren opinan que existen dos tipos de aplicaciones que se pueden realizar con WPF y hay quienes opinan que son tres tipos distintos. Lo cierto es que depende del punto de vista.

Si vamos a tomar como tipo de aplicación las que nos propone Visual Studio entonces tenemos 2 tipos de aplicación (fig.1).

  • WPF Application
  • WPF Browser Application (o XBAP Application)

Fig. 1

 

Pero no necesariamente esto significa que sean esos dos los tipos de aplicación que se pueden crear, ya que si lo vemos desde otro punto de vista, podemos ver que tenemos estos otros dos tipos de aplicaciones:

  • Windows-Based Applications
  • Page-Based Applications

Viéndolo de este modo, tenemos las Windows-Based application que son las aplicaciones Windows convencionales, y dentro de las Page-Based Applications, podemos decir que tenemos dos tipos de aplicaciones, diferenciadas por su contenedor.

Por un lado tenemos las aplicaciones que corren sobre el contenedor NavigationWindow, estas se muestran dentro de una ventana de Windows, a la que automáticamente se le generan los botones de “Forward” y “Backward” para ir navegando las páginas por las que ya pasamos. (fig. 2).

Fig. 2

Y por otro lado tenemos las XBAP Applications o Browser Based Applications. Estas corren directamente sobre el workspace del browser, ya sea Internet Explorer o Firefox que son los dos browsers soportados. La ventaja de este tipo de aplicación es que si tenemos que hace un deploy a muchas workstations que estén distribuidas, es más sencillo hacerlo vía browser. La desventaja es que tiene limitaciones de seguridad y no son soportadas todas las funcionalidades de WPF. Una XBAP Application se vería como se muestra en la fig. 3

Fig. 3

 

Diferencias entre las aplicaciones Windows-Based y XBAP

La principal y más importante diferencia entre los dos tipos de aplicación es que las aplicaciones XBAP proveen una instalación completamente transparente al usuario.

Este tipo de aplicaciones corre desde el caché del browser y la única forma de ejecutarla es llamando nuevamente la URL desde el browser. Cuando se hace esta llamada, se verifica contra el servidor si hay una nueva versión del archivo .XBAP, en caso de que la haya se baja la nueva versión al caché y se ejecuta.

Como contrapartida, todas las aplicaciones XBAP corren dentro de un sandbox con permisos Partial Trust, es decir que solo pueden correr algunas librerías de .NET lo que hace que la aplicación sea un poco más restrictiva.

 

Restricciones de las aplicaciones XBAP

Como mencioné anteriormente las aplicaciones XBAP se ven restringidas en cuanto a las librerías que pueden usar y el nivel de acceso que pueden tener dentro del sistema de usuario final. Como corren con permisos parciales tienen el mismo nivel de permisos que cualquier aplicación que corra dentro de la zona de internet. Si bien la gran mayoría de la funcionalidad de WPF corre dentro de este sandbox, aún existen algunas limitaciones, a saber:

  • No pueden correr como si fueran aplicaciones Stand Alone.
  • No pueden utilizar cuadros de dialogo standard.
  • No pueden utilizar Interop con controles de Windows o ActiveX
  • No soporta el Drag and Drop.
  • No soporta Efectos Shader

Por otra parte se puede perfectamente usar.

  • Controles de Interface de usuario.
  • Controles de entrada de texto.
  • Flow Documents y los lectores asociados.
  • Documentos XPS.
  • Dibujos 2D.
  • 3D.
  • Animaciones.
  • Audio.
  • Video.
  • Paginas.
  • Cuadros de Dialogo.
  • OpenFileDialog.
  • Drag and Drop (solo dentro de la aplicación)
  • Llamadas a servicios de WCF.
  • Llamadas a Web Services.

 

Cuadro comparativo entre las características de las aplicaciones Standalone y XBAP.

Característica

Standalone

XBAP

Instalación

Instalación en requerida en la máquina del usuario

La instalación se hace de forma automática y es transparente al usuario.

Menú de inicio

Tiene acceso directo

No aparece ningún acceso, solo se accede vía URL

Panel de Control

Se permite desinstalación

No hace falta desinstalar.

Métodos de Instalación

XCopy, MSI, ClickOnce

Automático vía ClickOnce.

CAS

Corre con permisos Full a menos que lo modifique el administrador.

Corre con los permisos de la zona de internet

Restricciones SandBox

No existen, salvo que el administrador cambie los permisos.

Existen.

Proceso

Corre dentro de su propia ventana.

Corre dentro del PresentationHost.exe

Actualizaciones Automáticas

No se actualizan automáticamente, salvo que el desarrollador utilice ClickOnce para el deploy o que haya programado una rutina de auto actualización.

Siempre se utiliza la última versión distribuida al servidor.

Acceso Desconectado

Permitido.

No se puede abrir la aplicación a menos que se pueda navegar a la URL de la aplicación.

Requerimientos

.NET 3.0 o superior en la computadora del usuario final.

.NET 3.0 o superior en la computadora del usuario final. Internet Explorer 6 o superior o Firefox 2.0 o superior.

 

Conclusión

Existen dos tipos de aplicación, las que se basan en páginas y las que se basan en Windows. Las que se basan en páginas son un poco más limitadas en cuanto al nivel de acceso que tienen dentro de la computadora del usuario final, pero son mucho más sencillas de distribuir, sobre todo si se tienen muchos usuarios distribuidos y la aplicación se actualiza periódicamente.

Dentro de las aplicaciones basadas en páginas, tenemos 2 categorías identificadas por el tipo de host. Están las que corren sobre su propia ventana y las que necesitan un browser para ser hosteadas. Esta sub clasificación es que muchas veces genera la discusión de si son 2 o 3 tipos de aplicación ya que muchos consideran que los tipos de aplicación son las que corren en el browser, las basadas en páginas que corren dentro de su propia ventana y las aplicaciones Standalone.

Read Full Post »