Reunión de la Comunidad .NET Tepic – Construyendo aplicaciones Web de última generación con Silverlight 2

3229207171_8aa095d99e

Tengo el honor de haber sido invitado por la Comunidad .NET Tepic, para que el próximo martes 03 de febrero del 2009 asista como orador en la reunión mensual de la Comunidad .NET Tepic.  Agradezco directamente a su líder, mi buen amigo Antonio Ortíz las facilidades e interés mostrado en llevar a cabo esta iniciativa.  Por mi parte estaré platicando acerca de Silverlight 2 como plataforma de desarrollo y las ventajas de esta tecnología para crear aplicaciones enriquecidas para Internet (RIA).

Hey! … 3 horas de puro Silverlight chicos y chicas !!! ;)

Agenda

Construyendo aplicaciones Web de última generación con Silverlight 2

Fecha: 03 de febrero 2009

Horario: 17:00 – 20:00 hrs.

Lugar:  Aula de usos múltiples de la Facultad de Economía de la UAN

Tepic, Nayarit

Registro

http://www.msevents.microsoft.com

Evento: 1032403226

O haz clic en la siguiente liga para registrarte al evento: http://msevents.microsoft.com:80/CUI/EventDetail.aspx?EventID=1032403226&Culture=es-MX

Estás en Tepic y tienes interés en aprender Silverlight 2?  Quieres conocer el futuro de las aplicaciones para Internet?  Solo regístrate y asiste!  La entrada es gratuita.

Los esperamos!!

[UPDATE 05 de febrero 2009]

El evento fue todo un éxito.  La gente estuvo muy interesada acerca de la tecnología Silverlight como plataforma de desarrollo.  Tuvimos un rato muy ameno e interesante platicando acerca de esta fascinante herramienta!  En la siguiente liga pueden ver algunas fotos del evento:

http://flickr.com/photos/roklib2/tags/comunidadtepic03feb2009/

[UPDATE 11 de febrero 2009]

La Universidad Autónoma de Nayarit (UAN) puso la crónica del evento en su sección de medios y comunicación.  Lo pueden checar en la siguiente liga:

http://medios.uan.edu.mx/comunicados/comunicadosentrada.php?2630

Instalación de Windows 7 desde un USB

Gracias a este post de Ferglo, me enteré cómo crear un USB booteable con Windows 7 y esto me ha animado para instalarlo en la Asus Eee ya que en el resto de equipos aún no me atrevo.

Los pasos son muy sencillos (me pregunto si servirá el mismo mecanismo para instalarle por ejemplo Windows XP o Vista?) y el USB lo pueden tener listo en 10 minutos o menos.

