Novedades en Silverlight 3

No obstante a que el Mix09 estuvo lleno de grandes anuncios y noticias por parte de Microsoft al mundo de tecnologías Web, fue de particular interés el conocer de antemano las grandes características que la nueva versión de Silverlight 3 tendrá. 

A continuación enlisto las características que a mi parecer son las más relevantes.  Cabe mencionar que no es la lista completa de nuevas características y funcionalidades, solo aquellas que más destacan:

Reducción de tamaño de los archivos XAP

El tamaño de los archivos XAP se reducirá en un 10% a 30%.  Esto significa que podemos utilizar menos ancho de banda para nuestras aplicaciones Silverlight debido a su radio de compresión más alto.  Eso sí, siempre recuerden que una aplicación Silverlight debe ser lo más pequeña posible!

OOB (Out-Of Browser)

Con esta característica podemos ejecutar nuestras aplicaciones de Silverlight 3 fuera de la ventana del Navegador, simulando una aplicación de escritorio con acceso directo en nuestro escritorio y un icono que la represente.  No obstante, la aplicación sigue ejecutandose en un sandbox tal y como sucede cuando la ejecutamos dentro del navegador.  Esta característica es particularmente interesante ya que se nos abre un abanico grande de oportunidades al crear aplicaciones con esta plataforma:  aplicaciones RIA que incluso puedan detectar cuando están ejecutándose de manera desconectada para ofrecer a nuestros usuarios una experiencia de uso más potente (tal vez ofrenciendo una versión offline que guarde / use datos de un cache local [el almacenamiento aislado tal vez]).

La creación de este tipo de aplicaciones es bastante sencilla ya que esta opción la establecemos vía el Manifiesto de la aplicación.

Aceleración vía GPU

Las aplicaciones Silverlight 3 podrán utilizar el GPU del equipo en donde estén ejecutándose, liberando así recursos del CPU.  Las aplicaciones que hagan uso de gráficas sofisticadas o video detallado son las que disfrutarán más de esta característica.

Perspectivas 3D

Podemos poner objetos 2D en espacios 3D.  Las animaciones que hagan uso de esta característica podrán ofrecer efectos visuales bastante interesantes (menús desplegables en 3D, rotación de elementos, etc.).  Lo que hace que esta característica sea bastante poderosa es el hecho que podemos establecer este tipo de perspectivas incluso en lo controles, no solo en elementos.

Estilos BasedOn

Estilos basados en otros.  Al fin!

Estilos modificables

Podemos modificar en tiempo de ejecución el estilo de un elemento o control.  Esta funcionalidad ha sido una de las más solicitadas, y cabe decir: útiles.

Enlace entre Elementos

Enlace (Data Binding) entre controles!  Por fin! Esta característica está presente en WPF y la extrañábamos bastante en Silverlight.  Ahora, será una realidad.

SaveFileDialog

La caja de diálogo pareja de OpenFileDialog, con la cual podemos ofrecer al usuario un mecanismo de selección de una ruta y archivo para escritura.  Esta característica es especialmente necesaria cuando queremos permitir a nuestros usuarios que guarden archivos (texto, imágenes,etc.) dentro de su equipo.  Su funcionalidad es auto-explicable ya que es un control que hemos usado desde siempre en las aplicaciones Windows Forms.

Pixel Shaders

Los Shaders permiten cambiar un pixel a otro (tal vez de un color a otro para hacer efectos de sobreposición de imágenes o videos).

Framework de Navegación

Un paso más para subsanar las aplicaciones Silverlight con respecto a los buscadores.  Este framework permite que tengamos diferentes Url’s en una misma aplicación de Silverlight, para que sean indizables.  Hey! además funciona con las características de ‘Atrás’ y ‘Adelante’ de los Navegadores!

Mensajería Local (Local Messaging)

Mi novedad favorita:  Comunicación entre diferentes plugins de Silverlight en la misma página, o entre diferentes tabs del Navegador, o incluso: entre diferentes Navegadores!!! :)   Esta característica está basada en mensajes tipo string entre un plugin y otro con un modelo subscriptor-publicador.

Mejoras al Texto

Animaciones con textos mejoradas.  Además Silverlight 3 (la versión RTW) tendrá soporte completo a ClearType.  He visto frecuentemente que esta es una de las quejas más fuertes con respecto a Silverlight 2, sobre todo cuando lo comparamos con Flash.  Bueno, pues ahí lo tienen.

Efectos

Con ellos podemos impactar el comportamiento visual (no la funcionalidad) de nuestras aplicaciones.  Incluídos en Silverlight 3 estarán dos: DropShadow y Blur; aunque podremos desarrollar nuestros propios efectos por medio de Pixel Shaders (ver Pixel Shaders más arriba).

RIA Services

Por último, una plataforma que promete mucho si es orientada correctamente:  Los RIA Services.  Estos servicios ofrecen a las aplicaciones de Silverlight 3 un mecanismo sencillo para comunicación con fuentes de datos.  No obstante, la versión que pude apreciar en el Mix09 se muestra demasiado “acoplada” a la aplicación, esto es, de alguna manera contradice el hecho que toda aplicación que esté bien diseñada debe separar sus responsabilidades en diversas capas (PRISM por ejemplo, nos ayuda a hacer precisamente eso).  Sin embargo, es solamente un Preview, espero que Microsoft mejore su diseño ya que precisamente una de las características que agrada más a los desarrolladores de Silverlight 2 es que no tiene dependencia alguna con .NET del lado del servidor.  Esperemos que madure para bien !

Los grandes ausentes

  • No habrá soporte para impresión en Silverlight 3
  • No habrá soporte para Reporting Services en Silverlight 3
  • No habrá soporte para micrófono y/o webcam en Silverlight 3
  • No habrá soporte nativo para la rueda del mouse en Silverlight 3

De esta lista el que más destaca es el soporte para impresión, una característica multi-solicitada a Microsoft por todos nosotros.  No obstante están trabajando en ello y muy probablemente esté presente en Silverlight 4… lo platicamos dentro de un año  :)

Salu2!