Archive

Posts Tagged ‘Silverlight 2’

Introducción al control de Bing Maps para Silverlight (Screen Cast 3 de 3)

July 3rd, 2009 1 comment

En este último Screen Cast de la serie acerca del control de Bing Maps para Silverlight vemos cómo incluso podemos agregar nuevas capas visuales en el control para desplegar información relacionada con algún punto geográfico e incluso contenido arbitrario.  Espero que les sea de utilidad.

Get Microsoft Silverlight

Introducción al control de Bing Maps para Silverlight (Screen Cast 2 de 3)

July 3rd, 2009 1 comment

Esta es la segunda parte de la serie de Screen Casts acerca del control de Bing Maps para Silverlight.  En este video vemos cómo utilizar los servicios de geo-localización en nuestras aplicaciones con Silverlight y este control.  Espero les sea de utilidad.

Get Microsoft Silverlight

Subiendo archivos al servidor en aplicaciones Silverlight

June 28th, 2009 3 comments

Introducción

Es muy común que para nuestras aplicaciones Web necesitemos ofrecer a los usuarios la capacidad de subir archivos al servidor por diversas razones: para su posterior procesamiento, respaldo de información, etc.  En este artículo veremos cómo en Silverlight esta tarea es sencilla por medio de la clase WebClient.

WebClient.OpenWriteAsync()

La clase WebClient permite una comunicación asíncrona entre el aplicativo Silverlight y algún endpoint que deseemos leer o escribir.  Es precisamente por medio de su método OpenWriteAsync por el cual podemos establecer un Stream de escritura para poder grabar en el servidor algún archivo que el usuario seleccione en la aplicación por medio de la caja de diálogo OpenFileDialog.  Es de vital importancia el mencionar que Silverlight, al ejecutar bajo un esquema de confianza media (Medium Trust) debido a que corre en un SandBox, no es capaz de acceder el sistema de archivos de la máquina en donde está ejecutando la aplicación, sino solamente a través de la autorización del usuario por medio de la caja de diálogo mencionada.

Bajo estas premisas, desarrollaremos la siguiente solución que demuestra lo siguiente:

  1. El uso de la clase OpenFileDialog para permitir al usuario seleccionar algún archivo que quiera subir al servidor.
  2. El uso de la clase WebClient y su método OpenWriteAsync para poder escribir en un Stream la secuencia de bytes que representen dicho archivo.
  3. La creación de una página .aspx que obtenga el Stream y escriba el archivo en el servidor

La aplicación tendrá la siguiente interfaz de usuario:


El botón llamado btnUpload tendrá la responsabilidad de mostrar la caja de diálogo OpenFileDialog para que el usuario selecciones un archivo de su sistema de archivos local.  El archivo seleccionado está representado con la propiedad File del objeto OpenFileDialog, y utilizaremos el método OpenRead() para leerlo como un Stream.  Posteriormente guardaremos en una variable llamada bytes la secuencia de bytes del archivo.

El siguiente paso será crear el manejador del evento OpenWriteCompleted, evento que se dispara cuando se haya creado efectivamente el Stream de escritura en el servidor.  Es en este manejador de evento en donde escribiremos la secuencia de bytes del archivo (variable llamada bytes) en el Stream.

Posteriormente ejecutaremos el método OpenWriteAsync() de la clase WebClient, el cual nos permitirá crear un Stream de escritura en el endpoint especificado en el argumento.  En el caso de nuestra aplicación usaremos Upload.aspx, el cual es una página de ASP.NET que además le mandaremos como parámetro el nombre del archivo seleccionado para evitar tener un nombre de archivo ‘hard-coded’.

El siguiente fragmento de codigo muestra esta funcionalidad completa:


Upload.aspx

En este ejemplo estamos usando una página de ASP.NET llamada Upload.aspx, la cual obtiene el Stream que se escribió en el código anteriormente descrito, y que servirá para efectivamente guardar ese Stream como un archivo en el servidor.  El nombre para el archivo es determinado a partir del valor del parámetro n en el querystring.  En el caso de esta solución el archivo se escribirá en el fólder ClientBin en el servidor, aunque podría obviamente ser parametrizable la localización en el servidor (tal vez a través de otro parámetro en el querystring).

El siguiente bloque muestra el código completo de Upload.aspx:


Debemos mencionar que también sería posible reemplazar la página .aspx por una Handler .ashx e implementar en dicho archivo la funcionalidad descrita en el bloque de código anterior, también leyendo el Stream, obteniendo la secuencia de bytes y escribirla en el sistema de archivos.

Finalmente, la siguiente ilustración muestra la aplicación finalizada en donde podemos hacer lo siguiente:

  1. Hacer clic en el botón de Silverlight llamado ‘Subir archivo…’, esto invoca la caja de diálogo de Abrir archivo (Figura 1)
  2. Seleccionar el archivo y seleccionar OK (Figura 2)
  3. Se muestra el archivo seleccionado ya subido al servidor, en el fólder ClientBin el cual en este caso es el Sitio de Origen.

Resumen

Subir archivos al servidor es muy común en las aplicaciones Web y las aplicaciones de tipo RIA no están excluidas de ello.  En este artículo vimos cómo al utilizar las clases WebClient y OpenFileDialog podemos lograr esta funcionalidad en Silverlight y utilizar una página .aspx como puente para lograrlo.

 

Desarrollo con Silverlight en Visual Studio 2010 Beta 1

May 20th, 2009 No comments

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

May 20th, 2009 No comments

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 :D 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!