No obstante, yo me estoy encontrando con un error que me ha traído loco las últimas horas: “Windows could not collect information for [OSImage] since the specified image file [install.wim] does not exist.” el cual se me presenta al iniciar la instalación.  Lo más raro es que efectivamente ese archivo sí existe en el USB en la carpeta \sources. :(   (wtf!?)

Seguiré informándoles a ver qué encuentro; de entrada he leído en algunos foros que vuelva a descargar el .iso (!?).  Es lo único que me falta por intentar así que a descargar se ha dicho.

Salu2!

UPDATE 26/Ene/2009:

Descargué de nuevo el archivo .ISO, extraje los archivos con Power ISO 4.3 en una carpeta local en mi PC y posteriormente de ahí los copié al USB que preparé con diskdrive.  La instalación en estos momentos se está realizando de manera correcta.

UPDATE 26/Ene/2009

Error 0×80070570 a la mitad de la instalación :(

UPDATE 27/Ene/2009

Cambiando la memoria la instalación fue todo un éxito (wtf?!)

UPDATE 28/Ene/2009

Todo bien HASTA que le instalé Windows Live.  Ahora textualmente la laptop se congela al firmarme al sistema operativo.

UPDATE 29/Ene/2009

Ok! Suficiente Windows 7 BETA para la Asus Eee.  Le regresaré el Linux que tan feliz y estable era.  O igual y le instalo XP :|

MSP Summit 2009 – Crónica

El pasado 16 de enero tuve el honor de asistir como conferencista al MSP Summit 2009, debido a la invitación que me extendió mi buen amigo Rubén Mugártegui cuando nos vimos en el PDC en octubre pasado.  Es notable el entusiasmo y energía que desprenden todos y cada uno de los estudiantes que participan en esta iniciativa, ya que en su mayoría están realmente interesados en las últimas tecnologías y plataforma tecnológica que hoy en día tenemos a nuestro alcance.

Con respecto a mi participación, mi plática se vió afectada por dos fallas: la primera, el acceso a Internet intermitente e inestable (y en momentos inexistente!) del hotel en donde se desarrolló el evento, y segunda, mis demos y ejemplos TODOS estuvieron planeados a tener una conexión estable en el momento; cometí el pecado más común de un speaker:  confianza en que el mismo escenario en donde hiciste el material será el mismo en el que lo presentarás :PMea Culpa.  Traté de rescatar los demos haciendo uso de parte del contenido que llevé preconstruído pero al fin de cuentas no pudimos ver todo lo que tenía planeado mostrar.  Finalmente al cierre de la sesión pudimos entablar una charla amena, interesante y participativa acerca de cómputo en la nube y lo que esto representa para los desarrolladores y aplicativos hoy en día.  Agradezco a todas las personas con las que estuve platicando: su participación, interés y feedback incluso también al término de la sesión y muchas felicidades a los ganadores de los diferentes premios!

No obstante a lo anterior tengo todo el material que había preparado con antelación para esta reunión y estaré subiendo durante los siguientes días los demos como artículos detallados explicando los componentes que incluí en la presentación y material original:

… de esta manera no me quedaré con las ganas de mostrarles el gran poder que tenemos hoy en día de crear aplicaciones Web enriquecidas por medio de estas dos increíbles plataformas:  Silverlight y Windows Azure ;) !!!

Posteriormente continuó Armando Halbinger con una magnífica presentación (sin arriesgarse a conectarse a Internet como él bien lo mencionó referenciando mi sesión recién terminada ;) ) de Las Leyes de la Simplicidad la cual me pareció excelente y me hizo clic en muchos sentidos no solo en el ámbito técnico sino también el personal.

Finalmente conbebimos convivimos a la hora de la comida con interesantes anécdotas y el evento continuó su curso.  Incluso en la tarde el buen Nazul se lanzó a echarse un palomazo acerca de INETA Latam tal y como nos lo comenta aquí.

En fin, un evento muy interesante y lleno de mucha energía por parte de los MSP’s.  Sigan así jóvenes y llegarán lejos muy lejos.

Gracias y Salu2!!!!! ;)

1ra Reunión Presencial de la Comunidad La Liga Silverlight

Es para mí un gusto invitarles a la 1er reunión presencial que tendrá La Liga Silverlight este próximo martes 10 de febrero, de 18:00 a 21:00 hrs. en la Sala 2 del Centro del Software de Guadalajara, Jalisco, México.

La entrada es totalmente gratuita y tendrá una dinámica muy similar a las reuniones que efectuamos en la comunidad hermana Guadalajara.NET.

Agenda

Fecha:  Martes 10 de Febrero 2009

Lugar:  Sala 2 del Centro del Software en Guadalajara, Jalisco, México

18:00 – 18:15  Registro

18:15 – 18:30  Bienvenida e Introducción a La Liga Silverlight

18:30 – 20:30  Tema:  Silverlight como plataforma de desarrollo

20:30 – 21:00  Rifa de regalos y sorpresas

Registro

Para registrarte haz clic aquí

o entra a http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032402545&Culture=es-MX

Detalles

La Liga Silverlight es la primer comunidad MSDN en Español totalmente enfocada en Silverlight.

Somos una comunidad basada en México, específicamente en la ciudad de Guadalajara, Jalisco.  En esta ciudad nos reunimos una vez al mes para tratar temas de interés acerca de Silverlight y tecnologías relacionadas.  No obstante, La Liga Silverlight es una comunidad mixta, esto es, tanto presencial como virtual, por ello también tendremos reuniones mensuales en línea!!!  Esto para poder llegar a más audiencia no solamente en México sino el resto de Latinoamérica y España también.

Asimismo, todos(as) están invitados(as) cordialmente a participar.  Convencidos totalmente en que todos podemos aprender de todos les invitamos a participar en la comunidad.

Para más información revisen El Manifiesto de La Liga Silverlight y también el FAQ.

Evento Inaugural

Por inauguración, y por tratarse de un evento sumamente especial para todos los que conformamos el equipo de La Liga Silverlight estaremos regalando diversos premios y regalos entre los que destacan:

  • Libros técnicos de Microsoft Press (cortesía de Microsoft)
  • Llaveros (cortesía de Microsoft)
  • 1 Windows Vista Ultimate
  • Playeras oficiales de La Liga Silverlight
  • Y otras sorpresas más… ;)   (las iremos anunciando poco a poco)

