Silver Light

356
j j por MATÍAS IACONO

Transcript of Silver Light

  • 1 ,j , "' j I I ' ,1" \ r , ' I I I \l '\ j " I I

    APROVECHE AL MXIMO SU POTENCIAL ILIMITADO

    SILVERUGHT PARA DISEADORESY DESARROLLADORES

    MICROSOFT EXPRESSION BLEND 2Y MICROSOFT VISUAL STUDIO 2008

    UNQ, WCF y SERVICIOS WEB CON C#

    CREACiN DE ANIMACIONES Y TCNICASDE ESCRITURA PARA DISPOSITIVOS TCTILES

    INTERACCiN CON JAVASCRIPT, HTML, XML y CSS

    DESCUBRA UN NUEVO NIVEL EN EL DESARROLLODE APLICACIONES PARA INTERNET

    INCLUYENOVEDADES DELA VERSiN 3.0

    por MATAS IACONO

    En este sitio encontrar una gran variedad de recursos y software relacionado,que le servirn como complemento al contenido del libro. Adems, tendr la po-sibilidad de estar en contacto con los editores, y de participar del foro de lecto-res, en donde podr intercambiar opiniones y experiencias.

    Silverlight is the cross-platform, cross-browser plug-infor rich interactive applications and cutting-edgemedia experiences. With advanced tips from ourexpert, this book provides practical, grounded advice,and rich examples, to be ready for todays challenges.

    SILVERLIGHT

    DESCUBRA UN NUEVO NIVEL EN EL DESARROLLODE APLICACIONES PARA INTERNETCONTENIDO

    N I V E L D E U S U A R I O

    PRINCIPIANTE INTERMEDIO AVANZADO EXPERTO

    1 | INTRODUCCIN A SILVERLIGHTExperiencia de usuario y portabilidad | Arquitectura deSilverlight 2 | Microsoft .NET Framework | Interfaz de usuarioy presentacin | El cdigo XAML | Herramientas de desarrollo

    2 | MICROSOFT EXPRESSION BLEND 2Silverlight con Expression Blend | Explorador de soluciones |Entorno | Barra de herramientas | Crear nuestra primeraaplicacin

    3 | SILVERLIGHT PARA DESARROLLADORES Puesta a punto de Visual Studio 2008 | Crear la primeraaplicacin | Interoperabilidad con Expression Blend 2

    4 | XAML AL EXTREMOEl lenguaje XAML | Declaracin de objetos | Controles ycomponentes | Grid | GridSplitter | Canvas | StackPanel |ScrollViewer | Border | Controles de iteracin con el usuario |Button | CheckBox | RadioButton | HyperlinkButton | Image |ComboBox | ListBox | TextBlock | TextBox | PasswordBox |DataGrid | Calendar | DatePicker | ProgressBar | Slider

    5 | LUZ, CMARA, ACCINMover objetos | Transformaciones de traslacin, rotacin,escalar y distorsin | Animaciones | DoubleAnimation |ColorAnimation | Estilos y plantillas

    6 | CERRAR EL CRCULOMediaElement | Ejecutar sonidos | Elementos con videoembebido | Deep Zoom | Dibujar con InkPresenter | reasde dibujo

    7 | INTERCONEXINAmpliar las funcionalidades | Silverlight desde C# |WebClient | Enviar informacin | Capacidad dealmacenamiento | OpenFileDialog | Manejo de hilos |Temporizador | Hilos y eventos | Consumir servicios desdeSilverlight | Manipular datos | LinQ

    8 | EL NAVEGADOR Y SU DOMINIOConectar tecnologas | Silverlight 2 y HTML | HtmlDocumenty HtmlElement | HtmlPage | HtmlWindow | Cookies |Modificar CSS | Silverlight 2 y JavaScript | Llamar funciones| Objetos para JavaScript

    APNDICE A | SILVERLIGHT FUERA DE WINDOWS

    APNDICE B | SILVERLIGHT 3, LA NUEVA GENERACIN

    redusers.com

    SILVERLIGHT

    tapa Silverlight.qxp 21/09/2009 11:07 a.m. Pgina 1

  • CONCTESE CON LOS MEJORESLIBROS DE COMPUTACIN

    DESCUBRA EL POTENCIAL DE WINDOWS VISTAMANUALES USERS I 384 pginas I ISBN 978-987-1347-40-7

    MANEJE LAS HERRAMIENTAS DE VISTA COMO UN EXPERTO

    MANUALES USERS I 352 pginas I ISBN 978-987-663-007-8

    DESARROLLE APLICACIONES PARA WINDOWS Y LA WEBMANUALES .CODE I 368 pginas I ISBN 978-987-1347-32-2

    usershop.redusers.com

    APRENDA A PROGRAMAR CON EL LENGUAJE MS POTENTE

    DESARROLLADORES I 400 pginas I ISBN 978-987-1347-76-6

    RT_Bombo_LIBROSilverlight.qxp 21/09/2009 17:07 Pgina RT2

  • DESCUBRA UN NUEVO NIVEL EN EL DESARROLLODE APLICACIONES PARA INTERNET

    00_Silverlight.qxp 9/30/09 1:16 PM Page 1

  • TTULO: SILVERLIGHT

    AUTOR: Matas Iacono

    COLECCIN: Manuales USERS

    FORMATO: 17 x 24 cm

    PGINAS: 352

    Copyright MMIX. Es una publicacin de Gradi S.A. Hecho el depsito que marca laley 11723. Todos los derechos reservados. No se permite la reproduccin parcial o to-tal, el almacenamiento, el alquiler, la transmisin o la transformacin de este libro, encualquier forma o por cualquier medio, sea electrnico o mecnico, mediante foto-copias, digitalizacin u otros mtodos, sin el permiso previo y escrito del editor. Suinfraccin est penada por las leyes 11723 y 25446. La editorial no asume responsa-bilidad alguna por cualquier consecuencia derivada de la fabricacin, funcionamien-to y/o utilizacin de los servicios y productos que se describen y/o analizan. Todas lasmarcas mencionadas en este libro son propiedad exclusiva de sus respectivos due-os. Impreso en Argentina. Libro de edicin argentina. Primera impresin realizadaen Sevagraf, Costa Rica 5226, Grand Bourg, Malvinas Argentinas, Pcia. de BuenosAires en octubre de MMIX.

    ISBN 978-987-663-010-8

    Iacono, MatasSilverlight. - 1a ed. - Banfield - Lomas de Zamora : Gradi, 2009.352 p. ; 24x17 cm. - (Manual users; 175)

    ISBN 978-987-663-010-8

    1. Informtica. I. TtuloCDD 005.3

    00_Silverlight.qxp 9/30/09 1:16 PM Page 2

  • 00_Silverlight.qxp 9/30/09 1:16 PM Page 3

  • 4PRELIMINARES

    Matas Iacono

    Ingeniero de sistemas, Microsoft Most Valuable Professional enASP.net, Orador Regional para INETA Latam, Scrum Master cer-tificado y Microsoft Certified Technology Specialist. Cuenta conms de quince aos de experiencia en el desarrollo de softwarecon distintas tecnologas y metodologas.Ha dictado cerca de cincuenta conferencias tcnicas en distintospases latinoamericanos, as como escrito y publicado artculos ennumerosas publicaciones internacionales.Ha trabajado para empresas extranjeras de gran envergadura. Enla actualidad, se desempea como ingeniero de software para Mo-torola Argentina y es profesor en la Universidad Tecnolgica Na-cional de Crdoba.

    AgradecimientosAgradezco a todos los amigos que me brindaron su apoyo y susopiniones sobre lo escrito. A Miguel Saez, de Microsoft, por ha-berme facilitado material y a Lucas Ontivero, de Motorola Ar-gentina, por su crtica aguda, que me ayud con el contenido pro-puesto en el libro.

    DedicatoriaA mi familia, por quedarse a mi lado largos fines de semana mien-tras conclua este libro.

    00_Silverlight.qxp 9/30/09 1:16 PM Page 4

  • 5PRLOGOSi hay algo a lo que le debemos la actual difusin de la tecnologa informtica, tan-to dentro del hogar como de las oficinas, es a la continua evolucin de las interfa-ces grficas de usuarios (GUI). Gracias a ellas, personas de todas las edades y pro-fesiones, en todo el mundo, pueden interactuar con equipos de computacin parafines tan diversos como entretenerse, obtener informacin, realizar clculos y co-municarse, entre un sinnmero de otras posibilidades.Es seguro que tanto la constante innovacin en el desarrollo de las interfaces gr-ficas como la aparicin de Internet han sido los catalizadores para uno de los msfabulosos cambios en la manera en que las personas, alrededor del globo, se rela-cionan mediante el uso de la tecnologa.Mientras que la Web seguir siendo el mbito de comunicacin del futuro, es de es-perar que los requerimientos de interactividad entre mquinas y humanos se vuel-van an ms sofisticados y exigentes. Ante esto, Microsoft desarroll Silverlight, unanueva apuesta para el desarrollo de elementos de grficos de interaccin con los usua-rios orientados a la Web.En este aspecto es, justamente, en el que esta obra hace un gran aporte, al presentarSilverlight 2.0 de una manera amena, clara y completa. En ella, se abarcan no slolos pormenores tcnicos de la tecnologa, sino que, adems, el autor se ha esmeradoen brindar al lector un cmulo de conocimientos que slo podra obtenerse mediantela experiencia, todo esto reflejado en tips, datos tiles, recomendaciones, curiosida-des, advertencias y todos los consejos que el lector reconocer como invaluables a lahora de adentrarse en esta apasionante tecnologa.Por ltimo, quisiera agradecer a Matas Iacono por este maravilloso trabajo que hasido una gua segura en el aprendizaje de Silverlight y, con cuya lectura y estudio,me he sentido guiado y acompaado siempre.

    Lucas OntiveroIngeniero de software,

    Motorola Argentina

    Prlogo

    00_Silverlight.qxp 9/30/09 1:16 PM Page 5

  • PRELIMINARES

    66

    EL LIBRO DE UN VISTAZOEn esta obra se vern los conceptos principales para dominar Silverlight, la tecnologa de

    Microsoft orientada al desarrollo de contenido dinmico y animaciones para la Web. El contenido

    est dirigido a desarrolladores con conocimiento de Microsoft .Net Framework, C# como lenguaje

    principal, y que dominen algunos conceptos de JavaScript y HTML.

    Captulo 1

    INTRODUCCIN A SILVERLIGHT 2

    Para conocer Silverlight desde sus comienzos,

    en este captulo describiremos

    su arquitectura. Hablaremos de las diferencias

    entre aplicaciones tradicionales y las nuevas

    aplicaciones visuales, y conoceremos la lista

    de herramientas necesarias para poder

    desarrollar aplicaciones Silverlight.

    Captulo 2

    MICROSOFT EXPRESSION BLEND 2

    En este captulo nos enfocaremos

    en Microsoft Expression Blend 2 como

    herramienta de desarrollo para Silverlight,

    orientada a diseadores visuales

    y a diagramadores de aplicaciones. Daremos

    un paseo por la interfaz de Microsoft

    Expression Blend 2 y crearemos nuestra

    primera aplicacin Silverlight. Este captulo

    ayudar a los diseadores y desarrolladores

    a entender cada uno de estos mundos.

    Captulo 3

    EL MEJOR TRABAJO, CON LA MEJOR

    HERRAMIENTA

    Luego de enfocarnos en el diseador visual,

    centraremos la atencin de este captulo

    en el desarrollador. Para esto, veremos

    qu posibilidades nos ofrece Microsoft Visual

    Studio 2008 para desarrollar aplicaciones

    Silverlight, los controles y componentes

    propuestos, su interfaz visual y los diferentes

    tipos de proyectos disponibles desde este

    entorno de desarrollo.

    Captulo 4

    XAML AL EXTREMO

    Cada uno de los controles y componentes

    proporcionados por Silverlight,

    su funcionalidad, eventos, mtodos

    y funciones, sern vistos en este captulo.

    Cada uno de estos elementos ser descripto

    con profundidad, generando cdigo

    de ejemplo por cada uno de ellos.

    Este captulo representa una excelente gua

    de referencia sobre todos los componentes

    disponibles en Silverlight.

    Captulo 5

    LUZ, CMARA, ACCIN

    Gran parte de las prestaciones otorgadas

    por Silverlight incluyen la posibilidad

    de mover objetos dentro de nuestra aplicacin.

    En este captulo veremos cmo manipular esta

    caracterstica, ya que se explicarn

    los distintos modelos disponibles para

    animaciones y transformaciones dentro

    de las aplicaciones Silverlight.

    Captulo 6

    CERRAR EL CRCULO

    Silverlight tambin otorga mucho potencial

    con el manejo de imgenes, video y sonido.

    En este captulo hablaremos de ciertas

    caractersticas relacionadas con actividades

    00_Silverlight.qxp 9/30/09 1:16 PM Page 6

  • El libro de un vistazo

    7

    !A lo largo de este manual encontrar una serie de recuadros que le brindarn informacin

    complementaria: curiosidades, trucos, ideas y consejos sobre los temas tratados.

    Cada recuadro est identificado con uno de los siguientes iconos:

    INFORMACIN COMPLEMENTARIA

    CURIOSIDADESE IDEAS

    DATOS TILESY NOVEDADES

    ATENCIN SITIOS WEB

    como consumir videos, mostrar imgenes

    o tocar sonidos dentro de las aplicaciones.

    Tambin hablaremos de Deep Zoom

    y sus caractersticas, as como del dibujo

    a mano alzada con InkPresenter.

    Captulo 7

    INTERCONEXIN

    Este captulo ofrece funcionalidades

    altamente valiosas. Crearemos un juego

    desde cdigo C# y un lector de RSS,

    usaremos almacenamiento aislado para

    guardar informacin en el cliente, crearemos

    aplicaciones para subir archivos al servidor

    y culminaremos con la implementacin

    de la ltima tecnologa de interoperabilidad

    propuesta por Microsoft al conectar Silverlight

    con Windows Communication Foundation.

    Captulo 8

    EL NAVEGADOR Y SU DOMINIO

    Silverlight se ejecuta dentro de una pgina

    HTML manejada por el navegador web.

    Por tal motivo, posee gran potencial

    de interaccin con el cliente. En este captulo

    veremos cmo Silverlight puede manipular

    HTML as como intercambiar informacin

    con JavaScript. Adems, conoceremos cmo

    JavaScript es capaz de consumir servicios

    generados desde Silverlight.

    Apndice A

    SILVERLIGHT FUERA DE WINDOWS

    Gracias a MoonLight, Silverlight puede salir

    de Windows y trabajar en sistemas

    operativos basados en Linux y Unix.

    Hablaremos del proyecto MoonLight,

    sus caractersticas, limitaciones y el futuro

    de Silverlight como tecnologa fuera

    de su ambiente nativo. Adems, se presentan

    algunas herramientas gratuitas y de cdigo

    libre que nos ayudarn en el desarrollo,

    tanto para Windows como para Linux.

    Apndice B

    SILVERLIGHT 3, LA NUEVA GENERACIN

    Daremos un vistazo al producto recientemente

    lanzado por Microsoft. Silverlight 3 trae

    consigo valiosas mejoras al modelo

    ya planteado, las que enumeraremos para

    ganar conocimiento adicional por sobre

    lo ya aprendido durante todo el libro.

    Servicios al lector

    En esta ltima seccin, encontraremos

    un ndice que nos ayudar a buscar de forma

    rpida los trminos ms importantes de esta

    obra. Adems, veremos un listado de sitios

    de inters para ampliar nuestros

    conocimientos y mantenernos al tanto

    de las ltimas novedades en la materia.

    00_Silverlight.qxp 9/30/09 1:16 PM Page 7

  • 00_Silverlight.qxp 9/30/09 1:16 PM Page 8

  • Contenido

    9

    Sobre el autor 4

    Prlogo 5

    El libro de un vistazo 6

    Informacin complementaria 7

    Introduccin 12

    Captulo 1

    INTRODUCCIN A SILVERLIGHT 2

    Iniciarse en el mundo de Silverlight 2 14

    Navegar hacia el mundo

    de Silverlight 2 14

    La experiencia de usuario

    y la portabilidad 16

    Arquitectura de Silverlight 2 19

    Microsoft .Net Framework 20

    Interfaz de usuario y presentacin 21

    El cdigo XAML 22

    Herramientas de desarrollo

    para Silverlight 2 24

    Resumen 27

    Actividades 28

    Captulo 2

    MICROSOFT EXPRESSION BLEND 2

    Un paseo por Expression Blend 2 30

    Silverlight 2 con Expression Blend 2 30

    Unir los extremos 32

    Un recorrido por Expression Blend 2 37

    Explorador de soluciones 38

    Pgina inicial de Silverlight 2 39

    La pgina App.xaml 40

    El entorno de Expression Blend 2 43

    La barra de herramientas 46

    Crear nuestra primera aplicacin

    con Expression Blend 2 48

    Resumen 53

    Actividades 54

    Captulo 3

    EL MEJOR TRABAJO,

    CON LA MEJOR HERRAMIENTA

    Silverlight para desarrolladores 56

    Puesta a punto de Visual Studio 2008 56

    Silverlight 2 con Visual Studio 59

    Crear la primera aplicacin

    con Visual Studio 2008 63

    Interoperabilidad con

    Expression Blend 2 76

    Resumen 79

    Actividades 80

    Captulo 4

    XAML AL EXTREMO

    El lenguaje XAML 82

    Qu es XAML? 82

    Declaracin de objetos 82

    Controles y componentes 83

    Controles contenedores y agrupadores 84

    Control Grid 84

    Control GridSplitter 89

    Control Canvas 92

    Control StackPanel 95

    Control ScrollViewer 98

    Control Border 101

    Controles de interaccin con el usuario 103

    CONTENIDO

    00_Silverlight.qxp 9/30/09 1:16 PM Page 9

  • PRELIMINARES

    10

    Control Button 103

    Control CheckBox 106

    Control RadioButton 110

    Control HyperlinkButton 113

    Control Image 114

    Control ComboBox 117

    Control ListBox 124

    Control TextBlock 126

    Control TextBox 127

    Control PasswordBox 130

    Control DataGrid 132

    Control Calendar 139

    Control DatePicker 147

    Control ProgressBar 148

    Control Slider 152

    Resumen 153

    Actividades 154

    Captulo 5

    LUZ, CMARA, ACCIN

    Mover objetos 156

    Transformaciones 158

    Transformacin de traslacin 159

    Transformacin de rotacin 161

    Transformacin escalar 165

    Transformacin de distorsin 167

    Aplicar todas las transformaciones 168

    Animaciones 170

    DoubleAnimation 171

    ColorAnimation 173

    Animaciones y transformaciones 175

    Estilos y plantillas 178

    Estilos 178

    Plantillas 182

    Resumen 185

    Actividades 186

    Captulo 6

    CERRAR EL CRCULO

    MediaElement 188

    Ejecutar sonidos 188

    Video 194

    Elementos con video embebido 195

    Marcadores de video 196

    Deep Zoom 199

    Crear el primer Deep Zoom 200

    Incluir Deep Zoom en Silverlight 203

    Dibujar con InkPresenter 208

    Dibujar en forma manual 212

    Dibujar sobre otros elementos 215

    InkPresenter y reas de dibujo 217

    Resumen 219

    Actividades 220

    Captulo 7

    INTERCONEXIN

    Ampliar las funcionalidades 222

    Silverlight desde C# 222

    00_Silverlight.qxp 9/30/09 1:16 PM Page 10

  • Contenido

    11

    WebClient 230

    Enviar informacin 233

    Almacenamiento aislado 239

    Implementar el almacenamiento

    aislado 240

    Capacidad de almacenamiento 245

    Almacenar configuraciones 247

    OpenFileDialog 251

    Manejo de hilos 255

    El concepto de hilos 256

    Temporizador 257

    Personalizar los hilos 259

    Hilos y eventos 261

    Consumir servicios

    desde Silverlight 263

    Crear un servicio WCF 270

    Manipular datos 275

    Enlazado de datos 276

    LinQ 283

    Resumen 287

    Actividades 288

    Captulo 8

    EL NAVEGADOR Y SU DOMINIO

    Conectar tecnologas 290

    Silverlight 2 y el HTML 290

    HtmlDocument y HtmlElement 292

    HtmlPage 301

    HtmlWindow 307

    Cookies 316

    Modificar CSS 320

    Silverlight 2 y JavaScript 323

    Llamar funciones 325

    Objetos Silverlight

    para JavaScript 327

    Resumen 347

    Actividades 348

    Apndice A

    SILVERLIGHT FUERA

    DE WINDOWS

    Proyecto Moonlight 330

    Sistemas operativos 330

    Versiones de Moonlight 331

    Herramientas de desarrollo 331

    Problemas conocidos 333

    Apndice B

    SILVERLIGHT 3, LA NUEVA GENERACIN

    Silverlight 3 336

    Nuevos controles 336

    Efectos en tres dimensiones 337

    Uso de Pixel Shader 338

    Fuera del navegador 339

    Servicios al lector

    ndice temtico 342

    Sitios web recomendados 345

    00_Silverlight.qxp 9/30/09 1:16 PM Page 11

  • INTRODUCCINEste libro est orientado a desarrolladores de software, y diseadores visuales y gr-ficos que deseen expandir su rea de conocimiento de desarrollo hacia el ambienteweb. Un lector con nociones iniciales podr ver, durante los captulos, una evolu-cin que le dar la oportunidad de aprender sin necesidad de saberes previos sobrela tecnologa propuesta, Silverlight, mientras que aquel lector con experiencia po-dr encontrar en estas pginas una gua fundamental para aprender, con agilidad,conceptos sobre esta tecnologa de Microsoft. Sin embargo, es necesario, para am-bos lectores, contar con conocimientos medios de desarrollo utilizando MicrosoftC#, as como las tcnica primordiales del funcionamiento y ejecucin de la Web.Los temas propuestos en el libro fueron seleccionados para cubrir la mayor superfi-cie de conceptos sobre Silverlight 2, presentados de una manera progresiva de talforma que el lector se sienta cmodo con su evolucin y que aprenda a cada pasoque da. Desde la recomendacin y el uso de las herramientas ideales para el desa-rrollo bajo esta tecnologa, tanto para diseadores como para desarrolladores, gene-ramos ejemplos prcticos en cada captulo, que abarcan desde HTML hasta C#, ascomo la aplicacin de ASP.net y el uso de JavaScript.Silverlight es un modelo en ebullicin. En el momento de lanzarse la versin 1,sus caractersticas eran limitadas; pero, al poco tiempo, Microsoft mejor la tec-nologa y sac a relucir la segunda versin de Silverlight, versin de la que se ocupaeste libro. Pero esta efervescencia, este cambio constante junto a la bsqueda deun mejor producto y de una tecnologa superior, hicieron que, durante el tiem-po de escritura de este libro, Microsoft sacara la siguiente versin de Silverlight.En este momento, ya contamos con la versin 3 de Silverlight como una versinfuncional y finalizada, por lo que incluimos un apartado, al final del libro, para in-troducir al lector en algunas de las nuevas funcionalidades provistas por Silverlight 3.De esta forma, con este texto, el lector no slo aprender sobre Silverlight, sinoque tendr un bono extra al final, que le servir de rampa de lanzamiento paraabordar de lleno la nueva versin y permanecer siempre actualizado.

    PRELIMINARES

    12

    00_Silverlight.qxp 9/30/09 1:16 PM Page 12

  • Introduccina Silverlight 2

    Iniciarse en el mundo de Silverlight 2 14

    Navegar hacia el mundo de Silverlight 2 14La experiencia de usuario y la portabilidad 16Arquitectura de Silverlight 2 19Microsoft .Net Framework 20Interfaz de usuario y presentacin 21El cdigo XAML 22Herramientas de desarrollo para Silverlight 2 24

    Resumen 27Actividades 28

    Captulo 1

    En este primer captulo veremos

    el porqu de Silverlight 2, al mismo

    tiempo que hablaremos de problemas

    comunes en el desarrollo de software

    desde la ptica de las interfaces grficas,

    los diseadores y programadores,

    as como las limitaciones

    de las herramientas usadas por cada uno.

    Silverlight

    SERVICIO DE ATENCIN AL LECTOR: [email protected]

    01_Silverlight.qxp 9/30/09 1:20 PM Page 13

  • INICIARSE EN EL MUNDO DE SILVERLIGHT 2Muchos cambios se han producido en el desarrollo web desde sus inicios. Se hansucedido mejoras sustanciales hasta la llegada de la Web 2.0 y, sin embargo, se si-guen buscando mejores formas y herramientas para trabajar en este fascinante mun-do. Recorramos esos aos de evolucin hasta la actualidad, cuando una de estasherramientas ve la luz para traer una solucin a nuevas necesidades. Veamos, eneste captulo, los componentes clave de Silverlight 2: las herramientas de desarro-llo y diseo, su arquitectura y los elementos principales que le dan vida.

    Navegar hacia el mundo de Silverlight 2Desde los inicios de la Web, sta ha ido evolucionando, mutando y creciendo.Esta evolucin se inici con la simple transferencia de texto, pas por las imge-nes y la captura de datos del usuario por parte del sistema, hasta llegar al manejode contenido personalizado. ste se genera para el usuario y por l, simulandocasi el mismo comportamiento de aplicaciones desarrolladas para sistemas de es-critorio. Los cambios radicales en las tasas de transferencias de datos, as comoen las capacidades de los equipos que servan esta informacin, tambin acom-paaron dichos acontecimientos. Por supuesto, esta evolucin no slo fue de capa-cidades de hardware y prestaciones hacia el usuario. Al mismo tiempo, estuvo acom-paada por software, lenguajes de programacin y herramientas de desarrollo que,en conjunto, ayudaran a amortiguar la curva de complejidad sobre las necesida-des crecientes que tenan los sistemas. En definitiva, existan mayores requeri-mientos por parte de los usuarios y de los sistemas, por lo que la implementacinen lneas de cdigo y la puesta en marcha de los servicios necesitaron de herra-mientas que hicieran ms simple este trabajo.En la actualidad, el desarrollo web est ms pujante que nunca. Adems, con eladvenimiento de teoras (y prcticas) como el Cloud Computing o servicios deInternet totalmente dinmicos para correos electrnicos, confeccin de docu-mentos, redes sociales e interconexin de servicios, entre otros, debemos enten-der que la Web seguir creciendo y mejorando durante mucho ms tiempo. Estonos llevar de vuelta a la idea antes tratada: mayor complejidad, mejoramiento enlas herramientas y el soporte. Esta mejora en las herramientas que brindan soportetanto al desarrollador como al diseador se hace cada vez ms necesaria y es mu-cho ms requeridas por aquellos que se ven involucrados en el desarrollo web. De-bido a que desarrollar para la Web no se restringe al uso de una tecnologa nicay definitiva, el desarrollador web se ve en la necesidad imperativa de adquirir do-minio y conocimientos sobre decenas de tecnologas y lenguajes de programacin,como XML, HTML, CSS, JavaScript, ActionScript, Lingo, PHP, C# y Java,entre muchas otras que forman el conjunto de la Web. Y es aqu donde se hace

    1. INTRODUCCIN A SILVERLIGHT 2

    14

    01_Silverlight.qxp 9/30/09 1:20 PM Page 14

  • visible Silverlight. Este software forma parte de dicho crecimiento y sirve comosolucin, ya que plantea una mejor forma de desarrollar contenido dinmico pa-ra la Web. Esto sucede no slo en lo visual, sino tambin como herramienta dedesarrollo basado en tecnologas comunes ya conocidas.No debemos equivocarnos al pensar que Silverlight constituye la estrategia deMicrosoft para competir con el ya popular Flash, ex de Macromedia, y ahora deAdobe. Por el contrario, Silverlight representa una oportunidad de reutilizar el co-nocimiento ya adquirido sobre cdigo basado en Microsoft.Net Framework, unmodelo que soporta no slo lenguajes desarrollados y mantenidos por esta empresa,sino que cuenta, por el contrario, con el soporte de compaas creadoras de lengua-jes tan populares como Borland C# Builder y Delphi, tambin de Borland. De es-ta forma, Silverlight trae consigo la posibilidad de enriquecer la experiencia visualen el cliente web, trabajando en cualquiera de los navegadores de Internet msconocidos. Puede interactuar y ser modificado por lenguajes como JavaScript, ex-tendiendo el concepto de HTML dinmico y A.J.A.X. (Asynchronous JavaScript andXML o, en castellano, JavaScript asncrono y XML). Tambin puede consumir ser-vicios web o cualquier elemento con la capacidad de retornar XML, al mismo tiempoque puede ser programado o desarrollado mediante aquel lenguaje que usamos to-dos los das para nuestros desarrollos, o con el que nos sintamos ms cmodos paragenerar las lneas de cdigo que darn vida a nuestra aplicacin.

    Figura 1. Microsoft .Net Framework es el nexo entre el sistema

    operativo y nuestro cdigo. Nos ofrece una plataforma de ejecucin, libreras

    de cdigo, acceso a datos y soporte para diferentes lenguajes.

    VB C++ C# J# ...

    Common Language Specification

    Visual Studio .NET

    ADO .NET y XML

    Librera de clases base

    Common Language Runtime

    Sistema Operativo

    ASP .NETWeb Forms Web Services

    Mobile Internet Toolkit

    WindowsForms

    Iniciarse en el mundo de Silverlight 2

    15

    01_Silverlight.qxp 9/30/09 1:20 PM Page 15

  • La experiencia de usuario y la portabilidadAntes de la aparicin de Microsoft .Net Framework, construir una aplicacin de soft-ware requera diferentes habilidades y dependa del ambiente en el cual se desarrollaraesta aplicacin. As, si las aplicaciones necesitaban desarrollarse para ser usadas bajoWindows, stas requeran que su diseo visual se creara de manera especial para estemodelo. Al mismo tiempo, debera contemplar las limitaciones que el lenguaje de pro-gramacin trajera consigo. El diseo, entonces, quedaba encapsulado dentro del cdi-go del lenguaje seleccionado, siendo casi imposible su implementacin en otro lenguajeo en una nueva versin del mismo. Pensemos que, si una aplicacin deba ser migradaa una nueva versin del lenguaje o, por necesidades de negocio, deba ser implemen-tada en otro lenguaje, toda la interfaz visual deba ser reescrita e implementada. A loanterior debamos sumar que, si exista un cambio de ambiente, es decir, si movamosel desarrollo a un dispositivo mvil o a la Web, no slo la interfaz deba ser reescrita,sino que tambin deba cambiar la lgica radicada en el cdigo. Esto no slo acarreareinversin de tiempo y dinero, sino que, adems, la interfaz (y tal vez la lgica de ne-gocio) nunca quedara del todo igual, castigando la experiencia del usuario que se ha-ba acostumbrado a una herramienta ya construida e implementada.Con la primera versin del .Net Framework, Microsoft hace el intento inicial degenerar portabilidad entre ambientes y lenguajes, separando la interfaz grfica dellenguaje de programacin y proveyendo componentes comunes para que los am-bientes similares puedan reutilizar las interfaces ya creadas. Gracias a esto, tenamosaplicaciones creadas para Windows, que tambin funcionaban en dispositivos mviles,aunque an quedaba trabajo por hacer en cuanto a desarrollo web y Windows,ya que estos dos ambientes seguan siendo incompatibles. Con la versin 3.0 deMicrosoft .Net Framework, se introdujo un nuevo enfoque por medio de un es-quema XML para la confeccin y manipulacin de interfaces de usuarios: ya noaparecan los tpicos botones y cajas de texto rgidas comunes en cualquier aplica-cin de escritorio. Este esquema, llamado XAML (eXtensive Application MarkupLanguage, o en castellano, Lenguaje Extensible de Formato para Aplicaciones) porsus siglas en ingls, le permiti al desarrollador crear otro tipo de aplicaciones anivel visual. XAML fue explotado por WPF (Windows Presentation Foundation),pero muy rpido se entendi que XAML tena mucho futuro por delante.

    1. INTRODUCCIN A SILVERLIGHT 2

    16

    La experiencia demuestra que la primera reaccin por parte de los desarrolladores al ver

    Silverlight es asociarlo en forma directa con la competencia de Adobe Flash. Silverlight persigue

    objetivos similares, pero se separa de Adobe Flash en ciertos aspectos tcnicos, como lengua-

    jes de programacin y arquitectura.

    QU ES SILVERLIGHT?

    01_Silverlight.qxp 9/30/09 1:20 PM Page 16

  • Figura 2. CardSpace, WCF, WPF y WF (Workflow Foundation)

    se agregan como parte de Framework 3 sobre la versin 2 de Framework.

    Silverlight 2 usa, para la representacin visual de sus elementos, XAML. Las mis-mas etiquetas que, como decamos antes, tambin son soportadas por aplicacionesde escritorio construidas con WPF. Esto genera una ventaja significativa sobre lacreacin de aplicaciones y la adaptacin del usuario a nuevas tecnologas. Pen-semos que, al tener un componente comn como XAML para la representacinvisual de elementos de la interfaz grfica, el esfuerzo aplicado para la creacin deuno de estos componentes puede ser reutilizado y explotado en otros ambientes,no slo en aquel para el cual Silverlight fue ideado. Pensemos entonces en unaaplicacin de escritorio, con cientos de usuarios que la usan durante meses o aosy, de un momento a otro, se encuentran usando la misma aplicacin, pero den-tro de un navegador web, con los mismos botones, el mismo contenido visual eigual comportamiento. Uno de los lados ms rugosos en la implementacin de unsistema est atado a la adopcin de ste por parte del usuario, y es en los cambiosde plataformas y ambientes donde se producen las discordias. Aqu es necesario

    Microsoft.NET Framework

    Versin 2.0

    CardSpace WPF

    WCFWF

    Iniciarse en el mundo de Silverlight 2

    17

    Microsoft .Net Framework no slo soporta los lenguajes de programacin propuestos por Mi-

    crosoft. Tambin podemos encontrar otros como Boo, Icc, Clarion#, Cobol, Corba, Eiffel, Fortran,

    Lisp, PHP, Perl y ms. Esto puede resultar en especial interesante, ya que no necesitamos apren-

    der un nuevo lenguaje para desarrollar en Microsoft .Net Framework.

    MICROSOFT .NET Y LENGUAJES

    01_Silverlight.qxp 9/30/09 1:20 PM Page 17

  • invertir mayor esfuerzo para que esta nueva idea sea aceptada. Por tal motivo, noshar falta toda la ayuda posible al momento de hacer este cambio. En la Web, las aplicaciones tienen ms representatividad y, por ende, su atractivoy su facilidad de uso necesitan potenciarse. Esta mejora es llevada a cabo por laimplementacin de soluciones que conjugan JavaScript y XML, dando como pro-ducto la pieza conocida como A.J.A.X., donde bien podemos encontrar cientos demodelos listos para ser implementados. Pero el desarrollo sigue enfocndose en lamanipulacin del HTML que, sin desmerecer sus posibilidades, siempre llegar aun techo mximo, relacionado con las capacidades del mismo modelo HTML. Encomparacin con el modelo de aplicaciones de escritorio, la interactividad ofrecidapor este ltimo es muy superior a la que presenta HTML, y es aqu donde Silverlight,una vez ms, explota lo mejor de estos dos mundos y lo lleva en forma directa almbito de aquel que pierde en comparacin: el del HTML.

    Figura 3. Silverlight se nutre de cada una de las principales

    caractersticas de los dos mundos, generando una mejor experiencia

    de usuario e independencia en plataformas.

    Navegadores web

    CSS/HTML

    JavaScript/AJAXASP.net

    Aplicacionesde escritorio

    XAML

    Framework .Net

    1. INTRODUCCIN A SILVERLIGHT 2

    18

    Es importante entender las diferencias entre las versiones de Microsoft .Net Framework. Slo a

    partir de la versin 3, se incorpora el uso de XAML, as como WPF, pero el ncleo de este Fra-

    mework se mantiene idntico al de la versin 2. Al desarrollar para cualquiera de estas nuevas

    plataformas, deberemos elegir una versin de Framework 3 o superior.

    VERSIONES DE MICROSOFT .NET FRAMEWORK

    01_Silverlight.qxp 9/30/09 1:20 PM Page 18

  • Como observamos en la Figura 3, Silverlight toma lo mejor de los dos mundos. Porun lado, los controles y componentes verstiles propuestos por el desarrollo de es-critorio y, por el otro, la portabilidad entre plataformas y la rapidez de la actuali-zacin de aplicaciones a miles de usuarios al mismo tiempo que otorga Internet.Esta versatilidad y portabilidad entre plataformas, tanto de escritorio como web,no sera posible sin un lenguaje comn de representacin de controles.XAML es el lenguaje que nos dar esta posibilidad no slo para el desarrollo, sinoque tambin brinda la oportunidad de aumentar la versatilidad de las interfaces,poder llevar el comportamiento de las aplicaciones de escritorio a la Web, posibi-litar la adopcin por parte del usuario final de manera independiente del sistema,mediante el aumento de la calidad y de la velocidad en el desarrollo, y otros pun-tos ganados con la utilizacin de XAML y Silverlight.

    Arquitectura de Silverlight 2Al comienzo de nuestro recorrido, nombramos algunas de las caractersticas de Sil-verlight que, al mismo tiempo, definen su planteo arquitectnico. Dijimos queSilverlight est enfocado a la Web y que es ejecutado por el navegador web. Es-to se consigue gracias a un plugin o aditivo que har las veces de gestor o in-trprete. Este componente ronda los 5 megabytes, lo que constituye una sumamuy pequea en relacin con su potencia. En la actualidad, es soportado por losprincipales navegadores de Internet como Internet Explorer, FireFox y Safari,as como los sistemas operativos Windows (con base en Windows XP con ServicePack 2 y hasta Windows 7), Mac OS X 10+ y Linux.Pero Silverlight, aunque hemos hecho hincapi en la gestin de interfaces de usuario,no slo es un lienzo donde podemos crear animaciones vectoriales, sino, muy por elcontrario, consiste en una plataforma liviana de desarrollo con soporte para SOA(Service Oriented Architecture o, en castellano, Arquitectura Orientada a Servicios), re-des, manejo de datos, y ms. Como observamos en la Figura 4, Silverlight va muchoms all y nos entrega, por sobre todas las cosas, acceso a las ltimas tecnologas ypatrones de desarrollo de software. Podemos separar y enumerar las diferentes carac-tersticas sobre la base de su rea de trabajo, como veremos a continuacin.

    Iniciarse en el mundo de Silverlight 2

    19

    Por lo general, es difcil lograr que un usuario adopte una nueva aplicacin cuando est acos-

    tumbrado a la que usa desde hace aos. Este problema de adopcin se ve potenciado en quienes

    nunca usaron una computadora. Pero, si podemos reproducir en el ordenador lo que el usuario

    est acostumbrado a utilizar en la vida real, la adopcin ser casi transparente.

    LA DIFCIL ADOPCIN POR PARTE DE LOS USUARIOS

    01_Silverlight.qxp 9/30/09 1:20 PM Page 19

  • Figura 4. En este diagrama podemos observar

    la arquitectura soporte completa de Silverlight 2.

    Microsoft .Net FrameworkCon respecto a las lneas de cdigo y de clases ya implementadas para ser usadas porel desarrollador de cdigo, el Framework disponible cubre todas las reas necesariaspara interactuar con datos y hasta con lenguajes propios de la Web.

    .NET para Silverlight

    Centro de presentacin

    Manejo de navegador

    WCF

    RESTRSS/ATOM

    SOAP

    Librera paraMicrosoft

    AJAX

    MotorJavaScript

    POXJSON

    WPF

    ControlsData Binding

    LayoutEditing

    Data

    Motor de ejecucin CLR

    XAML

    LINQXLINQXML

    Centro de interfazgrfica

    VectorAnimation

    TextImages

    Integradocon la red

    Integradocon DOM

    Serviciode aplicaciones

    Instalador

    Perifricos

    KeyboardMouse

    Ink

    Multimedia

    VC1WMAMP3

    DRM

    Media

    BCC

    GenericsCollections

    CryptographyThreading

    DLR

    Iron PythonIron Ruby

    Jscript

    1. INTRODUCCIN A SILVERLIGHT 2

    20

    01_Silverlight.qxp 9/30/09 1:20 PM Page 20

  • LinQ y XLinQ: soporte especializado para llevar a cabo el manejo de colec-ciones de objetos, acceso a datos y XML. Con LinQ podremos crear consultasintegradas con el lenguaje de programacin.

    WCF (Windows Communication Foundation): plataforma de comunicacin paraacceso a servicios web, servicios remotos y peticiones HTTP, entre otros.

    Librera de clases base: acceso a las libreras de clases de Microsoft .Net Frame-work, que nos ofrece soporte para el manejo de cadenas de texto, expresiones regu-lares, serializacin de datos, manejo de internacionalizacin de aplicaciones y ms.

    CLR (Common Language Runtime): motor de Microsoft .Net que se encarga delmanejo de la memoria y dems puntos de contacto con el sistema operativo.

    DLR (Dynamic Language Runtime, en castellano Lenguajes Dinmicos): soporte pa-ra lenguajes de programacin como JavaScript, Iron Phyton e Iron Ruby.

    Almacenamiento aislado: permite generar sectores de almacenamiento de archi-vos e informacin de manera aislada y para usuarios especficos.

    Interfaz de usuario y presentacinSilverlight tambin presenta una gran cantidad de funcionalidad en cuanto a su pre-sentacin visual y puede manejar sonidos, imgenes y videos, as como una serie decontroles y componentes listos para usar.

    Video y sonido: inclusin de soporte de formatos de video y sonido comunes co-mo MP3 y WMA. Incluye capacidades de streaming.

    Imgenes: capacidad de despliegue de imgenes tanto vectoriales como mapas debits en sus formatos ms comunes, texto y animaciones.

    Enlazado de datos: capacidad de enlazado de fuentes de datos automtica que fa-cilita el despliegue de la informacin desde diferentes fuentes de datos.

    Controles: set de controles listos para usar que brindan la posibilidad de crearnuestro propio set de controles y de reusarlos en diferentes aplicaciones.

    XAML: implementacin de eXtensible Application Markup Language para la con-feccin de las interfaces. stas son creadas sobre la base de XML.

    Como pudimos ver hasta aqu, Silverlight no es un simple visualizador de ani-maciones, sino un avanzado complemento de desarrollo que hace uso de lasprincipales tecnologas Microsoft y que permite desenvolvernos con soltura almomento de desarrollar aplicaciones sobre ste. Silverlight, entonces, nos ofrece la potencia de los lenguajes de programacin uti-lizados, por lo general, en el desarrollo de aplicaciones de escritorio y web, ade-ms, de su posibilidad de interaccin con bases de datos y servicios remotos.Tambin, nos brinda la elegancia de sus vistosas interfaces visuales, que puedeninteractuar con lenguajes cliente, tales como JavaScript, enmarcado en un nave-gador web, sin estar atado a un sistema operativo ni a un navegador especfico.

    Iniciarse en el mundo de Silverlight 2

    21

    01_Silverlight.qxp 9/30/09 1:20 PM Page 21

  • Figura 5. En la imagen, observamos los controles

    visuales listos para usar y su apariencia por defecto.

    El cdigo XAMLYa hemos nombrado a XAML como uno de los componentes fundamentales deSilverlight, pero veamos un poco ms en profundidad de qu se trata exactamen-te. XAML es un lenguaje declarativo, formado por etiquetas descriptivas paracada uno de los componentes que Silverlight pueda representar. XAML basa elconcepto descriptivo en el conocido modelo de XML. Gracias a esta cualidad (ba-se de XML), entender la estructura de XAML resulta simple e intuitivo. Veamosa continuacin un ejemplo de elementos XML simples:

    1. INTRODUCCIN A SILVERLIGHT 2

    22

    Debido a que Silverlight puede ser desarrollado con los principales lenguajes de programacin

    soportados por Microsoft .Net Framework, ste brinda pleno soporte para la programacin orien-

    tada a objetos y puede absorber todos los beneficios inherentes a este modelo de programacin.

    PROGRAMACIN PROFESIONAL

    01_Silverlight.qxp 9/30/09 1:20 PM Page 22

  • Contenido del Elemento

    Etiquetas o tags descriptivas dentro de caracteres < y >. Cada elemento es iniciado conun nombre especfico y siempre deberemos sealar su cierre utilizando el mismo nom-bre ms los caracteres

  • El ejemplo nos sirve, al mismo tiempo, para mostrar otros atributos importantes den-tro del mundo de XAML y de Silverlight. Tanto el elemento Canvas como TextBlockson controles preestablecidos por el entorno de Silverlight. Canvas es utilizadopara definir un elemento contenedor de otros componentes, y TextBlock nos da laposibilidad de mostrar texto en pantalla en forma de bloques. La combinacin deestos elementos produce lo que aparece en la Figura 6, pero el concepto va ms allporque muestra cmo, anidando elementos, podemos conseguir diferentes efectosvisuales. As, es posible mezclar un control del tipo botn con un control utilizadopara mostrar imgenes o videos y obtener como resultado un botn en cuyo fondose reproduce un video. Por ltimo, el atributo x:Name es el que le otorga, al con-trol, la capacidad de tener un nombre nico, descriptivo, que podr ser usado porel lenguaje de programacin que elijamos para darle funcionalidad a la interfaz vi-sual. Con este atributo, podremos cambiar el texto representado al principio en tiem-po de ejecucin, sobre la base de la reaccin de un evento por parte del usuario opor parte del flujo de nuestra aplicacin. A medida que avancemos en el libro, nosintroduciremos dentro de XAML; tambin en los diferentes componentes y con-troles disponibles por parte del entorno de desarrollo y libreras de objetos.

    Herramientas de desarrollo para Silverlight 2Si tenemos en cuenta que una de las principales cualidades de Silverlight es el poten-ciamiento visual en interfaces de usuario, sera muy interesante contar con herramien-tas para su correcto diseo y diagramacin. As, de manera sencilla, nos guiaran en laconfeccin de los elementos XAML, su estructura, controles anidados, enlazado a fuen-tes de datos, entre otros. Microsoft nos provee de dos herramientas principales, cadauna de ellas enfocada a cubrir una de las ramas involucradas en la generacin de ele-mentos Silverlight. Por un lado, para desarrolladores de software, la herramienta porexcelencia es Microsoft Visual Studio en su versin 2008. Aunque la nueva versinde esta herramienta puede obtenerse con facilidad (Visual Studio 10), la que hemosnombrado es suficiente para emprender nuestra labor. Microsoft Visual Studio 2008resultar ideal debido a su soporte de Microsoft .Net Framework 3.5, herramientaque trae consigo una serie de plantillas para Silverlight 2.

    1. INTRODUCCIN A SILVERLIGHT 2

    24

    Gracias a la extensibilidad de XML como lenguaje de etiquetas es que XAML genera un nuevo sub-

    conjunto de estas etiquetas para la representacin de controles en el entorno de Silverlight. As

    lo hace flexible en la creacin de los elementos, fcil de entender y portable entre ambientes.

    XAML Y XML

    01_Silverlight.qxp 9/30/09 1:20 PM Page 24

  • Figura 7. Visual Studio 2008 otorga pleno soporte para

    Silverlight 2 mediante plantillas como las que observamos en la imagen.

    De cualquier manera, tendremos que instalar, adems de la herramienta mencio-nada, el Service Pack 1 para sta. La instalacin del Service Pack 1, junto con la delas herramientas de desarrollo de Silverlight 2, incluirn en Visual Studio 2008 lasplantillas de la Figura 7. Debido a que la versin 2 de Silverlight vio la luz despusque la herramienta de desarrollo, este procedimiento resulta la nica forma de po-der ver los asistentes y dems componentes dentro de la mencionada herramienta.Adems de las plantillas que acelerarn el desarrollo, podremos encontrar una serie decontroles y componentes para su uso inmediato que, si bien, como veremos ms ade-lante, es posible construirlos por nuestra cuenta desde cero, toda la lgica de funcio-nalidad ya se encuentra contenida y probada en ellos. Esto nos ahorra tiempo de tra-bajo al no tener que desarrollar algo ya existente. Componentes como botones,calendarios y cajas de texto son slo algunos de los que encontraremos dentro del aba-nico de posibilidades. Como vemos en la Figura 8, Visual Studio 2008 nos presenta unalista completa de controles listos para usar que, como ya dijimos, tienen toda la lgicaque necesitarn impresa en el mismo componente, y, adems, est pronta para usar.

    Iniciarse en el mundo de Silverlight 2

    25

    Adems del Service Pack 1 para Visual Studio 2008, tambin deberamos contar con el con-

    junto de herramientas de Silverlight. stas pueden ser descargadas desde la direccin

    www.microsoft.com/downloads, ingresando Silverlight 2 tools for Visual Studio 2008 como

    criterio de bsqueda.

    DESCARGA DE SILVERLIGHT 2 TOOLS PARA VISUAL STUDIO 2008

    01_Silverlight.qxp 9/30/09 1:20 PM Page 25

  • Figura 8. Grillas, cajas de texto y listas desplegables son slo

    algunos de los controles listos para usar incluidos en Visual Studio 2008.

    Por otro lado, tambin existe una herramienta para diseadores grficos que nocuenten con experiencia en el desarrollo de software. Con una interfaz similar ala de herramientas para manejo fotogrfico, Microsoft Expression Blend 2 lepermite al diseador grfico, y por qu no al desarrollador, construir XAML demanera rpida y amigable, como toda herramienta WYSIWYG (What you see iswhat you get o en castellano Lo que ves es lo que obtienes) por sus siglas en in-gls. Esto quiere decir que, al trabajar con Microsoft Expression Blend 2, eldiseo que planteemos ser igual al resultado final en el momento de ejecucinde la aplicacin de Silverlight. Deberemos usar Microsoft Expression Blend 2 siestamos habituados a la creacin de imgenes vectoriales o si slo buscamos ace-lerar el desarrollo de componentes Silverlight. Veremos ms a fondo las cualida-des de Microsoft Expression Blend 2 a lo largo de los captulos, con suficientedetalle como para poder utilizarlo con cierta seguridad.Por ltimo, cabe mencionar que Microsoft Visual Studio 2008 y Microsoft Ex-pression Blend 2 se compenetran de tal forma que, por lo comn, nos veremoscreando cdigo en la primera herramienta, abriendo y editando el mismo pro-yecto en la segunda, para terminar con algunos retoques artsticos o acelerar elenlazado de datos en nuestro trabajo. En la Figura 9, podemos observar cmo unproyecto creado en Visual Studio 2008 puede ser abierto y manipulado en for-ma directa con Microsoft Expression Blend 2.Debido al mismo motivo citado en el caso de Visual Studio 2008, es necesarioinstalar un conjunto de herramientas en Microsoft Expression Blend 2 para con-tar con plantillas que den soporte a Silverlight 2. En este caso, el Service Pack 1para Microsoft Expression Blend 2 nos otorgar la prestacin.

    1. INTRODUCCIN A SILVERLIGHT 2

    26

    01_Silverlight.qxp 9/30/09 1:20 PM Page 26

  • Figura 9. Microsoft Expression Blend 2 trabajando

    sobre una solucin creada en Microsoft Visual Studio 2008.

    A lo largo del libro haremos referencia a estas dos herramientas, que sern usadaspara los distintos ejemplos que plantearemos. Por tal motivo, es recomendable con-tar con las herramientas instaladas en nuestro equipo antes de continuar con lossiguientes captulos. Es posible tambin realizar los ejemplos con las versiones gra-tuitas de Visual Studio 2008 (Visual Studio 2008 Express), aunque no podemosgarantizar que los ejemplos de interfaz y otros aspectos concuerden con lo que losusuarios de estas versiones vern en sus equipos.

    Iniciarse en el mundo de Silverlight 2

    27

    RESUMEN

    Silverlight puede ser una herramienta extremadamente potente con soporte basado en

    Microsoft .Net Framework, que nos otorga la posibilidad de desarrollar en el lenguaje y la forma

    que mejor nos convenga. Desde la versin 1 de Silverlight hasta la actual, ha habido mejoras

    notables, con mayor funcionalidad y prestaciones tanto para el desarrollador como para el

    diseador visual. El usuario final se ve beneficiado al tener que descargar un plugin de tamao

    pequeo y que trabaja en casi todos los navegadores y sistemas operativos de la actualidad.

    01_Silverlight.qxp 9/30/09 1:20 PM Page 27

  • 28

    PREGUNTAS TERICAS

    1 En qu modelo se basa el cdigo XAML pa-

    ra representar los elementos de la interfaz?

    2 Subconjunto de qu otro modelo de desa-

    rrollo visual para Windows podramos con-

    siderar a Silverlight?

    3 Qu versin de Microsoft .Net Framework

    necesitamos, como mnimo, para trabajar

    con Silverlight 2.0?

    4 Qu sistemas operativos y navegadores

    web soportan la ejecucin de Silverlight 2.0?

    5 Qu herramienta resulta ideal para desa-

    rrolladores, que les permita potenciar el

    desarrollo de aplicaciones Silverlight 2.0?

    6 Los diseadores visuales cuentan con al-

    guna herramienta de software que los ayu-

    de a crear contenido para Silverlight 2.0?

    7 Es necesario instalar algn aditamento en

    la herramienta de desarrollo?

    8 Silverlight 2.0 provee algn conjunto de

    componentes listos para usar?

    9 Por qu es importante crear interfaces

    atractivas e intuitivas en las aplicaciones?

    10Cmo se llama el modelo de desarrollo

    para la Web que conjuga el uso de XML y

    JavaScript?

    ACTIVIDADES

    EJERCICIOS PRCTICOS

    1 Dirjase al sitio web de la W3C (www.

    w3.org/XML) para aprender ms sobre

    XML.

    2 Para introducirse mejor en el mundo de

    Silverlight, intente ampliar el ejemplo pro-

    puesto en este captulo, modificando el

    tipo de fuente y el color de fondo de la apli-

    cacin creada.

    3 Para conocer ms sobre desarrollo con

    Microsoft .Net, tome el curso gratuito del

    Desarrollador 5 Estrellas desde el sitio

    web de Microsoft. Este curso ayuda a en-

    tender trminos utilizados en este libro. La

    URL es www.mslatam.com/latam/msdn/

    comunidad/dce2005.

    4 Instale Microsoft Expression Blend 2 y

    djelo listo para trabajar en el siguiente

    captulo.

    5 Una vez instalados Visual Studio 2008 y

    Microsoft Expression Blend 2, ingrese en

    www.silverlight.net, el sitio oficial de

    Silverlight, descargue los ejemplos y

    analcelos. Esto ayuda a entender con

    mayor facilidad esta tecnologa.

    01_Silverlight.qxp 9/30/09 1:20 PM Page 28

  • MicrosoftExpressionBlend 2

    Un paseo por Expression Blend 2 30

    Silverlight 2 con Expression Blend 2 30Unir los extremos 32Un recorrido por Expression Blend 2 37Explorador de soluciones 38Pgina inicial de Silverlight 2 39La pgina App.xaml 40El entorno de Expression Blend 2 43La barra de herramientas 46Crear nuestra primera aplicacin con Expression Blend 2 48

    Resumen 53Actividades 54

    Captulo 2

    Cules son las herramientas disponibles

    para desarrollar aplicaciones Silverlight?

    Cmo podemos aumentar nuestra

    productividad a la hora de escribir XAML?

    stas son algunas de las preguntas

    que abordaremos en este captulo.

    Silverlight

    SERVICIO DE ATENCIN AL LECTOR: [email protected]

    02_Silverlight.qxp 9/30/09 1:23 PM Page 29

  • UN PASEO POR EXPRESSION BLEND 2En el captulo anterior, nos introdujimos en el mundo de Silverlight 2. Vimosalgunas de sus caractersticas, los elementos que lo componen y las principales he-rramientas de desarrollo usadas para la creacin de aplicaciones y componentes deSilverlight. Una de estas herramientas, Microsoft Expression Blend 2, es usadapor los diseadores visuales y por los desarrolladores como un suplemento paralos detalles visuales avanzados. En este captulo, ahondaremos en el uso de estaherramienta y su interaccin con Silverlight 2, cmo crear animaciones as comotambin elementos compuestos, para finalizar con la creacin de nuestra primeraaplicacin Silverlight 2. Este contenido est dirigido, en especial, a diseadoresvisuales que quieran incursionar en el uso de Expression Blend 2 como herramientade diseo para software y a desarrolladores de software que necesiten modificar, demanera rpida, interfaces visuales basadas en XAML.

    Silverlight 2 con Expression Blend 2Desde los inicios de su desarrollo, este software siempre se enfoc, de maneraprioritaria, en las lneas de cdigo y en la solucin del problema propuesto. Es-to sucede ya que, justamente, fueron el cdigo y el problema por corregir los quemotivaron la creacin de soluciones de software, que provean una respuestaprogramtica a la dificultad planteada. Este enfoque, el de la solucin del problema,caus que en el desarrollo de software primara la capacidad y la calidad de reso-lucin de un problema por encima del enfoque interactivo entre la aplicacin yel ejecutor de ese programa. As, dentro de la historia del software y las compu-tadoras, por carencias o por el enfoque antes citado, el trabajo se haca mediantetarjetas perforadas, las cuales se apilaban en grandes cajas y que posean, en s mis-mas, la resolucin de una de las partes que solucionaba el todo del problema. Sinninguna duda, este sistema era manejado slo por el desarrollador de este softwareprimario y no por alguien ajeno a la informtica de la poca. Desde ese momen-to de la historia y hasta la actualidad, se produjeron cambios en la manera en queel usuario interactuaba entonces e interacta ahora con esta pieza de software. Sin

    2. MICROSOFT EXPRESSION BLEND 2

    30

    A pesar de ms de 40 aos de evolucin en la ingeniera de software, slo en la actualidad se po-

    ne especial nfasis en las interfaces visuales y en cmo stas pueden ser parte de la solucin

    del problema al que el usuario se debe enfrentar a diario. As, vemos aparecer nuevas tecnolo-

    gas multitctiles en sistemas operativos, o de captura de movimientos en consolas de juegos.

    LA EVOLUCIN DE LAS INTERFACES

    02_Silverlight.qxp 9/30/09 1:23 PM Page 30

  • embargo, ste seguira encontrndose una y otra vez ante una herramienta que,aunque en esencia cubriera sus necesidades funcionales y resolviera el dominio delproblema planteado, no abarcara los conceptos de usabilidad, ergonoma visualo interactividad entre el hombre y la mquina.

    Figura 1. En el Mix 2009 realizado por Microsoft,

    uno de los temas por tratar fue la creacin de interfaces grficas.

    Despus de algunas dcadas marcadas por este comportamiento de parte de laingeniera de software y de aquellos que la han practicado, de alguna forma, el usuariotermin acostumbrndose a la idea de obtener aplicaciones o piezas de software queaparecen, como grandes hitos visuales y pantallas monocromticas. Esto sucede,incluso, en pleno auge de las tarjetas aceleradoras de video con capacidades vi-suales que diez aos atrs se reservaban slo a inmensos ordenadores destinados a laproduccin de efectos cinematogrficos. Muy pocos desarrolladores de softwarecontemporneos, incluidas las empresas, contemplan como parte de sus desarro-llos la inclusin de esta temtica. Slo con la llegada de la Web, algunos de ellosadicionaron esto como una necesidad comercial, pero, en muy pocos casos, co-mo una realidad para brindar un mejor producto que, adems de solucionar un

    Un paseo por Expression Blend 2

    31

    Es importante incluir en los proyectos de desarrollo de software a un diseador grfico que

    cuente con experiencia en interfaces de usuario. No debemos desestimar este punto en nues-

    tros desarrollos. El xito de nuestro producto no est marcado slo por las lneas de cdigo,

    la usabilidad es un aspecto muy importante.

    CONSULTEMOS A UN DISEADOR

    02_Silverlight.qxp 9/30/09 1:23 PM Page 31

  • problema, resulte optimizado en lo que a interactividad con el usuario se refiere.Por supuesto, la implantacin de este concepto dentro del desarrollo de softwareacarre ciertos problemas que han tenido que ser resueltos por fuerza bruta ms quepor inteligencia, debido a que la solucin planteada, la de incorporar mejoras vi-suales e interactivas, requiere de la presencia de otras ciencias. Esas ciencias estnalejadas del desarrollo de software, por lo que el problema resulta bastante claro altener que unir, de alguna forma, extremos que hablan idiomas diferentes.

    Unir los extremosEn la actualidad, el mayor impedimento en la creacin de aplicaciones visuales yel trabajo realizado por los expertos en esta materia es causado por las herramien-tas que stos utilizan. Cuando en un proyecto de software es necesaria la interven-cin de diseadores grficos especializados en experiencia de usuario, stos plasmansu trabajo en herramientas ms ligadas a las doctrinas del diseo grfico y las artesvisuales que a las del desarrollo de software. Entonces, el problema recae en quetanto el diseador como el desarrollador hablan idiomas diferentes: los primerosse refieren a colores, movimiento, disposicin de elementos y formas, entre otrosaspectos, mientras que los segundos necesitan saber qu mostrar y cmo se reali-zar el cdigo que contenga la lgica. Al mismo tiempo, los diseadores suelendesconocer las limitaciones de las plataformas donde sern creados los productosde software y tienden a generar elementos visuales extremadamente atractivos, pe-ro con costos elevados en su implementacin por parte del desarrollador. Al finaly sin ser lo ltimo, el producto resultante del diseador ser un conjunto de im-genes o un esquema que mostrar lo pretendido de manera visual para la aplica-cin de software, y le deja al desarrollador la tarea de volver a armar esto dentrode las lneas de cdigo, quien no lo conseguir con exactitud al compararlo conlo propuesto en un principio por el diseador.Y es aqu donde han surgido herramientas que traducen, de alguna forma, estoque el diseador piensa y plasma en algo que el desarrollador pueda usar. As, esposible encontrar herramientas muy potentes como Adobe Fireworks donde,por medio del modelo visual creado por el diseador, el desarrollador obtiene unconjunto de imgenes y cdigo HTML. A pesar de eso, este tipo de herramientasacarrea un problema, ya que se enfocan en el diseador y no en el desarrollador,creando cdigo HTML que, basado en el dibujo propuesto, generan HTML pocotil para su implementacin, como podemos ver a continuacin. El siguiente esel resultado HTML generado para la Figura 2.

    2. MICROSOFT EXPRESSION BLEND 2

    32

    02_Silverlight.qxp 9/30/09 1:23 PM Page 32

  • [...41 lneas eliminadas ...]

    Y, si bien este cdigo puede ayudar, resulta imposible de usar para el desarrollador,por lo que ste se ver forzado a reescribir partes o su totalidad para poder obtenercdigo que le sea til. Para esto utilizar slo cdigo HTML, debido a que a ste sele pueden agregar cuestiones programticas a diferencia del anterior.

    Filtro de bsqueda

    Figura 2. A la derecha podemos

    ver lo que consigui el desarrollador como resultado

    del concepto ideado por el diseador.

    Un paseo por Expression Blend 2

    33

    02_Silverlight.qxp 9/30/09 1:23 PM Page 33

  • El problema es claro: estas herramientas hacen las veces de traductores, pero no de ge-neradores. Traducen lo que el diseador quiso decir a algo que el desarrollador puedaentender, pero, en este proceso de traduccin, las herramientas no traducen funciona-lidad, por lo que el desarrollador no la obtendr y deber retraducirla por su cuenta.La diferencia sustancial sobre este concepto por parte de Expression Blend 2 reside enque no es un traductor, sino un generador de funcionalidad, con la caractersticade que para el diseador la herramienta se comportar como cualquier otra herra-mienta de las que est acostumbrado a usar. Sin embargo, a medida que diagrama ydisea los contenidos visuales, sta generar funcionalidad lista para ser implementa-da por el desarrollador de software, como podemos observar en el siguiente cdigo:

    2. MICROSOFT EXPRESSION BLEND 2

    34

    Existen especializaciones en el desarrollo de software que se enfocan en la optimizacin de las

    interfaces visuales, llegando al punto de calcular la cantidad de clics que deber hacer un usuario

    para conseguir realizar una accin determinada. La implementacin de estas tcnicas produce

    mayor aceptacin de los productos por parte de los usuarios.

    OPTIMIZACIN DE LA INTERFAZ

    02_Silverlight.qxp 9/30/09 1:23 PM Page 34

  • El diseador ver, en lugar del cdigo anterior, un modelo como el que se mues-tra en la figura que aparece a continuacin:

    Figura 3. Una lista desplegable creada con Expression Blend 2,

    que generar cdigo XAML listo para ser usado por el desarrollador.

    Como el desarrollador obtiene cdigo que se adapta a sus necesidades, puede en-focarse directamente en la solucin del problema. A modo de ejemplo, en las si-guientes lneas de cdigo vemos cmo el desarrollador agrega algunas lneas decdigo C# en la clase asociada al cdigo XAML para generar funcionalidad so-bre el producto del diseador:

    public partial class Page : UserControl{

    public Page(){// Required to initialize variablesInitializeComponent();

    this.ComboBox.Items.Add(Item 1);this.ComboBox.Items.Add(Item 2);

    Un paseo por Expression Blend 2

    35

    02_Silverlight.qxp 9/30/09 1:23 PM Page 35

  • this.ComboBox.Items.Add(Item 3);}

    }

    El resultado de esta implementacin de cdigo podemos verlo a continuacin:

    Figura 4. Como observamos en esta imagen, el resultado propuesto

    por el diseador y la implementacin del desarrollador son idnticas.

    Microsoft Expression Blend 2, entonces, sirve de nexo entre los dos elementosinvolucrados en el desarrollo, tanto para diseadores como para desarrolladores.De esta manera se logra que los productos resultantes en ambos casos sean com-patibles entre s, para que ninguno de los profesionales involucrados tenga la ne-cesidad de salir de su mbito natural de trabajo. El resultado final ser, entonces,que el diseador obtendr en la pieza de software el comportamiento y la aparienciavisual, tal como los haba ideado, mientras que el desarrollador no se ver forzadoa intentar traducir estas ideas a elementos programticos y se dedicar exclusiva-mente a la funcionalidad y a la resolucin del problema.

    2. MICROSOFT EXPRESSION BLEND 2

    36

    Contar con un diseo visual de la aplicacin de manera temprana no slo sincronizar a los

    miembros del equipo de desarrollo, ya que todos tendrn una idea general del producto final, sino

    que puede servir de disparador de retroalimentacin por parte del cliente al ver con antelacin

    la idea del producto terminado.

    PROTOTIPO DEL PRODUCTO

    02_Silverlight.qxp 9/30/09 1:23 PM Page 36

  • Un recorrido por Expression Blend 2Al iniciar Expression Blend 2 o al crear un nuevo proyecto con l, podemos elegirentre cuatro tipos diferentes. Tenemos dos proyectos especficos para Silverlight ysus diferentes versiones, pero tambin podemos disear y trabajar con proyectosWindows Presentation Foundation (WPF).

    Aplicacin WPF: este tipo de proyecto representa una aplicacin de escritorio consoporte para WPF. Si tenemos en cuenta que WPF tambin se compone de cdigoXAML, es posible crear un entorno visual directamente desde Expression Blend 2.

    Librera de controles WPF: esta librera de controles est especializada en el en-capsulamiento de elementos XAML y cdigo de programacin para su posteriorreutilizacin en aplicaciones WPF. Debemos optar por esta opcin cuando quere-mos crear elementos reutilizables para ser incorporados en distintas aplicaciones.

    Sitio de Silverlight 1: este tipo de proyectos est orientado a crear sitios web consoporte para la versin 1 de Silverlight. Debemos tener en cuenta que este modelono es tratado en este libro y adems representa una versin antigua del software.

    Aplicacin de Silverlight 2: una vez instalado el Service Pack 1 para ExpressionBlend 2, podremos ver esta clase de trabajos. ste es el tipo de proyectos sobre loscuales nos moveremos, tanto de manera visual como programtica.

    Figura 5. Lista de proyectos incluidos en Expression Blend 2.

    Un paseo por Expression Blend 2

    37

    La mayora de los controles preestablecidos en Silverlight presentarn un comportamiento si-

    milar al de sus homnimos presentes en el desarrollo web y de escritorio. Al interactuar con

    ellos se deber, por consiguiente, imitar las mismas lneas de cdigo usadas en los dems

    ambientes de desarrollo con Microsoft .Net.

    CONTROLES EN SILVERLIGHT

    02_Silverlight.qxp 9/30/09 1:23 PM Page 37

  • Adems de poder indicar el nombre del proyecto que vamos a crear y la ubica-cin fsica que tendr, es posible seleccionar el lenguaje de programacin con elcual preferimos trabajar. Vale aclarar que, para poder conseguir esta lista, es ne-cesario haber instalado esos lenguajes en nuestra estacin de trabajo. El hecho depoder seleccionar un lenguaje de programacin se refiere a que cualquier cdigoque se realice desde Expression Blend 2 se har en ese lenguaje, por lo que es im-portante elegir aquel con el que estemos ms familiarizados.

    Explorador de solucionesUna vez que hemos creado el proyecto Silverlight 2, podremos navegar entre susarchivos desde el explorador de la solucin, que tpicamente puede ser encontradoa la derecha de la aplicacin, como podemos observar en la Figura 6. Este exploradornos mostrar, como elementos iniciales, una pgina del tipo XAML ms una clasecreada en el lenguaje seleccionado, en este caso C#. Esta clase de C# es la que serusada para generar el cdigo que maneje los elementos creados en la pgina XAML.

    Figura 6. El explorador de soluciones (rea superior derecha)

    de Expression Blend 2 con los elementos iniciales de una aplicacin Silverlight 2.

    2. MICROSOFT EXPRESSION BLEND 2

    38

    Para mejorar nuestro desarrollo en Expression Blend 2, es recomendable tener instalado, ade-

    ms, alguna de las herramientas de desarrollo de software de Microsoft, como por ejemplo

    Visual Studio 2008. Esto har que, de tener que agregar cdigo de programacin a nuestro pro-

    yecto Silverlight, lo podamos hacer con mayor facilidad desde estas herramientas.

    INTEROPERABILIDAD

    02_Silverlight.qxp 9/30/09 1:23 PM Page 38

  • Pgina inicial de Silverlight 2El archivo Page.xaml es considerado la pgina o componente de inicio para nuestraaplicacin Silverlight 2, teniendo como contenido el siguiente cdigo:

    En el caso de Silverlight 2, el elemento inicial es representado por un tag llamado. Lo que nos dice esto es que no ser considerado como una apli-cacin en s misma, sino como un componente que puede ser incrustado o con-sumido por otras aplicaciones del tipo Silverlight, as como por aplicaciones web.En la misma declaracin de atributos de este control Silverlight, se incluye elnombre de la clase de C# encargada de manejar los componentes del control, ascomo el ancho y el alto, en pixeles, del control. Si exploramos el contenido deesa clase, podremos ver lo siguiente:

    using System;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;

    Un paseo por Expression Blend 2

    39

    Es posible hacer que nuestro control Silverlight se adapte a la superficie que lo contiene. Si co-

    locamos el elemento Silverlight dentro de una tabla HTML y configuramos las propiedades del

    elemento para que sus atributos Width y Height sean igual a Auto, ste se adaptar de manera

    automtica a las dimensiones de su contenedor.

    DIMENSIONES DE SILVERLIGHT

    02_Silverlight.qxp 9/30/09 1:23 PM Page 39

  • using System.Windows.Shapes;

    namespace SilverlightApplication2{

    public partial class Page : UserControl{

    public Page(){

    // Required to initialize variablesInitializeComponent();

    }}

    }

    Esta clase, como ya comentamos, es la que ser usada como contenedor de laimplementacin del cdigo que interactuar con los componentes colocados en lapgina XAML previamente vista. Esto quiere decir que, si queremos que nuestraaplicacin Silverlight consuma datos de una base de datos o reaccione apoyada enestmulos por parte del usuario, deberamos escribir esas lneas dentro de esta clase.Por supuesto, no estamos obligados a acumular todas las lneas de cdigo en estenico archivo ya que, como en todo lenguaje orientado a objetos, podremos creartantas clases como necesitemos sin estar obligados a tener una pgina XAML porcada una. As, podramos encapsular la lgica de negocios o el acceso a datos enclases especializadas, y generar cdigo mantenible y fcilmente modificable.

    La pgina App.xamlLa pgina App.xaml, junto con la clase de cdigo que la representa, es otro de losarchivos creados inicialmente. Esta clase es usada en especial para almacenar c-digo XAML, que en el caso de App.xaml puede ser reusado dentro de todas lasdems pginas de tipo XAML. Como podemos ver en el siguiente cdigo:

    2. MICROSOFT EXPRESSION BLEND 2

    40

    Como una buena prctica en el desarrollo de software, encontramos los patrones de diseo de

    software. stos representan formas de crear cdigo para solucionar problemas especficos. Es

    importante tener presente estos patrones para mejorar la calidad del cdigo creado en Silverlight.

    Como resultado, obtendremos cdigo ms prolijo y ms fcil de modificar.

    PATRONES DE DISEO DE SOFTWARE

    02_Silverlight.qxp 9/30/09 1:23 PM Page 40

  • >

    ......

    En el cdigo anterior, el archivo App.xaml es usado para alojar la definicin de unnuevo elemento TextBox, que presenta ciertas particularidades de sus atributos decolor y comportamiento, como podemos ver en la Figura 7. Este nuevo elemento,ahora, puede ser accedido y consumido por cualquier otro TextBox que se en-cuentre dentro de nuestra aplicacin. Por lo comn, cuando desarrollemos conSilverlight, tendremos la necesidad de crear nuestros propios esquemas visualespara que sean aplicados sobre controles especficos. Una forma de compartir estosesquemas es mediante su colocacin dentro de este archivo. De cualquier manera,hablaremos ms de estos esquemas y propiedades en los captulos 4 y 5.

    Un paseo por Expression Blend 2

    41

    Debemos tener cuidado en la cantidad de informacin que agregamos a nuestros archivos XAML,

    ya que stos deben ser descargados por el usuario. Un archivo de gran tamao tomar ms

    tiempo en ser descargado, en detrimento de la experiencia del usuario. Podemos usar carga por

    demanda para mejorar esta experiencia.

    TAMAO DE ARCHIVOS

    02_Silverlight.qxp 9/30/09 1:23 PM Page 41

  • Figura 7. El esquema generado puede ser aplicado a otros

    controles del mismo tipo en cualquier otra pgina de Silverlight.

    Con respecto a la pgina de cdigo (App.xaml.cs), podemos decir que presentaun conjunto de eventos que se dispararn en determinados momentos de la vi-da de nuestra aplicacin. El cdigo genrico se muestra a continuacin, y luegolo analizaremos con ms detalle:

    public App() {

    this.Startup += this.OnStartup;this.Exit += this.OnExit;this.UnhandledException += this.Application_UnhandledException;

    InitializeComponent();}

    private void OnStartup(object sender, StartupEventArgs e) {

    // Load the main control herethis.RootVisual = new Page();

    }

    private void OnExit(object sender, EventArgs e) {}

    2. MICROSOFT EXPRESSION BLEND 2

    42

    02_Silverlight.qxp 9/30/09 1:23 PM Page 42

  • El primer mtodo, constructor de esta clase, se encarga de enlazar eventos inhe-rentes al comportamiento de nuestra aplicacin. El mtodo OnStartup se ejecutaral inicio de la aplicacin, en este caso, podramos colocar cdigo en l para con-seguir algn comportamiento necesario al momento de inicializarse nuestra apli-cacin. Por ejemplo, podramos necesitar inicializar objetos o conectarnos a unservicio web, entre otras posibilidades. En el mismo caso, el evento OnExit ser dis-parado en el momento en el que la aplicacin sea cerrada o terminada, y de igualforma que en el caso anterior, podramos necesitar liberar ciertos recursos o realizaracciones especficas cuando la aplicacin concluya.

    El entorno de Expression Blend 2El entorno de Expression Blend 2 no se limita a los archivos previamente tratados.Si tenemos en cuenta que esta herramienta puede ser usada tanto por diseadorescomo por desarrolladores, podremos encontrar elementos tiles para los dos casos.Una de las secciones destacadas involucra el lienzo de dibujo central. En este lien-zo, podremos arrojar y ordenar todos los controles incluidos en Silverlight, as co-mo crear nuestros propios modelos y controles.

    Figura 8. En este lienzo, podemos ver cmo

    son manipulados distintos controles de manera visual.

    Desde esta rea central, tambin es posible interactuar en forma directa con elcdigo XAML. En nuestra interfaz podemos ver, en la parte superior derecha, lasopciones para intercambiar entre los diferentes modos de visualizacin: Diseo,XAML o Dividir (mixto), y tenemos la posibilidad de modificar los componentesdesde cualquiera de estas vistas. Si contamos con cierta experiencia en edicin de

    Un paseo por Expression Blend 2

    43

    02_Silverlight.qxp 9/30/09 1:23 PM Page 43

  • XAML, es probable que trabajemos en el modo mixto o de pantalla dividida, yaque esto puede acelerar nuestro trabajo de manera significativa.El prximo grupo de paneles que vamos a inspeccionar es el de las propiedades.ste se encuentra situado a la derecha de Expression Blend 2. Tpicamente, estaspropiedades son el acceso rpido a las configuraciones de aspecto y comportamientode los controles adicionados al lienzo de edicin. Para lograr la inspeccin de laspropiedades de un control, primero ser necesario seleccionarlo. Segn el controlseleccionado, las propiedades se vern afectadas en relacin a ste por lo que no con-taremos con las mismas opciones en todos los casos.

    Figura 9. Existen otras propiedades relacionadas con diferentes controles,

    slo debemos movernos usando la barra de desplazamiento ubicada a la derecha.

    En esta rea tambin podemos encontrar, en la parte superior, opciones que tenganque ver con el proyecto. En especial, la pestaa relacionada con los recursos dela aplicacin, donde se listarn todos los atributos previamente configurados,como los alojados en el archivo App.xaml, que ya hemos tratado. La gran venta-ja de esta lista de recursos radica en que podemos arrastrar cualquiera de estos

    2. MICROSOFT EXPRESSION BLEND 2

    44

    En Silverlight, no slo es posible modificar la apariencia visual de los controles nativos mediante

    la generacin de esquemas. Tambin podremos crear nuestros propios componentes y controles

    heredndolos en nuestro propio cdigo y creando nueva lgica funcional.

    IMPLEMENTACIN DE CONTROLES

    02_Silverlight.qxp 9/30/09 1:23 PM Page 44

  • elementos sobre alguno de los controles existentes para aplicar las configuracio-nes a ese control. El resultado de arrastrar el estilo configurado al inicio permiteobtener lo que podemos ver en la siguiente figura.

    Figura 10. El control de caja de texto posee, una vez aplicado, el estilo

    definido en el elemento TextBoxStyle1, que aparece debajo de la pestaa de recursos.

    El ltimo panel que agrupa informacin sobre nuestra aplicacin Silverlight se en-cuentra a la izquierda del lienzo de dibujo. Sobre estos grupos, en la parte superior, seubican las transformaciones y animaciones de los componentes de nuestra aplica-cin. Aunque hablaremos de estas propiedades con mayor detalle en el captulo 5, valerecalcar que se pueden generar diferentes efectos de movimiento y transformacionesdesde esta seccin. Debajo de este panel, se encuentra el rbol de controles de la p-gina que estamos visualizando. Los controles se agruparn de manera jerrquica sobrela base del contenedor inmediato superior. Si tenemos en cuenta que los controlesXAML pueden ser contenedores de otros controles XAML, esta estructura nos darrpido acceso a cada uno de los elementos que componen un control de manera rpi-da. En la Figura 11, podemos ver un ejemplo de este rbol y del panel de animaciones.

    Un paseo por Expression Blend 2

    45

    Todas las imgenes, videos y sonidos que agreguemos a nuestro proyecto, as como cualquier

    archivo externo, sern comprimidos en un nico archivo final con extensin XAP. Este archivo

    es, en realidad, un archivo zip que contiene todos los elementos creados por el proyecto Silverlight.

    COMPRESIN DE ARCHIVOS

    02_Silverlight.qxp 9/30/09 1:23 PM Page 45

  • Figura 11. En este rbol de controles se muestra la lista

    de elementos agregados antes a nuestro lienzo de dibujo, cmo stos

    son contenidos por una grilla y sta, a su vez, por el control Silverlight.

    La barra de herramientasDesde la barra de herramientas de Expression Blend 2, tendremos acceso a todoslos controles y componentes preestablecidos de Silverlight y de Microsoft .NetFramework. Podemos separar la lista de controles en los siguientes grupos:

    Elementos de dibujo: son aquellos que nos dan acceso a herramientas de dibujovectoriales. Con stos, podremos dibujar lneas, curvas, crculos y rectngulos.

    Figura 12. Listas de controles para dibujo vectorial.

    Contenedores y agrupadores: la tarea de estos elementos consiste, principal-mente, en agrupar otros controles Silverlight, aunque tambin se encargan deordenar, dentro de la superficie de dibujo, la disposicin de esos elementos. As,

    2. MICROSOFT EXPRESSION BLEND 2

    46

    02_Silverlight.qxp 9/30/09 1:23 PM Page 46

  • podemos encontrar grillas, donde se definirn filas y columnas (agregando den-tro de cada celda distintos controles y componentes) o elementos de barras dedesplazamiento para colocar contenido que exceda los lmites de ancho o alto de-finidos para una zona de nuestra aplicacin.

    Figura 13. Controles para la agrupacin y contencin de otros elementos y controles.

    Interaccin con el usuario: este ltimo grupo representa aquellos controles ycomponentes que sirven para capturar comportamiento por parte del usuario.Dentro de los ms conocidos, podemos encontrar los botones, cajas de texto, lis-tas desplegables y botones de seleccin mltiple, entre otros.

    Figura 14. Controles ms comunes para capturar informacin por parte del usuario.

    Los controles antes nombrados suelen ser los que se usan con mayor frecuencia para eldesarrollo de aplicaciones con Silverlight, pero existen otros que no se ven de forma di-recta. Para poder acceder a ellos, es necesario seleccionar el ltimo elemento de la listaen la barra de herramientas. Al hacerlo, podremos ver la lista completa de controles dis-ponibles y agregarlos a nuestra coleccin de controles, como se muestra a continuacin.

    Un paseo por Expression Blend 2

    47

    02_Silverlight.qxp 9/30/09 1:23 PM Page 47

  • Figura 15. Todos los controles disponibles desde Expression Blend 2.

    Crear nuestra primera aplicacin con Expression Blend 2Ya estamos en condiciones de comenzar a trabajar con Expression Blend 2 para crearnuestra primera aplicacin Silverlight. En este caso, crearemos un visor simple devideos. Este visor deber contemplar las posibilidades de iniciar, pausar y detener, enforma completa, una pelcula designada por nosotros. El primer paso es crear unanueva aplicacin Silverlight 2. Una vez hecho esto, necesitaremos agregar a nuestrolienzo de dibujo un control del tipo MediaElement, que sirve para representar videos,imgenes y sonidos en Silverlight. Para poder agregar este control, es necesario que lobusquemos en la lista completa de controles Silverlight, como vimos en la Figura 15,ya que no se encuentra disponible en la barra de herramientas. Junto con este control,agregaremos alguno del tipo Border. Este control es necesario para darle una apa-riencia de caja a nuestra pelcula, debido aque el control MediaElement no poseecaractersticas. Podemos obtener un cambio en la configuracin visual del controlBorder si modificamos sus caractersticas en la pestaa Propiedades. Para este caso,

    2. MICROSOFT EXPRESSION BLEND 2

    48

    A medida que Silverlight va madurando, ms empresas y portales en la Web se inclinan por

    la utilizacin de esta tecnologa sobre otras. Uno de los ltimos portales que opt por modi-

    ficar toda su implementacin de servicios para los usuarios fue Terra, al cambiar su utilizacin

    de Adobe Flash por Silverlight.

    CADA VEZ MS SE INCLINAN POR SILVERLIGHT

    02_Silverlight.qxp 9/30/09 1:23 PM Page 48

  • debemos modificar las propiedades del fondo (Background), para que se aplique elcolor degradado, y las de apariencia, colocando el grosor del borde del control(BorderThikness) en 1 y el radio de curvatura de las esquinas (CornerRadius) en 10.

    Figura 16. Propiedades aplicadas al control Border.

    Por ltimo, el control MediaElement debe ser contenido por el control que representael borde configurado previamente. Para esto, arrastramos el control MediaElement den-tro del control Border para lograr el efecto deseado. Como podemos editar directamenteXAML, es posible lograr el mismo fin con las siguientes lneas de cdigo:

    Por ltimo, es necesario que agreguemos tres botones para las tres acciones antesdefinidas. Podremos cambiarle el texto que se va a mostrar en cada botn, presio-nando dos veces con el puntero del ratn sobre el control, o mediante sus propie-dades. El resultado debera ser similar al mostrado en la siguiente figura.

    Un paseo por Expression Blend 2

    49

    02_Silverlight.qxp 9/30/09 1:23 PM Page 49

  • Figura 17. Nuestro visor de videos con los botones que controlarn la reproduccin.

    Una vez conseguido el visor de videos, es necesario configurar el control MediaElementpara especificarle cul ser el video que se va a reproducir. Seleccionamos el con-trol MediaElement en la lista de propiedades y buscamos la fuente de contenido(Source). Por lo general, podremos seleccionar formatos soportados por Silverlightde los que hablaremos con ms detalles en el captulo 6 cuando veamos el compo-nente MediaElement de manera especial. Una vez que hemos seleccionado el videoen cuestin, presionamos la tecla F5 para inicializar la aplicacin. Esta accin de-ber iniciar un explorador de Internet y desplegar la aplicacin creada. Podremosnotar que el video se reproduce con normalidad, pero los botones creados para ca-da una de las acciones no funcionan como esperbamos, debido a que no hemosgenerado ningn cdigo que las realice (Figura 18).Para conseguirlo, el primer paso es asignarle un nombre a nuestro MediaElement,ya que sin l no podremos acceder a las propiedades del control, por lo que no se-r posible iniciarlo, pausarlo o detenerlo. Podemos asignarle el nombre al controlseleccionndolo y agregndole el mismo que tiene en la lista de propiedades o me-diante XAML por medio del atributo x:Name=Nombre del Control. El elementoMediaElement quedar como se ve en el siguiente cdigo:

    2. MICROSOFT EXPRESSION BLEND 2

    50

    Si necesitamos buscar material sobre desarrollo de interfaces visuales, es posible que tambin

    las encontremos mediante la sigla UX (User eXperience o experiencia de usuario, por su signifi-

    cado en ingls). Debido a que el trmino, con el tiempo, mut, tendremos ms chances de hallar

    informacin mediante este ltimo nombre.

    INTERFACES DE USUARIO

    02_Silverlight.qxp 9/30/09 1:23 PM Page 50

  • Figura 18. El visor de videos trabajando de manera correcta en nuestro navegador.

    Si tenemos en cuenta que la lgica debe ser creada en la clase de cdigo C#, necesita-remos escribir algunas lneas en ella para realizar las acciones propuestas por los tresbotones. Tenemos varios caminos para lograrlo: podramos usar Visual Studio 2008para generar el cdigo. Visual Studio 2008 es una herramienta de alto nivel para lacreacin de cdigo para aplicaciones, as como para realizar pruebas sobre l. Por otrolado, sera posible modificar el archivo de clase y el cdigo XAML por nuestra cuen-ta. Sin embargo, esto puede redundar en un aumento de trabajo y del tiempo dedesarrollo y crear posibles problemas en la confeccin del cdigo, si no somos expe-rimentados conocedores del lenguaje de programacin utilizado. De cualquier ma-nera, para este ejemplo, si optamos por la segunda opcin, slo deberemos seguir unoscuantos pasos. Primero, en el cdigo XAML, tendremos que agregar el atributoClick=Nombre del Mtodo por cada botn creado. Click representa el evento por el

    Un paseo por Expression Blend 2

    51

    Expression Blend 2 trae consigo un pequeo servidor de pginas web. Este servidor es activado

    en el momento en que queremos depurar nuestro trabajo y ver los resultados obtenidos. Gra-

    cias a este servidor, no dependeremos de grandes infraestructuras para desplegar y ejecutar

    nuestros proyectos cada vez que necesitemos validar lo que estemos desarrollando.

    SERVIDOR WEB

    02_Silverlight.qxp 9/30/09 1:23 PM Page 51

  • cual se disparar la accin o la lgica contenida en el mtodo o funcin creada en elcdigo C#. As, cuando el usuario presione el botn en cuestin, el evento Click serdisparado y se desencadenar toda la lgica que hayamos programado. Es necesario,entonces, que modifiquemos nuestro XAML para agregar los tres eventos:

    Estos tres eventos ahora hacen referencia a tres funciones: Iniciar, Pausar y Detener. Pa-ra agregar la lgica que maneje estas acciones, necesitamos modificar nuestra clase C#.Si no contamos con Visual Studio 2008, podremos abrirla con el bloc de notas o cual-quier editor de texto. El resultado final debera ser como el que sigue:

    using System;using System.Windows;

    using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;

    using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;

    namespace SilverlightApplication2{

    public partial class Page : UserControl

    {public Page(){

    2. MICROSOFT EXPRESSION BLEND 2

    52

    02_Silverlight.qxp 9/30/09 1:23 PM Page 52

  • // Required to initialize variablesInitializeComponent();

    }

    private void Iniciar(object sender, RoutedEventArgs e){

    visorVideo.Play();}

    private void Pausar(object sender, RoutedEventArgs e){

    visorVideo.Pause();}

    private void Detener(object sender, RoutedEventArgs e){

    visorVideo.Stop();

    }}

    }

    En el cdigo anterior, vemos cmo una simple lnea de cdigo por accin pue-de ejecutar, pausar o detener el video. Si volvemos a ejecutar nuestra aplicacinSilverlight, deberemos poder interactuar con el video seleccionado mediante losbotones, inicindolo, detenindolo y pausndolo.

    Un paseo por Expression Blend 2

    53

    RESUMEN

    Expression Blend 2 es una herramienta altamente flexible que une dos reas del desarrollo

    de software que haban estado separadas y con falta de comunicacin. De esta forma les da

    tanto a los diseadores como a los desarrolladores una forma