Recordatorio: “Creando un reproductor de mp3 en Silverlight 3”

Este es un recordatorio para que nos acompañen el día de hoy 10 de Junio a las 7:00p.m. en otra reunión más de La Liga Silverlight con el tema: “Creando un reproductor de mp3 en Silverlight 3”.

En este Web Cast veremos cómo con Silverlight 3 es bastante sencillo crear aplicaciones que hagan uso de multimedios como archivos de audio mp3.  Asiste a este evento de La Liga Silverlight: la primer comunidad MSDN en Español acerca de Silverlight y tecnologías relacionadas.

Oradores:

  • José Luis Estrada “El Jocho”
  • Rodrigo Díaz Concha

Se pueden registrar al Web Cast en esta dirección

Los esperamos!  Nos dará mucho gusto tenerlos presentes

Salu2!

Silverlight 3 Beta 1: Diccionarios de Recursos de tipo Merged

Introducción

Otra característica nueva en Silverlight 3 Beta 1, tomada de su hermano mayor WPF son los Diccionarios de Recursos de tipo Merged (mezclados, unidos), o en inglés: Merged Resource Dictionaries; los cuales nos permiten tener de manera desacoplada recursos (por ejemplo estilos) en un archivo por separado.  Esto nos ofrece un mecanismo para compartir estilos entre diferentes proyectos de Silverlight, o incluso entre proyectos de Silverlight y proyectos de WPF.

El archivo deberá tener declarado todos y cada uno de los Recursos que deseamos incorporar a ese diccionario, y deberán estar contenidos en un elemento de tipo <ResourceDictionary>.  El siguiente fragmento de código Xaml muestra un archivo llamado Estilos.xaml que funge como Diccionario de Recursos:

Noten cómo el elemento <ResourceDictionary> incluye los espacios de nombre xml, esto para poder resolver de manera correcta los elementos que agreguemos como Recursos en el Diccionario.

Por otro lado, para invocar ese Diccionario desde algún Diccionario de Recursos (UserControl, Application o algún contenedor) tenemos que hacerlo a través del elemento <ResourceDictionary> lo cual veremos más adelante en este mismo artículo.

Ahora bien, el archivo que contenga el Diccionario de Recursos podrá tener cualquier nombre arbitrario, pero lo que es un hecho es que el XAP aún necesitará referenciarlo de alguna manera:

  • Agregándolo como archivo en el proyecto de Silverlight y marcarlo como Resource
  • Agregándolo como archivo en el proyecto de Silverlight y marcarlo como Content
  • Tenerlo en un Ensamblado externo

Cada opción afecta la sintaxis con la que invocaremos el Diccionario de Recursos.

Build Action = Resource

Cuando marcamos un archivo como Resource en un proyecto de Silverlight, dicho archivo se incluirá en el diccionario de Recursos del Ensamblado.  Este mecanismo es conveniente cuando queremos tener una experiencia WYSIWYG en el diseño de la aplicación, ya que Visual Studio resolverá de manera inmediata el archivo.

Si utilizamos esta opción para el archivo con el Diccionario de Recursos, entonces la sintaxis en Xaml para referenciar los recursos que contiene deberá de ser de la manera:

nombre del ensamblado;component/nombre del archivo.xaml

El siguiente ejemplo de código muestra esta sintaxis al invocar el Diccionario:

Build Action = Content

Si marcamos el archivo como Content, el archivo formará parte del empaquetado XAP como tal, y ya no del Diccionario de Recursos del Ensamblado como mencionamos con anterioridad.

Si utilizamos esta opción, la sintaxis para referenciar el archivo del Diccionario de Recursos será:

/Nombre del archivo.xaml

Por ejemplo:

Pero en este caso Visual Studio tendrá un comportamiento inesperado ya que no podremos ver el diseñador correctamente sino hasta ejecutar la aplicación como tal.

Diccionario de Recursos Merged en otro Ensamblado

Para usar un Diccionario de Recursos que está en otro Ensamblado, necesitamos primeramente referenciar el .dll en cuestión y posteriormente utilizar la misma sintaxis que vimos cuando el archivo está marcado como Resource en el mismo proyecto (sección “Build Action=Resource” en este mismo artículo).  Cabe mencionar que en este caso también el archivo deberá estar marcado como Resource en el Ensamblado externo.