Hablando de las playeras aquí les doy la primicia del diseño de la misma:

Quieres conocer qué es Silverlight y adentrarte en el apasionante mundo de esta tecnología?  Síguenos en el sitio oficial de la comunidad y en sus blogs:

Sitio Oficial de La Liga Silverlight

Blogs de La Liga Silverlight

Los esperamos!!!

Y el ganador fue…

El ganador del vale de descuento de 1000USD para asistir al Silverlight Tour Workshop en Español fue José Carlos Flores Ornelas de Aguascalientes!  Muchas felicidades José Carlos, esperamos verte pronto en el curso.

El Silverlight Tour Workshop es un curso de tres días completamente en Español y de alta profundidad técnica acerca de Silverlight 2. Incluye los comos y por qués de XAML, el hospedaje en el navegador, las herramientas y el uso de Silverlight 2 en el servidor.  El curso utiliza Silverlight 2 así como las últimas herramientas tecnológicas de Microsoft (incluyendo Visual Studio .NET 2008 y Expression Studio).

Salu2!

MSP Summit 2009 – ¡Gran Premio!

¿Eres MSP?

¿Asistirás este próximo viernes 16 de enero al MSP Summit 2009 en la ciudad de Guadalajara, Jalisco?

Si contestaste a estas dos preguntas entonces tienes muchas oportunidades de ganar un Vale de Descuento de $1,000 USD para asistir a un curso del Silverlight Tour Workshop en Español en México.

Sí ! Así como lo estás leyendo:  El próximo día viernes 16 de enero al finalizar mi sesión en el MSP Summit regalaré un vale de descuento de mil dólares para que puedas asistir a un curso del Silverlight Tour Workshop en Español, en alguna de las ciudades destino de este curso.  El vale será rifado así que no se te ocurra ir al baño en ese momento!

Conviértete en el(la) afortunado(a) ganador(a)!

El Silverlight Tour Workshop es un curso en español de Silverlight 2.  Incluye los comos y por qués de XAML, el hospedaje en el navegador, las herramientas y el uso de Silverlight 2 en el servidor.  El curso utiliza Silverlight 2 así como las últimas herramientas tecnológicas de Microsoft (incluyendo Visual Studio .NET 2008 y Expression Studio).

¡Espero que seas el/la ganador(a)!

Hey!… Ya notaron que el vale trae un código de Microsoft Tag? :)

Microsoft Student Partners Summit 2009

Tengo el honor de haber sido invitado por Microsoft México para participar como orador en el MSP Summit 2009 en la ciudad de Guadalajara, Jalisco.  Este evento se hace año con año y reúne a todos los Socios estudiantes de Microsoft.  El Programa Microsoft Student Partner (MSP) es un reconocimiento anual para los estudiantes que efectúan contribuciones sobresalientes en la comunidad técnica de estudiantes y en este año le tocó a la tapatía ciudad de Guadalajara ser sede de este importante evento los próximos días 16 y 17 de enero 2009.

La sesión que estaré presentando es “Construyendo aplicaciones de última generación con Silverlight y Windows Azure”, en donde veremos primeramente cómo Silverlight se está convirtiendo en la opción perfecta al construir aplicaciones RIA (Rich Internet Applications) debido a sus poderosas características para crear Interfaces de Usuario enriquecidas, y posteriormente veremos la oferta tecnológica que la plataforma de servicios Windows Azure nos ofrece para complementar y potencializar nuestras aplicaciones.

No obstante a que este evento es exclusivo para los MSP, estaré subiendo el material el mismo viernes aquí para que lo puedan descargar y ver de qué se trató el tema.

Así que, ahí los espero!

[UPDATE 10/Feb/2009]  Aquí están las fotos del evento:

https://cid-01595dc6386bc6ba.skydrive.live.com/browse.aspx/MSP%20Summit%202009

Reunión de la Comunidad Guadalajara .NET (Enero 2009)

Les invito cordialmente a la primer reunión de la Comunidad Guadalajara .NET, la cual vamos a tener este jueves 15 de enero a las 18:30 horas en la Sala 2 del Centro del Software en Guadalajara, Jalisco.

La agenda de la reunión es la siguiente:

18:00 – 18:30  Registro y Bienvenida a la Reunión

