Silverlight 3

Publicación del inglés original: sábado, 12 de julio de 2009 a las 10:50 PST por Somasegar

Ayer anuncié la disponibilidad (en inglés) de Silverlight 3 y el candidato de versión comercial de Expression Blend.

Algunas de las nuevas características y mejoras de Silverlight 3 incluyen compatibilidad para ejecutar aplicaciones de Silverlight fuera del explorador, reproducción de multimedia H.264/AAC/MP4, soporte técnico GPU, API de píxeles que incluyen sombreadores de píxeles, perspectiva 3D, mensajería local entre aplicaciones de Silverlight, un marco de objeto de negocio mejorado, soporte SEO y mejor calidad de texto. En combinación con la continua innovación en Visual Studio y Expression Blend, Silverlight 3 permite a los desarrolladores de .NET crear aplicaciones de Internet enriquecidas de vanguardia y experiencias en medios.

Hoy quiero cubrir algunas de estas características en algo más de profundidad.

Perspectiva 3D

La compatibilidad de perspectiva 3D en Silverlight permite a los programadores utilizar elementos 2D para crear una experiencia de 3D. La perspectiva 3D también es ideal para utilizar mejor el espacio en pantalla. Examinemos una aplicación de imagen sencilla para demostrar cómo se puede utilizar la perspectiva 3D para mejorar tanto la apariencia como la utilización de la pantalla. En lugar de mostrar sólo una imagen a la vez, tenemos que mostrar una imagen principal en resolución completa y un par más a ambos lados en una vista en perspectiva.

Para dar a la imagen una proyección 3D, establezca la propiedad Projection de la imagen en un PlaneProjection. PlaneProjection expone un conjunto de propiedades que permiten que se trate el elemento como si fuera un espacio tridimensional. Establezca la propiedad RotationY a 70 para girar el objeto 70 grados a lo largo del eje Y o eje vertical. Esto tiene el efecto de hacer que el elemento aparezca como si lo hubiera girado casi perpendicular a la pantalla. A continuación, movemos el elemento hacia atrás y a la derecha para dejar espacio para otras imágenes. Para ello, establecemos las propiedades GlobalOffsetX y GlobalOffsetZ.La entrada de datos y los eventos funcionan como se esperaba en el elemento de perspectiva 3D, por lo que una perspectiva 3D DataGrid o TextBox mantiene toda su funcionalidad cuando se le aplica una transformación de perspectiva 3D. Para terminar la aplicación, vamos a agregar las otras 4 imágenes y aplicar transformaciones de perspectiva ligeramente diferentes. Las imágenes de la izquierda y de la derecha tienen un GlobalOffsetX diferente para moverlas a la izquierda o a la derecha.

<UserControl x:Class="P3DSample.MainPage"

xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">

<Grid x:Name="LayoutRoot" Background="Black">

<Image Source="Image01.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="-70" GlobalOffsetX="-300" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image02.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="-70" GlobalOffsetX="-225" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image03.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="70" GlobalOffsetX="300" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image04.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="70" GlobalOffsetX="225" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image00.jpg" Stretch="None" />

</Grid>

</UserControl>

Aquí está el resultado final:

Mejoras de conexión de datos

Los enlaces de ElementName permiten a los programadores enlazar un UIElement a otro en XAML en lugar de tener que escribir controladores de eventos. En Silverlight 3, existe una propiedad nueva denominada ElementName en la clase Binding. Cuando se establece ElementName, el motor de enlace utiliza el elemento especificado como origen para este enlace. La propiedad Path hace referencia a una propiedad en el origen UIElement para enlazarlo. Si ElementName señala a un DependencyProperty, el motor de enlace escucha los cambios de DependencyProperty y actualiza el enlace en consecuencia.Este es un segmento XAML que muestra un Slider que controla la opacidad de nuestra imagen del centro mediante el enlace de ElementName:

<Grid x:Name="LayoutRoot" Background="Black">

<Grid.RowDefinitions>

<RowDefinition/>

<RowDefinition Height="50"/>

</Grid.RowDefinitions>

<Image Source="Image01.jpg" Stretch="None" >

<Image.Projection>

<PlaneProjection RotationY="-70" GlobalOffsetX="-300" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image02.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="-70" GlobalOffsetX="-225" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image03.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="70" GlobalOffsetX="300" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image04.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="70" GlobalOffsetX="225" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image00.jpg" Stretch="None" Opacity="{Binding ElementName=slider, Path=Value}" />

<Slider x:Name="slider" Grid.Row="1" Width="200" Maximum="1" Minimum="0" />

</Grid>

El XAML anterior muestra la interfaz de usuario siguiente. Mover el control deslizante cambia la opacidad de la imagen de Blue Dragon de transparente a completamente opaca:

Soporte fuera del explorador

La compatibilidad fuera del explorador en Silverlight 3 permite a los desarrolladores crear aplicaciones de Silverlight que se pueden ejecutar dentro y fuera del explorador. Para habilitar nuestra aplicación para que se ejecute fuera del explorador, edite el archivo de la aplicación AppManifest.xml. En Visual Studio, este archivo se encuentra bajo el nodo Propiedades en el Explorador de soluciones. En AppManifest.xml, agregue lo siguiente:

<Deployment xmlns="https://schemas.microsoft.com/client/2007/deployment"

xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >

<Deployment.Parts>

</Deployment.Parts>

<Deployment.OutOfBrowserSettings ShortName="My Silverlight Application">

<OutOfBrowserSettings>

<OutOfBrowserSettings.WindowSettings>

<WindowSettings Title="My Silverlight Application" />

</OutOfBrowserSettings.WindowSettings>

<OutOfBrowserSettings.Blurb>Description of my app</OutOfBrowserSettings.Blurb>

</OutOfBrowserSettings>

</Deployment.OutOfBrowserSettings>

</Deployment>

Cuando ejecute la aplicación, observará una adición al menú contextual que lee "instalar la aplicación de Silverlight en el equipo… ". En la siguiente imagen, puede ver el menú contextual en la esquina inferior izquierda:

Cuando haga clic en este elemento de menú, obtendrá una opción para instalar esta aplicación en el equipo. La aplicación fuera del explorador tendrá este aspecto:

Ahora puede cerrar la versión de la aplicación que utiliza el explorador y utilizar la versión fuera del explorador. Si abre el menú Inicio, encontrará un acceso directo para iniciar la aplicación en Inicio->Programas. Puede iniciar la aplicación incluso cuando no está conectado a una red.

Estos son sólo algunas de las nuevas características de Silverlight 3.Puede encontrar más información aquí (en inglés).

¡Namaste!