Ads 468x60px

Perfil

martes, 29 de enero de 2013

Fundamentos de Silverlight Parte1


¿QuĂ© es Silverlight?

Silverlight es una tecnologĂ­a que nos permite crear Aplicaciones Enriquecidas para Internet o RIA por sus siglas en inglĂ©s (Rich Internet Applications). Con Silverlight podemos construir aplicaciones que van desde pequeños componentes dentro de una página Web hasta sofisticadas Aplicaciones de Negocio que estĂ©n consumiendo y presentando datos de alguna base de datos, pasando por juegos casuales, reproductores de multimedios, Gadgets para Windows Vista o 7, y un largo etcĂ©tera.
Incluso después de más de 3 años de haber sido liberada al público en general su primera versión, aún existen muchas confusiones y malinterpretaciones acerca de esta tecnología. Primeramente, tenemos que decir que Silverlight es una tecnología multi-navegador, esto es, es capaz de ejecutar adentro de los navegadores más comunes disponibles hoy en día: Internet Explorer, FireFox, Chrome y Safari.
Por otro lado, Silverlight es una tecnologĂ­a Multi-Plataforma, esto es, es capaz de ejecutar en los principales Sistemas Operativos disponibles hoy en dĂ­a: Windows, Mac OSX y Linux (a travĂ©s de Moonlight, proyecto que es llevado a cabo por la empresa Novell y que es la implementaciĂłn de Silverlight para ese Sistema Operativo). 

Silverlight, a diferencia de otras tecnologías Web del lado del Servidor (por ejemplo: ASP.NET, PHP, etc.), es una tecnología del lado del Cliente, es decir, todo el cómputo y ejecución de las aplicaciones sucede en el equipo del usuario, tal y como si se tratase de cualquier tipo de aplicación instalada. Esto es una gran ventaja ya que Silverlight puede sacar provecho de las características de procesamiento del hardware en donde está instalado.

Silverlight es un plugin que ofrece una experiencia de instalación muy similar a cualquier otro plugin para los navegadores. En el caso de la versión 5 (que es la versión más nueva disponible al momento de estar escribiendo esto) tiene un tamaño aproximado de 7 MB para el caso del Sistema Operativo Windows.
Durante el lanzamiento de Silverlight 4 en Abril 2010, se anunció que próximamente las aplicaciones de Silverlight podrán ejecutar en electrónicos de uso común en nuestros hogares, como televisores, reproductores de DVD, reproductores de Blu-Ray y cajas decodificadoras de cable para la TV. Asimismo, Silverlight es una de las plataformas de desarrollo para la nueva versión del Sistema Operativo móvil de Microsoft: Windows Phone 7. En conjunto con XNA como plataforma para la construcción de juegos 2D / 3D, Silverlight ofrece a los desarrolladores de Aplicaciones móviles una plataforma robusta, fácil de aprender y con una oferta de herramientas con alta funcionalidad.
Con lo anterior podemos deducir que Silverlight es una gran apuesta para ser una tecnologĂ­a que sea capaz de ejecutar de la misma manera, en diferentes lugares: en los tres tipos de pantalla más comunes en la vida de las personas hoy en dĂ­a (equipos de cĂłmputo tradicionales como PC’s o Laptops, Televisores y telĂ©fonos mĂłviles). Un mismo cĂłdigo ejecutando en diferentes dispositivos, con diferentes resoluciones, con caracterĂ­sticas de hardware diferente. Es de gran importancia esto ya que los desarrolladores podrán reutilizar sus conocimientos existentes en tecnologĂ­a .NET para poder construir soluciones que lleguen a más personas y en lugares donde antes esto no era posible.
Se presume que el nuevo dashboard de Xbox liberado en noviembre 2011 incluye Silverlight como la plataforma de desarrollo para sus aplicaciones.  Sin embargo, aĂşn no hay documentaciĂłn tĂ©cnica oficial al dĂ­a de hoy que hable acerca de ello.