18:30 – 19:30  SQL Server 2008 – José Luis Pérez

19:30 – 20:30  Introducción a ASP.NET 4.0 – Rodrigo Díaz Concha

Como podrán ver son dos temas bastante interesantes y vale la pena que se den una vuelta, nos visiten y podamos aprender algo entre todos juntos.

Los esperamos!

UPDATE [10 Febrero 2009]  Aquí están las fotos del evento:

http://www.flickr.com/photos/roklib2/tags/reunion15enero2009/

Código fuente de los controles de Silverlight 2

A partir del día de hoy podemos descargar el código fuente de los controles que incluye Silverlight 2!

La descarga incluye el código fuente de los siguientes controles:

  • ButtonBase
  • Button
  • HyperlinkButton
  • CheckBox
  • RadioButton
  • CheckBox
  • ToogleButton
  • RepeatButton
  • RangeBase
  • Slider
  • ScrollBar
  • ProgressBar
  • Calendar
  • DataGrid
  • DatePicker
  • GridSplitter
  • TabControl

Para nosotros desarrolladores básicamente significa que podemos ver exactamente cómo están implementados ya sea como referencia o tal vez, por qué no, para extenderlos y agregarle algún tipo de funcionalidad muy específica.

Es esto una gran noticia o no? :)

Salu2!

Creando un control de usuario reutilizable : El mapa de México en XAML en acción – Parte III

Esta es la continuación del artículo “Creando un control de usuario reutilizable : El mapa de México en XAML en acción Parte II”

El portal que estamos desarrollando con Silverlight 2 tiene un control de usuario que representa el mapa de México.  El control es sensible a los clics del mouse y levanta un evento cuando un estado es seleccionado.  No obstante, la solución en este momento no es muy funcional ya que lo único que hace es mostrar el nombre del estado en un TextBlock.  En este artículo veremos cómo extender la funcionalidad del Portal agregando una funcionalidad sencilla pero poderosa: obtenendremos una serie de fotografías relacionadas con el estado seleccionado usando los servicios REST públicos de Flickr.

REST

REST es el acrónimo de REpresentational State Transfer, el cual es una serie de lineamientos y prácticas para la arquitectura de servicios usando las propias bondades de HTTP y sus verbos (PUT, GET, DELETE, POST) los cuales pueden derivar fácilmente en acciones CRUD (Create, Read, Update, Delete) y por ende en acciones para obtener o modificar datos. 

Comunmente en el ámbito de Servicios Web tradicionales (ASMX o WCF) tenemos métodos marcados especialmente para responder a peticiones y regresar algún conjunto de datos o realizar alguna operación.  No obstante, para cada operación o acción requerimos crear un endpoint diferente cada vez (no necesariamente, pero muy comunmente es así), es decir, vamos creando métodos y más métodos para satisfacer las necesidades operativas de nuestro servicio.  En REST no necesariamente es lo mismo.

Un ejemplo de un servicio REST puede ser:

/productos”>http://<sitio>/productos

para regresar una lista completa de productos, o

/productos/1001″>http://<sitio>/productos/1001

para regresar únicamente el producto con identificador 1001.

API de Flickr

Vamos a utilizar los servicios REST que expone Flickr de manera gratuita y pública para implementar la funcionalidad de obtención de imágenes en nuestro Portal que estamos desarrollando.  La documentación completa de estos servicios la pueden consultar aquí.  Es importante mencionar que para la correcta ejecución de los servicios y obtención de datos necesitan un identificador único, el cual es obtenido de manera sencilla inscribiéndote al sitio de Flickr.  Ese identificador está relacionado con tu cuenta así que mucho cuidado en dónde lo usen o muestren.

El API de Flickr indica la manera en la que puedes consultar sus servicios y cómo serán regresados esos datos.  Para nuestra aplicación utilizaremos el método flickr.photos.search para buscar todas aquellas fotos que están etiquetadas con el nombre del estado que hemos seleccionado en el mapa.  Cabe mencionar que los servicios de Flickr tienen muchas más funcionalidades para usarlas en nuestras aplicaciones, como etiquetado de fotos, consulta de grupos, contactos, modificación de los metadatos de las fotos, etc.  Para más información, consulta la documentación en línea.

URL del servicio

La dirección, entonces, del servicio que estaremos usando es:

http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=AQUI VA TU API KEY&tags=NOMBRE DEL ESTADO”

URL de las fotos

Cada foto en Flickr tiene un URL el cual está constituído de la siguiente manera:

