Hola Universo:

En el post anterior viste 8 preguntas frecuentes que puedes hacerte al introducirte en el mundo de Silverlight; hoy continuaremos con ellas pero con detalles un poco mas técnicos.

9. Que significa RIA?

RIA significa Aplicaciones de Internet Enriquecidas  (Rich Internet Applications) las cuales son aplicaciones Web con interfaces de usuario que incluyen elementos multimedia como audio, video, etc. Para entender esto, puedes pensar que este concepto es muy similar al de las aplicaciones de escritorio exceptuando que las aplicaciones RIA son basadas en la Web.

ria-frameworks

10. Que es el Plug-In de Silverlight?

  • Es un componente ligero necesario para que los usuarios puedan tener acceso a aplicaciones Silverlight. La descarga e instalación del Plug-In  toma tan solo unos momentos y no necesita mucho espacio en Disco (como dije anteriormente, 6 MB para Windows y 9 MB en MAC).
  • Es responsable de acceder al objeto Silverlight en una página Web, descargando y accediendo al paquete XAP, configurando el entorno del programa e iniciando la ejecución de la aplicación.
  • Cuando una página Web que contiene una aplicación Silverlight es mostrada, el usuario  debe observar un enlace al sitio de descarga del Plug-In si no se encuentra instalado.

11. Que es el “Silverlight Runtime” (tiempo de ejecución)?

Silverlight Runtime es un Plug-In de navegador para soportar aplicaciones habilitadas de Silverlight. Si el Silverlight Runtime no se encuentra instalado, los navegadores no permitirían correr elementos Silverlight en ellos. Puedes establecer etiquetas Silverlight como una forma de que el navegador automáticamente interprete que el usuario descarga e instala el Plug-In Silverlight cuando tu aplicación es lanzada en el navegador. Instalar el Silverlight Runtime es una operación de una sola vez para el cliente, en otras palabras, una vez instalado, este puede lanzarse automáticamente cuando una aplicación Silverlight es cargada en el navegador.

12. Que es el Silverlight SDK?

Silverlight SDK es un conjunto de herramientas, documentación, ejemplos y plantillas para desarrolladores web que los ayudan a desarrollar fácilmente aplicaciones Silverlight. El SDK no es realmente obligatorio para desarrollar aplicaciones Silverlight; de todas formas, el SDK puede hacer el desarrollo mucho mas fácil.

13. ¿Cuáles son las versiones de Silverlight disponibles hasta ahora?

Silverlight 1.0: Consiste en Framework (marco de trabajo) de presentación núcleo, el cual es responsable de la interfaz de usuario (IU), interacción y entrada de usuario, controles de IU básicos, animación y gráficos, reproducción de medios, manejo de restricciones digitales (DRM), e integración con DOM.

Silverlight 2.0: (previamente referido como la versión 1.1) incluye una versión del .NET Framework, implementando completamente el mismo Entorno de Ejecución de Lenguajes Comunes o CLR que la versión del .NET Framework 3.0. El marcado XAML como cualquier código, es compilado en el el ensamblado .NET el cual a su vez es comprimido usando ZIP y almacenado en un archivo con extensión .XAP.