Silverlight y HTML

El propósito de Silverlight nunca ha sido reemplazar HTML como tecnología de presentación de Interfaces de Usuario, sino complementarla con características y funcionalidades que no están disponibles en dicha tecnología. Si bien HTML es un estándar que pretende ser implementado de manera única y consistente en todos los navegadores disponibles hoy en día, esto en la práctica ha sido, es y será un proceso lento ya que podemos destacar una falta de quórum entre las principales empresas que respaldan sus navegadores, quienes (paradójicamente) implementan las especificaciones de estándares de manera diferente. Además si hablamos en términos de funcionalidad, Silverlight ofrece más y mejores características.
Otras consideraciones importantes son:
Rendimiento
El rendimiento de las Aplicaciones de Silverlight es superior gracias a que el código ejecuta bajo el Common Language Runtime (CLR), además de que cuenta con múltiples hilos de ejecución.
Consistencia
Silverlight se asegura de renderizar las Aplicaciones de manera consistente en cualquier lugar donde esté ejecutando
Tiempo
El tiempo de innovación es un punto muy importante ya que la evolución de la funcionalidad y características en las versiones futuras de Silverlight sucederán en un lapso de tiempo muy corto, a comparación de las especificaciones de estándares como HTML.
Para mayor informaciĂłn puedes consultar el siguiente artĂ­culo de Brad Becker, Director de AdministraciĂłn de Productos, Plataformas de Desarrollo:http://team.silverlight.net/announcement/the-future-of-silverlight/

Silverlight y el .NET Framework

Una característica muy importante acerca de Silverlight es que no requiere del .NET Framework tanto del lado del Cliente como del lado del Servidor. Del lado del Cliente es obvio ya que es precisamente a esto que podemos ejecutar aplicativos de Silverlight en Sistemas Operativos que no sean Microsoft Windows. Y más aún, también es independiente del .NET Framework del lado del Servidor: no es necesario tener instalado Internet Information Services (IIS) en nuestro Servidor Web, también puede ser Apache, Tomcat, etc.
Silverlight y Windows 8
Durante el primer keynote del evento //Build/ que se llevĂł a cabo del 13 al 16 de Septiembre en Anaheim, CA., se mostrĂł al mundo entero la plataforma de desarrollo de aplicaciones en el prĂłximo Sistema Operativo de Microsoft: Windows 8.  En Windows 8 habrá dos categorĂ­as de aplicaciones: Aplicaciones Metro, las cuales están enfocadas a dispositivos táctiles como tablets y Aplicaciones de Escritorio, las cuales son las aplicaciones de ventanas que todos conocemos con mecanismos de entrada tradicional de teclado y mouse, por ejemplo, Aplicaciones de Negocio (LOB por sus siglas en inglĂ©s), Aplicaciones de tipo OLTP, Herramientas, etc.
La plataforma de desarrollo para las Aplicaciones de Escritorio está basada en .NET ySilverlight, tal y como sucede hoy en dĂ­a, por lo que no hay ningĂşn tipo de cambio con respecto a las aplicaciones actuales.
Por otro lado, la plataforma de desarrollo para las Aplicaciones Metro está basada en Windows Runtime (WinRT, un API orientada a objetos alterna a Win32) y XAML o HTML.  El motor de interpretaciĂłn de XAML ha sido incorporado al core del Sistema Operativo ¡por lo que ahora más que nunca es muy importante conocer y dominar este importante lenguaje!
Como podrás observar en la ilustraciĂłn anterior, en Windows 8 el .NET Framework y Silverlight siguen siendo las plataformas principales para la creaciĂłn de Aplicaciones de Escritorio, ya que si bien es importante un soporte nativo a los dispositivos con pantallas táctiles, hay muchos escenarios en donde no hace sentido tener una aplicaciĂłn de este estilo, por lo que las Aplicaciones de Escritorio seguirán siendo la principal categorĂ­a durante muchos años por venir.