http://farm{FARM}.static.flickr.com/{SERVIDOR}/{ID}_{SECRETO}.jpg

Tal es el caso de la siguiente imagen, que tiene el URL http://farm4.static.flickr.com/3159/3046189596_1e8821aaaf_o.jpg

Implementación

Estados

Primero lo que vamos a hacer es corregir el hecho de que algunos estados de México tienen más de una palabra, y que los Canvas que representan cada estado de la República tienen un nombre corto, por ejemplo Baja California Sur es BCSur o San Luis Potosí es SanLuisP.  Dudo mucho que las personas que suban imágenes a Flickr etiqueten sus fotos de esa manera.  Por lo tanto, vamos a agregar la siguiente clase a nuestro proyecto de Silverlight la cual es una clase que hereda de la clase genérica Dictionary<T, T>, y en nuestro caso la implementaremos como Dictionary<string, string>.

Posteriormente, es buena idea tener un control que muestre las fotos relacionadas al estado seleccionado y eso lo vamos a lograr con un control de tipo ListBox en Page.xaml.  El control lo vamos a situar en la segunda columna y en la segunda fila, ocupando dos filas de espacio.

Es importante hacer notar que estamos modificando la plantilla del ListBox para cada uno de sus elementos, y estamos usando el elemento <DataTemplate> en el cual definimos lo que queremos que se vea para cada uno de los elementos.  En nuestro caso implementamos un elemento <Image> y hacemos atado de datos a la propiedad Url explicada anteriormente en este artículo.  El atado de datos (data binding en inglés) es una característica sumamente importante y poderosa de Silverlight la cual tendrá su propia saga de artículos más adelante en este blog.

Después lo que vamos a hacer es agregar a nuestro proyecto de Silverlight una clase que represente una foto o imagen de Flickr.  El siguiente fragmento de código muestra la clase Foto con sus respectivas propiedades (Farm, Server, ID, Secret) y una quinta propiedad llamada Url la cual regresará la cadena compuesta, es decir, el Url tal y como lo espera Flickr para poder mostrar fotos.

Además, vamos a modificar un poco nuestro control Mexico.xaml, agregando un segundo evento llamado EstadoSeleccionadoMouse el cual se disparará cuando simplemente pasemos el cursor del mouse sobre alguno de los estados.  Esto lo queremos hacer así por el hecho de determinar con anticipación el nombre del estado antes de hacer click, y evitar peticiones innecesarias al servidor de Flickr y de esta manera ahorrarnos ancho de banda.  El evento EstadoSeleccionadoMouse estará también basado en el mismo delegado MexicoEventHandler creado y explicado en los artículos anteriores.

Ahora bien, cuando se levante el evento EstadoSeleccionado de nuestro control (cuando el usuario haga clic en algún estado) vamos a hacer una petición al servicio de Flickr para obtener todas las fotos relacionadas con el estado seleccionado (aquellas que estén etiquetadas con ese nombre). 

Esto lo vamos a hacer utilizando un objeto de tipo WebClient, el cual encapsula la funcionalidad necesaria para hacer llamadas asíncronas al endpoint que definas en el método que estés utilizando: DownloadStringAsync o OpenReadAsync.  En nuestro caso usaremos DownloadStringAsync ya que la respuesta del servicio de Flickr es texto plano expresado ya sea en XML o en JSON.

Asimismo, es importante notar que estamos usando una consulta de LINQ To XML para obtener todas las fotos que regresa el servicio en forma de elementos Xml y por cada una de ellas regresaremos una instancia de Foto, la cual tiene implementada la propiedad Url que regresa ya armada el URL correcto y es la propiedad a la que se ata o liga el elemento <Image> dentro del <DataTemplate>… todo concuerda!

Todo listo

Ejecutemos la aplicación y veamos que inicialmente tiene la misma apariencia que la aplicación del anterior artículo, no obstante, si hacemos clic en algún estado, en la parte derecha se muestran todas las fotos relacionadas con él.

Incluso, podemos corroborar que efectivamente sean las fotos correctas desde el mismo sitio de Flickr, haciendo una búsqueda por la palabra completa “Nuevo León” (como se muestra en el ejemplo).  Ojo: hay que incluir las comillas para determinar que es una palabra compuesta y no dos  palabras por separado (Nuevo y León).

El código fuente de este artículo lo pueden descargar de la sección “Contenido” de La Liga Silverlight o haciendo clic directamente aquí.