Silverlight 3: Fue liberado el 9 de Julio del 2009, es una extensión de Silverlight 2.0 y principalmente brinda mejoras en las capacidades graficas, manejo de multimedia, áreas de desarrollo de aplicaciones (controles adicionales, compatibilidad de enlaces mejoradas, y la funcionalidad de “Out-Of-Browser” o fuera del navegador, e integración con las herramientas de Expression Blend 3.

Silverlight 4: Fue liberado el 15 de abril del 2010 (junto con las herramientas de Silverlight 4 para desarrolladores)

14. Que es el archivo .XAP?

XAP es  un paquete de aplicación basada en Silverlight, el cual es generado cuando un proyecto Silverlight es construido. El archivo .XAP es un archivo de salida comprimido para la aplicación Silverlight. El archivo .XAP incluye:

  • AppManifest.xaml
  • El ensamblado de salida compilado del proyecto Silverlight (con extensión .DLL)
  • Archivos de recursos referentes a la aplicación Silverlight.

Las páginas Web como archivos .ASPX y .HTML usan componentes Silverlight cargando los archivos .XAP a través de la etiqueta Object en HTML o <asp: Silverlight> en las paginas ASP.NET. Archivos .XAP (se pronuncia “zap”) usa un algoritmo de compresión estándar para minimizar el tamaño de descarga del cliente. Si renombras el archivo PruebaSilverlight.xap a PruebaSilverlight.zip y lo abres usando una herramienta de descompresión (como 7zip o Winrar) Puedes ver el contenido anteriormente mencionado del archivo como cualquier archivo ZIP .

15. Como funciona XAP?

Una vez que se ha creado un archivo .XAP,  el Plug-In de Silverlight descarga el archivo y lo corre en un espacio de trabajo independiente.

16. Como utilizo un archivo .XAP?

Un archivo .XAP es usado para contener y transferir los ensamblados y recursos de la aplicación de código administrado. Esta aplicación de código administrado debe correr dentro del Plug-In de Navegador de Silverlight.

17. Que es el archivo Silverlight.js?

Silverlight.js es un archivo ayudante el cual permite a Sitios web crear la instalación avanzada de Silverlight y experiencias de instanciación. Puedes llamar  las funciones  “createObject”  y “createObjectEx” definidas en este archivo para embeber o incrustar el Plug-In Silverlight en una pagina Web.

18. Cual es el uso de la carpeta “ClientBin”?

La carpeta ClientBin es usada para alojar el archivo .XAP de la aplicación Silverlight. Puedes tener esto en cualquier lugar de tu aplicación Web pero esta es la nomenclatura usada para Silverlight.

19. Como puedo cambiar la pagina por defecto de mi aplicación Silverlight?

Para cambiar la pagina necesitas establecer la propiedad “RootVisual” dentro del evento “Application_Startup” alojada o en el archivo App.xaml.

private void Application_Startup(object sender, StartupEventArgs e)
{
    this.RootVisual = new MainPage(); // tu objeto XAML
}

20. Cuales son los archivos de Diseño y los archivos Code-Behind en Silverlight?

Los elementos de interfaz de usuario (IU) en las aplicaciones Silverlight son definidas en archivos XAML. La lógica y funcionalidad de dichas aplicaciones son implementadas usando código .NET (.cs, .vb..) que comparten las mismas clases con el archivo XAML.

21. Que es XAML?

XAML significa Lenguaje de Marcado de Aplicación Extendida (eXtended Application Markup Language) XAML contiene XML que es usado declarativamente para definir la interfaz de usuario en aplicaciones Silverlight o WPF. Por ejemplo, si necesitas mostrar un rectángulo, este es el código XAML:

<UserControl x:Class="SilverlightApplication1.SilverlightControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="400" Height="300">
    <Canvas Width="500" Height="500" Background="White">
        <Rectangle Canvas.Left="75" Canvas.Top="90" Fill="red" Width="100" Height="100" />
    </Canvas>
</UserControl>

Resultando esto:

1

La ventaja de XAML es que es muy similar a HTML por su naturaleza (lenguajes de etiquetas) así que es relativamente fácil de leer y aprender.

22. Que es el archivo “AppManifest.xml”?

Primero démosle un vistazo a un ejemplo de un archivo AppManifest.xaml:

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="SilverlightApplication1" EntryPointType="SilverlightApplication1.App" RuntimeVersion="2.0.30226.2">
  <Deployment.Parts>
    <AssemblyPart x:Name="SilverlightApplication1" Source="SilverlightApplication1.dll" />
    <AssemblyPart x:Name="System.Windows.Controls" Source="System.Windows.Controls.dll" />
    <AssemblyPart x:Name="System.Windows.Controls.Extended" Source="System.Windows.Controls.Extended.dll" />
  </Deployment.Parts>
</Deployment>

El primer elemento del archivo es el nodo “Deployment” Este nodo define la aplicación y contiene los nodos hijos “AssemblyPart” Como puedes ver, los nodos AssemblyPart definen cual ensamblado (DLL’s) están contenidas en el archivo .XAP, y le da a cada uno un nombre. Ahora, regresando arriba, puedes ver que el nodo Deployment tiene los atributos “EntryPointAssembly” y “EntryPointType”. EntryPointAssembly define cual ensamblado es definido posteriormente (como un nodo hijo AssemblyPart) como ensamblado principal (DLL) para la aplicación. Y, el EntryPointType especifica que clase contenida en el ensamblado (DLL), definido en el atributo EntryPointAssembly, es la clase principal que podría ser instanciada para iniciar la aplicación. El nodo Deployment también tiene un atributo RuntimeVersion que define la versión de Silverlight  en la que fue construida la aplicación.

23. Que es app.xaml?

App.xaml es un archivo usado por las aplicaciones Silverlight para declarar recursos compartidos como brochas, objetos de varios estilos, plantillas, etc. También, el “Code Behind”  de app.xaml.cs es usado para manejar los eventos de nivel de la aplicación global como Application_Startup, Application_Exit y Application_UnhandledException (SImilar al archivo Global.asax para aplicaciones ASP.NET). Cuando Visual Studio crea el archivo app.xaml automáticamente, también crea manejadores de evento con algo de código por defecto. Puedes cambiar el código a tu conveniencia.

private void Application_Startup(object sender, StartupEventArgs e)
{
}
private void Application_Exit(object sender, EventArgs e)
{
}
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
}

Para los desarrolladores ASP.NET, el código anterior les pareció familiar debido a que es parecido a Global.asax.

Hasta aquí llegamos por hoy estimad@s, espero que puedan leer la próxima entrega con la que concluiremos esta serie de posts.

Compilación Completa..