Resumen

Los Merged Resource Dictionaries nos permiten crear una lista de recursos en un archivo para poderlos reutilizar entre diferentes proyectos de Silverlight o incluso entre un proyecto de Silverlight y uno de WPF ya que brindan un mecanismo de fácil implementación y desacoplamiento.

Búsquedas con el API de Bing y Silverlight

Introducción

Hace algún tiempo hice un artículo de cómo podemos utilizar el API de Live Search en nuestras aplicaciones de Silverlight.  Este es únicamente una actualización a ese artículo pero ahora utilizando el API de Bing.

bing

Ahora que Bing ha sido liberado al público en general uno de los puntos muy importantes a destacar es la actualización que Microsoft ha hecho del API de búsqueda que podemos incorporar en nuestras aplicaciones.  Aunque la experiencia en el desarrollo con esta nueva API es bastante similar a lo que teníamos con anterioridad en Live Search, es destacable el hecho de que ahora podemos hacer búsquedas en Encarta Instant Answers (Respuestas Instantáneas de Encarta), lo cual nos permite no solamente buscar una cadena en páginas Web, sino también en esta importante y enorme enciclopedia en línea.  Esto lo logramos usando InstantAnswers como parte de la propiedad SourceType[] cuando creamos un Request.

Otro punto novedoso del API es el SourceType de tipo RelatedSearch el cual nos permite hacer búsquedas relacionadas con la búsqueda actual.  Para ver todas las novedades del API de Bing lo puedes hacer en esta página.

InstantAnswers de Encarta con Silverlight

Paso 1

Lo primero que tenemos que hacer al igual que en la versión del API de Live Search es registrarnos en el portal de desarrolladores para obtener un AppID.  El AppID es la puerta que nos permite hacer búsquedas en el motor ya que está ligado a nuestra cuenta de MSN.  Para obtener tu AppID lo puedes hacer aquí.

Paso 2

Ahora que ya tienes tu AppID disponible el siguiente paso será decidir la manera de como nos vamos a comunicar al servicio de búsqueda: a través de JSON, XML o SOAP.  En el caso de este artículo haré la demostración con SOAP debido a que Visual Studio .NET nos ayuda a crear la clase proxy ya que el servicio es autodescriptible, es decir, expone un WSDL que podemos usar para identificar su funcionamiento.

Paso 3

El paso siguiente es crear una nueva aplicación de Silverlight por medio de la plantilla de Visual Studio .NET.  Posteriormente agregamos la referencia al servicio localizado en: http://api.search.live.net/search.wsdl?AppID=TUAPPID (es el mismo Url que el API de Live Search).

Para hacer una búsqueda en Encarta Instant Answers tenemos que especificar el tipo de SourceType en la propiedad Sources cuando creamos el Request.  El siguiente fragmento código muestra un ejemplo de la construcción del Request:

Noten cómo en este ejemplo estoy estableciendo la propiedad Market a “es-MX”.  Al especificar esto estoy indicando el idioma y país para la búsqueda.  Si no hacemos esto la búsqueda automáticamente tratará de detectar mi localización geográfica e idioma adecuado basándose en mi dirección de IP y otros parámetros.

Asimismo esto es importante mencionar ya que algunas preguntas abiertas no podrán ser contestadas en esta demostración ya que en su mayoría responde únicamente a preguntas en idioma Inglés.

Finalmente un punto muy importante al obtener las respuestas de Encarta Instant Answers es el hecho de que la propiedad InstantAnswerSpecificData es de tipo string pero está expresada como un documento XML, así que la interpretación de dicha cadena es necesaria.  A continuación se muestra un código de ejemplo de cómo podemos interpretar dicha propiedad para sacar la información necesaria:

Bing con Silverlight

Para ver la aplicación en acción lo puedes hacer en esta página (el plugin de Silverlight 3 es requerido):

http://silverlight.services.live.com/invoke/76819/Silverlight%20-%20Bing%20Instant%20Answers/iframe.html

Próximos WebCasts de La Liga Silverlight

Logo de La Liga Silverlight

Les invito cordialmente a la próxima saga de WebCasts que los miembros de La Liga Silverlight daremos de manera virtual en las siguientes semanas.

Si están interesados en aprender un poco más acerca de Silverlight y quieren hacerlo en la comodidad de sus hogares u oficinas aprovechen…! esta es una excelente oportunidad.

Los Web Casts son totalmente gratuitos y el registro es público.

Creando un reproductor de mp3 en Silverlight 3

Introduccion a Silverlight 3 a través del desarrollo de un reproductor que explore las capacidades de streaming y de manejo de audio de alta definición con Silverlight 3 y Visual Studio 2010

Expositores: José Luis Estrada y Rodrigo Díaz Concha

Fecha: 10 de Junio 2009

Horario: 19:00 a 20:00 hrs. hora de la Ciudad de México / Guadalajara / Monterrey (GMT -06:00)

Regístrate aquí

Introducción al control Virtual Earth para Silverlight (ahora mejor conocido como Bing Maps for Enterprise)

En esta sesión veremos cómo integrar funcionalidades de georeferenciación en nuestras aplicaciones utilizando el control de Virtual Earth para Silverlight

Expositor:  Rodrigo Díaz Concha

Fecha: 23 de Junio 2009

Horario: 19:00 a 20:00 hrs. hora de la Ciudad de México / Guadalajara / Monterrey (GMT -06:00)

Regístrate aquí

Aplicaciones de Silverlight 3 para SharePoint

A través de Silverlight 3 podemos crear aplicaciones que hagan uso de los datos de las listas que expone SharePoint a través de sus Servicios Web inherentes.  En esta sesión aprenderemos cómo crear Web Parts para SharePoint utilizando Silverlight 3 como tecnología para la Interfaz de Usuario.

Expositor:  Rodrigo Díaz Concha

Fecha: 07 de Julio 2009

Horario: 19:00 a 20:00 hrs. hora de la Ciudad de México / Guadalajara / Monterrey (GMT -06:00)

Regístrate aquí

Silverlight 3 Toolkit

En esta sesión veremos qué incluye el Silverlight Toolkit para extender nuestras aplicaciones de Silverlight 3 y complementar su funcionalidad con una extensa gama de controles y contenedores.

Expositor:  Arturo Molina

Fecha: 21 de Julio 2009

Horario: 19:00 a 20:00 hrs. hora de la Ciudad de México / Guadalajara / Monterrey (GMT -06:00)

Regístrate aquí

Framework de Navegación de Silverlight 3

En este Web Cast veremos el Framework de Navegación de Silverlight 3 que nos permite incrustar frames dentro de nuestro xaml y permitir a las aplicaciones contar con Url’s únicos y amigables para los Motores de Búsqueda.

Expositor:  Jorge Levy

Fecha: 06 de Agosto 2009

Horario: 19:00 a 20:00 hrs. hora de la Ciudad de México / Guadalajara / Monterrey (GMT -06:00)

Regístrate aquí

Los esperamos !!!

Lanzamiento de Silverlight 3 y Expression Blend 3 el 10 de Julio

Esta es LA noticia que todos los que estamos inmersos en el mundo de Silverlight estábamos esperando:  según Mary Jo Foley el 10 de Julio es el día en el que Microsoft lanzará las versiones finales de Silverlight 3 y Expression Blend 3 en la ciudad de San Francisco.

No cabe duda que Microsoft está apoyando y respaldando esta tecnología y le está apostando a convertirse en la tecnología de facto en los próximos años para las aplicaciones Web en su plataforma.  Si aún estás escéptico acerca de Silverlight, este es el mejor momento en que te enteres qué tiene para ti, para tus aplicaciones y para tu empresa!

Y qué decir de Expression Blend 3?  Pudimos apreciar en el MIX09 sus maravillosas características y mejoras y al mismo tiempo veíamos tan lejos el día en el que pudieramos tenerlo en nuestras mano… bueno pues ese día ya tiene nombre (o número ;) ).

Excelente noticia!!!

Silverlight Tour – Veracruz [25 al 27 de Junio]

El Silverlight Tour estrena nuevas ciudades en México: el día 25 de Junio estará pisando el puerto de Veracruz, Veracruz.

El Silverlight Tour Workshop es un curso de tres días de alta profundidad técnica acerca de Silverlight 2 y 3. El curso se imparte en varios idiomas en diferentes países en todo el Mundo.

Incluye:

  • 3 días de entrenamientointensivo de Silverlight 2 y Silverlight 3
  • Cobertura de Expression Blend y Visual Studio .NET 2008
  • Arquitectura de Soluciones con Silverlight
  • Comunicación con el Servidor
  • Creación dinámica de contenido XAML
  • Comunicación con el DOM
  • La experiencia fuera del Navegador
  • Mejoras a la Estilización, incluyendo Diccionarios Merge y Estilos Based-On
  • Cobertura de Expression Blend 3 Preview
  • Material totalmente en Español

Silverlight Tour – Monterrey [11 al 13 de Junio]

Si están en la regia ciudad de Monterrey, Nuevo León y quieren aprender Silverlight 2 y Silverlight 3 no busquen más:  el Silverlight Tour Workshop en Español regresa a esa ciudad del 11 al 13 de Junio 2009.  El registro está abierto así que les sugiero que se registren y aseguren su lugar.

El Silverlight Tour Workshop es un curso de tres días de alta profundidad técnica acerca de Silverlight 2 y 3. El curso se imparte en varios idiomas en diferentes países en todo el Mundo.

Incluye:

  • 3 días de entrenamiento intensivo de Silverlight 2 y 3
  • Cobertura de Expression Blend y Visual Studio .NET 2008
  • Arquitectura de Soluciones con Silverlight
  • Comunicación con el Servidor
  • Creación dinámica de contenido XAML
  • Comunicación con el DOM
  • La experiencia fuera del Navegador
  • Mejoras a la Estilización, incluyendo Diccionarios Merge y Estilos Based-On
  • Cobertura de Expression Blend 3 Preview
  • Material totalmente en Español

Silverlight Tour – Ciudad de México [04Jun al 06Jun]

El Silverlight Tour vuelve a pisar la capital de México el día 04 de Junio.  Si están en la ciudad o sus alrededores y desean aprender Silverlight 2 y Silverlight 3 esta es su mejor opción.  Todavía hay suficiente tiempo para que se registren y aseguren su lugar.

El Silverlight Tour Workshop es un curso de tres días de alta profundidad técnica acerca de Silverlight 2 y 3. El curso se imparte en varios idiomas en diferentes países en todo el Mundo.

Desarrollo con Silverlight en Visual Studio 2010 Beta 1

Solo si han estado debajo de una piedra no sabrán que el día de hoy fue liberado públicamente el Beta 1 de Visual Studio 2010.  La nueva versión de esta herramienta incluye enormes mejoras que merecen un artículo cada una de ellas junto con las nuevas características que podemos encontrar en el .NET Framework 4.0, pero en este artículo nos enfocaremos al desarrollo de aplicaciones de Silverlight con Visual Studio 2010 Beta 1.

Hola Visual Studio 2010

Uno de los primeros cambios evidentes que podemos encontrar en Visual Studio 2010 es que la lista de plantillas de proyectos ahora está un poco más organizada, nos ofrece la capacidad de filtrar plantillas según la versión del .NET Framework al que deseamos apuntar, un cuadro de texto para buscar a través de una cadena en las plantillas, además de permitir ordenamiento por nombre de manera ascendente o descendente:

Caja de diálogo de Nuevo Proyecto en Visual Studio 2010

Crearemos una nueva aplicación llamada SL2010 usando la plantilla de Silverlight Application.  Otro cambio presente en esta nueva versión será en la caja de diálogo “Add Silverlight Application” (Agregar Aplicación de Silverlight), ya que nos permitirá elegir la versión de Silverlight a la que deseamos apuntar!

Caja de diálogo Add Silverlight Application en Visual Studio 2010

Una mejora que sin duda es una de las más solicitadas desde hace tiempo es la capacidad de utilizar Visual Studio con múltiples monitores, esto ya es posible si simplemente desacoplan alguna ventana y la pasan al monitor que deseen.  En la siguiente foto se muestra en la parte izquierda el IDE de Visual Studio 2010 y en el monitor de la izquierda el editor de código fuente de Page.xaml.cs de la solución que acabamos de crear en los pasos anteriores:

Soporte de múltiples monitores en Visual Studio 2010

El editor es donde más cambios y mejoras vamos a poder apreciar.  Visual Studio 2010 Beta 1 trae consigo un soporte mucho más robusto para edición de Xaml de manera visual.  En esta nueva versión podremos editar desde la ventana de Propiedades los valores de las propiedades de elementos y/o controles sin necesidad de hacerlo directamente en el código Xaml.  La siguiente figura muestra el soporte incluso de propiedades de tipo Brush en donde podemos notar cómo la experiencia es similar a la que podemos encontrar en Expression Blend:

Editor de Brochas en Visual Studio 2010

En el editor también podemos crear y manipular las propiedades de los contenedores, por ejemplo el Grid el cual nos provee un mecanismo de distribución a través de columnas y filas –similar a una tabla-.  En el mismo editor (similar a la experiencia en Expression Blend) podemos crear las columnas filas necesarias para el contenedor, y asimismo indicar el tipo de unidad que deseamos para la altura o ancho: *, Auto o fijo:

Otra característica bastante útil y que no está presente en Visual Studio 2008 es la capacidad de arrastrar y colocar controles y elementos en el mismo editor.  La versión 2008 se limitaba a permitirnos únicamente arrastrar y colocar los controles en el editor de código Xaml: algo bastante inútil.  Ahora en esta nueva versión de Visual Studio 2010 Beta 1 el editor se comporta tal y como lo esperamos, similar al comportamiento que tiene Expression Blend cuando tratamos de realizar la misma tarea, incluso similar a las aplicaciones ASP.NET:

Un editor –decente pero no tan potente como en Blend- de Data Bindings también está disponible para nosotros en esta versión.  Esta característica nos permite establecer y editar enlace a datos desde la ventana a propiedades.  A diferencia de Blend, en Visual Studio no hay una manera visual para crear recursos en un control de usuario de Silverlight, no obstante teniendo la fuente de datos ya declarada en el Xaml podemos una manera sencilla el binding utilizando el editor contextual en la ventana de Propiedades:

Los Markup Extensions como {Binding} ahora muestran sus propiedades inherentes en Intellisense, lo cual es una magnífica mejora cuando estamos escribiendo este tipo de objetos:

Visual Studio 2010 es lo suficientemente hábil para mostrarnos aquellos recursos que tenemos disponibles y que están a nuestro alcance, para poderlos utilizar en aquellas propiedades en las que hagan sentido.  Tal es el caso de un DataTemplate declarado en el diccionario de recursos a nivel del UserControl en la aplicación que aquí se muestra, en donde podemos apreciar cómo se despliega como opción en la propiedad ItemTemplate de un ListBox:

Finalmente, una característica muy importante y práctica que podemos encontrar en Visual Studio 2010 es la posibilidad de escalar o des-escalar la versión de nuestra aplicación entre Silverlight 2 y Silverlight 3.  Esto es una gran ventaja si estás desarrollando en una versión específico pero quieres comprobar cómo se comporta si cambias de versión.

Ventana de propiedades del proyecto de Silverlight en Visual Studio 2010

Obviamente si des-escalas una aplicación de Silverlight 3 a Silverlight 2 perderás todas las características inherentes a esa versión, y viceversa: si escalas tu proyecto de Silverlight 2 a 3 inmediatamente podrás utilizar todas las nuevas funcionalidades presentes en la última versión.  Nota: si haces un cambio de versión por medio de esta opción no cambiarán adecuadamente los parámetros MinimumVersion y minRuntimeVersion de las páginas .aspx y .html respectivamente.

Resumen

Visual Studio 2010 Beta 1 es la primer versión estable de la próxima generación de herramientas para desarrollo de aplicaciones .NET.  Cuenta con un soporte mucho más amplio para el diseño y codificación de Xaml y por ende de Silverlight.  Además cuenta con la opción de permitirnos elegir sobre cuál versión de Silverlight queremos programar, lo que hace de esta herramienta una de los más importantes y esperados lanzamientos en lo que al desarrollo de Silverlight respecta.

Descarga la serie de WebCasts de Silverlight 2 y 3

Ya están disponibles para descarga la Serie de WebCasts de Silverlight 2 y 3 que tuve la oportunidad de presentar hace algunos días.  Si no estuviste presente o si quieres revivir esos momentos en los que se me fue el LiveMeeting 😀 puedes descargar los videos y verlos en la comodidad de tu hogar/oficina.

Las ligas para descarga son las siguientes:

· Introducción y Arquitectura

· Enlace a Datos y Comunicación con Servidores (Servicios)

· Enlace entre Elementos, Ejecución Fuera del Navegador, Comunicación Local y Soporte a 3D

Salu2!