miércoles, 6 de agosto de 2008

Introduccion Silverlight


Silverlight es la nueva tecnología de Microsoft multinavegador y multiplataforma para presentar la siguiente generación de de experiencias en medios basados en .NET y aplicaciones altamente interactivas para la Web. Silverlight ofrece un modelo de programación flexible que soporta AJAX, VB, C#, Python y Ruby, y se integra con las aplicaciones de Web existentes. Silverlight soporta la descarga rápida y eficiente de video de alta calidad a todos los principales navegadores que corren en Mac OS o Windows.

Anteriormente conocido como “WPF/E”, Silverlight está diseñado para ofrecer un amplio contenido enriquecido con el resto del entorno de desarrollo Web, incluido ASP.NET.

Para alcanzar a la mayoría de la comunidad Web, Silverlight necesita ejecutarse correctamente en los diversos sistemas operativos y en los exploradores más usados. La primera versión es compatible con los exploradores Firefox y Safari que se ejecutan en Mac OS X, así como en Firefox e Internet Explorer de Windows. Se espera que a medida que el producto evolucione se van a admitir más sistemas operativos y exploradores.

Tiene la ventaja de que no depende de otros productos como podrían ser el Windows Media Player para reproducir video ni de Microsoft .NET Framework 3.0 para el análisis de XAML. Cierto es que es una tecnología del lado del cliente, pero encaja en una estrategia mayor orientada a servidor, incluida la capacidad de usarse en servidores que ejecutan PHP o Java.

Esencialmente, Silverlight es un complemento de navegador que representa XAML, exponiendo su modelo de objetos del documento (DOM) interno y el modelo de evento al explorador de manera traducible en secuencias de comando. De esta manera, un diseñador puede reunir un documento XAML que contenga gráficos, animaciones y escalas de tiempo y, por otra parte, un desarrollador puede adjuntarlos al código de una página para implementar la funcionalidad. Dado que XAML se basa en XML, el documento que define la interfaz de usuario que se descarga al cliente se basa en texto. Esto implica que no es un problema para los motores de búsqueda ni firewalls. Además, SQML puede ensamblarse y emitirse en tiempo de ejecución mediante una aplicación de servidor, lo que no sólo ofrece una experiencia gráfica enriquecida, sino también una experiencia personalizable y dinámica.

En la siguiente figura se muestra la estructura de una aplicación Silverlight sencilla, usando un archivo XAML estático que define su interfaz de usuario y JavaScript para el control de eventos. El explorador crea una instancia del complemento y, como parte de este proceso, carga el archivo XAML. Los eventos de este archivo, tales como el clic de un botón, los captura el explorador y los procesa JavaScript. Cuando se expone el DOM del contenido Silverlight, el código de JavaScript también puede actualizar dinámicamente dicho contenido, cmabiando el estado del contenido representado.

La arquitectura que admite la aplicación Silverlight se muestra en la siguiente figura. La interfaz de programación principal es la API de JavaScript DOM. Esto permite responder a eventos sucedidos dentro del XAML de Silverlight, por ejemplo, cuando el contenido ha terminado de cargarse o cuando se completa una animación. También puede llamar a métodos para manipular la presentación, por ejemplo, al iniciar una animación o al detener la reproducción de video. Debajo de esto se encuentra el motor de análisis de XAML. El analizador crea el DOM de XAML. Además, el tiempo de ejecución contiene los codecs necesarios para la reproducción de contenido multimedia WMV, WMA y MP3.

Por último, el tiempo de ejecución contiene el núcleo de presentación que administra el proceso de representación. Este tiempo de ejecución de presentación está integrado en un complemento de navegador que admite varias versiones de Windows, así como Mac OS X, usando varios navegadores, tal como se mencionó anteriormente. El resultado es un motor independiente de representación de gráficos y medios que puede acoplarse al explorador y controlarse mediante JavaScript.

Aplicaciones de Servidor con Silverlight

No es correcto pensar en Silverlight como una tecnología cliente pensada para incrustar contenido enriquecido en el navegador. Este tipo de contenido enriquecido ya es posible mediante el uso de complementos cerrados generados como subprogramas de Java, controles ActiveX o aplicaciones Flash. Silverlight, por su parte, es una tecnología abierta en el sentido que la interfaz de usuario se define en XAML basado en texto y la capacidad de programación se consigue con JavaScript. Esto permite a los desarrolladores generar fácilmente aplicaciones que interactúen con servidores back-end.

Por ejemplo, consideremos una aplicación cualquiera. Si deseara producir una aplicación meteorológica en el cliente, podría generar un subprograma de Java, un control ActiveX o una aplicación Flash que use un servicio Web y después se requiera implementar este subprograma en el cliente. Sin embargo, esto aumentaría las necesidades de comunicación entre el cliente y el servidor. ¿Qué sucede si este origen de datos fuera un servicio de suscripción de pago? La persona que implementa la aplicación tiene que encargarse de autenticar las licencias de todos los clientes que obtienen acceso al servicio de datos y eso quita tiempo para crear lógica empresarial específica del dominio.

Sin embargo, si la aplicación se puede ensamblar en el servidor y todos los datos se pueden volver a pasar al cliente, entonces se reducirá la carga de trabajo. Al usar una herramienta como Expression Blend se puede ensamblar una plantilla para la interfaz de usuario de la aplicación y expresarla como XAML. A continuación, el desarrollador, en tiempo de ejecución, toma los datos pertinentes y los inserta en la plantilla, devolviendo el XAML terminado al cliente que lo representa. No se requiere ninguna lógica de conectividad al cliente (aparte de la conectividad inicial con el servidor) y la implementación y administración del cliente se mantienen relativamente sencillas.

Competencia más cercana

-Adobe Flex.- Término que agrupa una serie de tecnologías publicadas desde 2004 por Macromedia (ahora Adobe) para dar soporte al despliegue y desarrollo de aplicaciones de Internet basadas en su plataforma Flash.
-Nexaweb.- Framework de desarrollo y distribución de aplicaciones en Internet donde se pueden mantener interfaces de usuario con Java y Ajax.
-OpenLaszlo.- Plataforma de código abierto que no requiere instalación para aplicaciones web con capacidades de interfaz de usuario del software del cliente y cuyos programas en XML y JavaScript se compilan de forma transparente a Flash y DHTML.

Conclusión

El camino de Silverlight en la Web sólo acaba de empezar. Gracias a la riqueza de un motor de representación XAML y a la flexibilidad de usar tecnologías estándar del desarrollo Web, Silverlight es algo que merece la pena añadir al conjunto de herramientas de un desarrollador.

No hay comentarios: