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!

Silverlight: Descarga de Ensamblados bajo demanda

Introducción

Una de las preguntas que más frecuentemente me preguntan en proyectos o entrenamientos de Silverlight es la posibilidad de descargar ensamblados (assemblies) .DLL bajo demanda, es decir que no sean parte del archivo .XAP sin perder la experiencia en el uso de tipos en Visual Studio .NET (Intellisense principalmente).  Menciono esto porque Silverlight soporta Reflection: la serie de clases que nos permiten inspeccionar e invocar tipos de manera dinámica.  El problema con esta opción es que perdemos precisamente la capacidad de early-binding, Intellisense, etc.  En este artículo veremos cómo podemos desacoplar ensamblados externos y descargarlos/cargarlos bajo demanda (sin usar Reflection).

La Solución

Crearemos una nueva solución de Silverlight utilizando la plantilla para Visual Studio .NET 2008.  A la solución le llamaremos DemoDescargaAssembly.  Además agregaremos un nuevo proyecto llamado DemoAssembly de tipo Silverlight Class Library (Biblioteca de Clases de Silverlight) en esta solución.  Al agregar una referencia a DemoAssembly en la aplicación de Silverlight y después compilar tendremos como resultado un archivo llamado DemoDescargaAssembly.xap.  El comportamiento por default de Visual Studio .NET es que el .dll lo agregará dentro del archivo .xap tal y como lo muestra la siguiente figura:

Archivo XAP con DLL incluido

Esto se debe a que automáticamente al agregar la referencia a un .dll en nuestro proyecto de Silverlight, la propiedad Copy Local estará en true.  No obstante si cambiamos el valor a false el comportamiento cambiará ya que el ensamblado no será empaquetado en el archivo .xap, pero nuestra experiencia en el desarrollo sigue sin modificaciones ya que podemos seguir haciendo uso de los miembros del ensamblado gracias a la referencia existente.

Explorador de Soluciones

Al establecer Copy Local a false y recompilar la solución, nuestro archivo .xap no tendrá el ensamblado referenciado.

Archivo XAP sin el DLL

Ahora bien, si implementamos un método público en DemoAssembly que sea invocado desde la aplicación de Silverlight, la aplicación mandará una excepción al no poder localizar el ensamblado necesario para ejecutar esa línea.  A continuación se muestran los fragmentos de código de DemoAssembly.Demo y la Aplicación Silverlight.

DemoAssembly.Demo

Aplicación Silverlight

FileNotFoundException

Descarga bajo demanda y clase AssemblyPart

Ya que el objetivo de este artículo es mostrar cómo podemos descargar y cargar ensamblados bajo demanda lo que haremos será copiar el .dll al sitio de origen (fólder ClientBin en la aplicación Web muy probablemente).  Usaremos un objeto de tipo WebClient para poder descargar el archivo DemoAssembly.dll de manera asíncrona por medio de su método OpenReadyAsync() y posteriormente crearemos un ensamblado de manera dinámica para nuestra aplicación Silverlight.  De esta manera nos aseguramos que la anterior línea de código presentada funcione y no mande una excepción.

La clase AssemblyPart representa un ensamblado dentro de la aplicación Silverlight, y su método Load() nos permite cargar un ensamblado a través de un Stream en el mismo Application Domain.  El siguiente fragmento de código muestra la aplicación finalizada en donde podemos apreciar cómo primero se descarga el .dll del servidor y se crea el AssemblyPart para tenerlo disponible cuando se haga clic en el botón.

Resumen

La clase AssemblyPart nos permite cargar de manera dinámica un ensamblado y colocarlo en el Application Domain de nuestra aplicación Silverlight para su correcto uso.  Asimismo es necesario establecer la propiedad Copy Local a false para impedir que un ensamblado referenciado se empaquete dentro del archivo .xap.  Esta técnica nos permite crear aplicaciones de Silverlight más livianas y que hagan uso de ensamblados y recursos de manera dinámica.

Demo (Requiere el plugin de Silverlight 2)

Silverlight 3 Beta 1: Enlace con RelativeSource

Silverlight 3 Beta 1: Enlace con RelativeSource

Hace algunos días escribí acerca del Enlace entre Elementos, una de las nuevas características presentes en Silverlight 3 Beta 1 (tomadas de su hermano mayor WPF).  Para complementar ese artículo he decidido hablar por separado de RelativeSource: una propiedad que podemos encontrar en el markup extension Binding.  Esta propiedad en Silverlight soporta dos valores tal y como se describen a continuación:

Self

Cuando establecemos un Binding con RelativeSource=Self estamos indicando que el origen del enlace es el mismo elemento en donde lo estamos estableciendo.  El siguiente fragmento de código explica mejor este concepto:

En este ejemplo tenemos una Ellipse un Slider.  La propiedad Width de la Ellipse está enlazada con la propiedad Value del Slider, justo como lo vimos en este artículo.  Aquí el punto interesante es ver cómo la propiedad Height está enlazada a la propiedad Width de el elemento mismo.  Esto es logrado estableciendo la propiedad RelativeSource a Self, a través del markup extension {RelativeSource}.

TemplatedParent

El otro valor que podemos establecer en RelativeSource es TemplatedParent.  Esta opción indica que el valor lo tomará del control en donde estemos aplicando la plantilla en cuestión, por lo tanto esta opción solo es válida dentro de la declaración de una Platilla.  El siguiente código muestra la declaración de una nueva plantilla para un Botón, llamada ‘miEstilo’.  Dentro de esta Plantilla se declara un TextBlock el cual pone en su propiedad Text el valor de la propiedad Height del control en donde se está aplicando la Plantilla (botón ‘btn’):

Cabe mencionar que esta opción es similar a utlizar {TemplateBinding} dentro de la Plantilla.

Resumen

Las nuevas características de Enlace presentes en Silverlight 3 Beta 1 extienden la funcionalidad y abren nuevas oportunidades para el desarrollo de aplicaciones con esta plataforma.

Para ver una aplicación en vivo que demuestra los conceptos expuestos pueden revisarla aquí (el plugin de Silverlight 3 Beta 1 es requerido).

Wolfram Alpha: Motor de Conocimiento Computacional

El día de hoy 15 de Mayo 2009 será lanzado públicamente Wolfram Alpha: un motor de búsqueda y cómputo que probablemente revolucionará la manera en la que buscamos y procesamos información en línea.  En realidad no encuentro las palabras adecuadas para describir la inmensa gama de posibilidades que se al parecer se nos abrirían con este proyecto. Les sugiero que lo vean y entiendan por ustedes mismos:

www.wolframalpha.com

La primer pregunta que se me viene a la mente con respecto a esto es la precisión de la información y la sustentabilidad del proyecto en sí; ya que (supongo) toma su información de los mismos lugares que todos los motores de búsqueda que conocemos usan.

Por otro lado la semántica estará disponible también en otros idiomas y no solo en inglés?

Cuál será la respuesta de Los Grandes de las búsquedas (Google principalmente)?

En fin, creo que no falta mucho para que estas y más incógnitas sean resueltas.  Por mientras, los invito a que sepan de qué se trata y lo utilicen… y que comience la discusión!