Obtenga el máximo rendimiento de una potente herramienta en la creación de web interactivas y aplicaciones móviles.
Silverlight es una herramienta de Microsoft que se emplea para generar aplicaciones web multimedia interactivas a través de una implementación multiplataforma para distintos servidores de .NET Framework. Asimismo, unifica las funciones del servidor, la web y el escritorio utilizando simultáneamente código administrado, lenguajes dinámicos, programación declarativa y tradicional, así como la eficacia de Windows Presentation Foundation.
El libro comienza con la presentación al lector de las características de Silverlight, su integración en aplicaciones, su arquitectura y sus herramientas. A continuación, se introduce Silverlight Designer para Visual Studio 2010 y se especifica el modo de creación de nuevos proyectos y aplicaciones en Silverlight.
En los temas siguientes se abordan los modelos de aplicaciones, la programación administrada y el sistema de diseño. Se continúa con el trabajo con formas, dibujos, pinceles, geometrías y transformaciones, y posteriormente se desarrolla la tarea con controles, texto, fuentes, tipos, propiedades, métodos y eventos, así como la integración de Silverlight en una página web.
Otra parcela importante de su contenido la constituyen el acceso a datos y las estructuras de datos, las funciones de red y comunicación, y la seguridad y rendimiento. Finalmente se presenta el trabajo con animaciones, audio y vídeo.
Introducción e instalación ........................................................................... 1
Capítulo 1. Características de Silverlight ...................................................... 5
Integrar Silverlight en aplicaciones .................................................................. 5
Controles ...............................................................................................7
Agregarlógicadecódigo................................................................................ 8
Lenguajes dinámicos .................................................................................... 9
Gráficos ....................................................................................................... 9
Multimedia y animación .............................................................................. 10
Data, redes y ejecución de aplicaciones fuera del explorador........................... 12
Arquitectura de Silverlight ............................................................................... 12
Componentes de presentación básicos ....................................................... 15
.NET Framework para Siverlight .................................................................. 16
Características de programación adicionales de Silverlight ......................... 17
Herramientas y tecnologías relacionadas .................................................... 18
Cambios en la runtime y las herramientas de Silverlight 3 a las nuevas versiones 4 y 5 ......................................................................... 19
Cambios en el analizador de XAML .............................................................. 19
Cambios en modo quirks ............................................................................. 20
Common Lenguaje Runtime ............................................................................. 21
Administración de la memoria .................................................................... 21
Sistema de tipos comunes ........................................................................... 22
Herramientas de Silverlight .............................................................................. 23
Instalar Silverlight Tools para Visual Studio 2010 ........................................ 23
Silverlight Tools para Visual Studio 2010 ..................................................... 25
SDK de Silverlight ......................................................................................... 26
Otras herramientas de Silverlight ................................................................ 26
Capítulo 2. Silverlight Designer ................................................................... 29
Silverlight Designer para Visual Studio 2010 .................................................... 29
Vista de diseño……………. .............................................................................. 30 VistaXAML.................................................................................................... 33
Ventana Propiedades................................................................................... 34
Ventana Orígenes de datos ......................................................................... 37
Ventana Esquema del documento ............................................................... 37
Capítulo 3. Proyectos y aplicaciones en Silverlight ....................................... 39
Crear un nuevo proyecto de Silverlight ............................................................ 39
Proyecto de aplicación de Silverlight ............................................................... 40
Archivos de proyecto de aplicación de Silverlight ....................................... 42
Archivos de aplicación para proyectos web de Silverlight ........................... 43
Proyecto de de biblioteca de clases de Silverlight............................................ 43
Archivos de proyecto de biblioteca de clases de Silverlight ........................ 44
Agregar un ensamblado de biblioteca de Silverlight ................................... 45
Crear por primera vez una aplicación de Silverlight ......................................... 46
Crear un proyecto de Silverlight .................................................................. 46
Definir el diseño de cuadrícula .................................................................... 47
Agregar controles ........................................................................................ 49
Agregar código ............................................................................................. 55
Diseño dinámico .......................................................................................... 57
Capítulo 4. Modelos de aplicaciones y programación .................................. 61
Introducción ..................................................................................................... 61
Programación administrada y modelo de aplicaciones .................................... 62
La API administrada .......................................................................................... 62
Características de la API administrada ........................................................ 63
La API de JavaScript .......................................................................................... 65
Consideraciones sobre el modelo de programación ................................... 65
Escenarios para utilizar la API de JavaScript ................................................ 66
Características técnicas de la API de JavaScript ........................................... 68
JavaScript y el HTML DOM ............................................................................... 69
Modelo de objetos del documento DOM .................................................... 70
El modelo de programación de SilverLight .................................................. 70
El código HTML y el árbol de objetos de Silverlight ..................................... 71
Hosts que no son un explorador .................................................................. 73
Uso de varios complementos Silverlight en una página web ........................... 74
Configurar receptores y emisores de mensajes locales ............................... 74
Enviar mensajes y recibir respuestas ........................................................... 77
Uso de Silverlight fuera del explorador ............................................................ 80
Compatibilidad de ejecución fuera del explorador ...................................... 80
Instalar, iniciar y desinstalar aplicaciones de ejecución fuera del explorador .... 82
Detectar la conectividad de red y el estado de ejecución fuera del explorador .. 84
Características especiales para las aplicaciones de ejecución fuera del explorador .......................................................................................... 85
Depurar aplicaciones de ejecución fuera del explorador ............................ 86
Utilizar Silverlight en un control de explorador .......................................... 87
Utilizar una interfaz de usuario de Silverlight en otro complemento o aplicación 88
Utilizar Silverlight en una aplicación basada en Windows a través de COM ....... 88
Utilizar Silverlight en otra aplicación a través del interfaz del explorador .. 89
Capítulo 5. Diseño de Silverlight .................................................................. 91
Sistema de diseño de Silverlight ....................................................................... 91
Cuadros de límite de elementos .................................................................. 93
Medir y organizar elementos secundarios .................................................. 94
Elementos panel y comportamientos de diseño personalizados ......................................................................................... 96
Cambiar el tamaño de las ventanas ............................................................. 115
Paneles personalizados .................................................................................... 116
Medir .......................................................................................................... 116
Organizar ..................................................................................................... 117
Crear un panel personalizado en XAML ....................................................... 119
Capítulo 6. Formas, dibujos, pinceles, geometrías y transformaciones ........ 121
Formas y dibujos .............................................................................................. 121
Objetos de formas ....................................................................................... 121
Utilizar trazados y geometrías ..................................................................... 124
Pintar formas ............................................................................................... 125
Transformar formas ..................................................................................... 126
Pinceles ............................................................................................................ 127
Pintar un área con color sólido .................................................................... 127
Pintar un área con un degradado ............................................................... 129
Pintar con imágenes………………………………………………… ................................. 136
Pintar con vídeo ........................................................................................... 136
Geometrías ....................................................................................................... 137
Tipos de geometría simples ......................................................................... 138
Geometrías de trazado ................................................................................ 140
Geometrías compuestas .............................................................................. 145
La clase Geometry ....................................................................................... 145
La clase PathGeometry ................................................................................ 146
La clase Path ................................................................................................ 147
Transformaciones ............................................................................................. 148
Clases de transformaciones ........................................................................ 148
Propiedades comunes de transformación ................................................... 149
Transformaciones y sistemas de coordenadas ............................................ 150
Animar transformaciones ............................................................................ 151
Transformaciones interactivas ..................................................................... 152
Transformaciones 3D ................................................................................... 153
Girar un objeto en un plano 3D ................................................................... 153
Imágenes .......................................................................................................... 154
Capítulo 7. Entrada e impresión ................................................................. 155
Compatibilidad con pantalla completa ............................................................ 155
Modo incrustado y modo de pantalla completa .......................................... 155
Entrar en modo de pantalla completa ......................................................... 157
Limitaciones del modo de pantalla completa .............................................. 158
Modo de pantalla completa con aplicaciones de confianza ........................ 159
Volver al modo incrustado ........................................................................... 160 Entrada............................................................................................................. 161
Compatibilidad con el ratón ............................................................................. 161
Eventos del ratón ......................................................................................... 161
Controladores de eventos del ratón ............................................................ 162
Adjuntar un controlador de eventos del ratón ............................................ 163
Definir un controlador de eventos del ratón ............................................... 163
Eventos del ratón enrutados ....................................................................... 165
Captura del ratón ......................................................................................... 169
El ratón como un lápiz ................................................................................. 170
Promoción de eventos multitoque a eventos del ratón .............................. 170
Eventos que se producen al hacer clic con el botón secundario del ratón .. 171
Doble clic ..................................................................................................... 171
Eventos del ratón fuera del árbol visual ...................................................... 171
Arrastar y colocar ........................................................................................ 172
Eventos del ratón, hosts de explorador y sistemas operativos .................... 172
Compatibilidad con el teclado .......................................................................... 173
Eventos de teclado ...................................................................................... 173
Controladores de eventos de teclado .......................................................... 175
Adjuntar un controlador de eventos de teclado .......................................... 176
Definición de un controlador de eventos de teclado ................................... 176
Uso de KeyEventsArgs ................................................................................. 176
Eventos enrutados de teclado ..................................................................... 178
Entrada de texto y controles ....................................................................... 181
Control y reentrada de eventos de teclado ................................................. 181
Editores de métodos de entrada ................................................................. 182
Arrastrar y colocar objetos en el diseño de la interfaz de usuario ................... 182
Imprimir .......................................................................................................... 184
Mostrar un cuadro de diálogo Imprimir ...................................................... 184
Realizar la operación de impresión .............................................................. 185
Configurar y limpiar para una operación de impresión ............................... 186
La clase PrintDocument ................................................................................... 186
La clase PrintPageEventArgs ............................................................................ 188
Capítulo 8. Controles ................................................................................... 191
Introducción a los controles ............................................................................. 191
Agregar un control a una aplicación ............................................................ 191
Utilizar propiedades para cambiar el aspecto de un solo control ...................... 193
Utilizar estilos para cambiar el aspecto de varios controles ........................... 196
Crear controladores de eventos para controles .............................................. 198
Controles por función ...................................................................................... 201
Personalización de controles ........................................................................... 207
Control personalizado .................................................................................. 207
Contrato de control ..................................................................................... 208
Modelo de estados y elementos .................................................................. 209
Modelos de contenido de controles ................................................................ 211
Controles de texto ....................................................................................... 211
Controles que muestran un elemento único ............................................... 213
Controles que muestran un elemento único y un encabezado ......................... 214
Controles que muestran una colección de elementos ................................. 215
Controles que muestran una colección de elementos y un encabezado ..... 219
Controles que muestran otros elementos de la interfaz de usuario ........... 219
Inicialización y diseño de controles .................................................................. 219
Capítulo 9. Texto y fuentes ......................................................................... 221
Texto y fuentes ................................................................................................ 221
Elementos de texto ...................................................................................... 221
Especificación de propiedades de texto y fuente ........................................ 226
Fuentes en Silverlight ....................................................................................... 228
Selección de fuentes .................................................................................... 230
Especificación de fuentes no predeterminadas ........................................... 230
Colores y pinceles para el primer plano de texto ............................................ 231
Modelo de texto de TextBlock ......................................................................... 232
Usos de los objetos Run y LineBreak ........................................................... 232
Acceso al modelo de texto de TextBlock en el código ................................. 233
Ajustar el texto ............................................................................................ 233
Texto multilínea de TextBlock ...................................................................... 235
Aplicación de trasformaciones al texto de TextBlock .................................. 235
Animación de texto de TextBlock ................................................................ 236
TextBox y PasswordBox .................................................................................... 236
Ajuste de texto de TextBox .......................................................................... 236
Texto multimedia de TextBox ...................................................................... 237
Modelo de selección de TextBox ................................................................. 237 RichTextBox ...................................................................................................... 237
Otros controles relacionados con el texto ....................................................... 238
Label ............................................................................................................ 238
AutoCompleteBox ........................................................................................ 238
ItemsControls .............................................................................................. 238
Popup, Tooltip ............................................................................................. 238
Administración de los eventos de teclado y texto de los elementos de texto ...... 239
Glyphs .............................................................................................................. 240
La clase TextBox ............................................................................................... 240
La clase LineBreak ............................................................................................ 243
La clase Run ...................................................................................................... 243
La clase TextBlock ............................................................................................ 244
La clase RichtextBox ......................................................................................... 244
Capítulo 10. Integrar Silverlight con una página web ................................... 247
Utilizar HTML ................................................................................................ 247
Agregar Silverlight a una página web con HTML ............................................. 248
Procedimientos ............................................................................................ 249
Ejemplo ....................................................................................................... 251
Utilizar JavaScript ............................................................................................. 254
Agregar Silverlight a una página web con JavaScript ...................................... 254
Procedimientos ............................................................................................ 255
Ejemplo ....................................................................................................... 258
Integración de ASP.NET .................................................................................... 262
Integración de JavaScript con el puente HTML ................................................ 262
Configurar Silverlight para que admita el uso de scripts mediante JavaScript .... 263
Marcar tipos y miembros como elementos que admiten el uso de script ……………………………………………………… ......................................... 263
Adjuntar métodos de JavaScript a los eventos administrativos que admiten script..................................................................................... 265
Propiedades del tipo Type EventHandler .................................................... 266
API de clase ScriptEventHandler .................................................................. 266
Compatibilidad especial con ASP.NET AJAX ................................................. 267
Llamar a JavaScript desde código administrado .............................................. 267
Requisitos previos.......................................................................................... 267
Crear un proyecto y una página de prueba de Silverlight ............................ 268
Enlazar el evento de botón HTML al código XAML ...................................... 268
Llamar a la función de script de cliente desde código administrado ........... 270
Ejemplo ....................................................................................................... 271
Llamar a código administrado desde JavaScript .............................................. 272
Requisitos previos ........................................................................................ 273
Crear un proyecto y una página de prueba de Silverlight ............................ 273
Enlazar el script de cliente a código XAML .................................................. 274
Registrar código administrado para el acceso de script de cliente .............. 276
Probar el acceso de script de cliente a código administrado ....................... 277
Crear una página de prueba HTML .............................................................. 278
Ejemplo ....................................................................................................... 280
Capítulo 11. Tipos, propiedades, métodos y eventos ................................... 283
Tipos en .NET FRAMEWORK ............................................................................. 284
Clases .......................................................................................................... 285
Estructuras .................................................................................................. 286 Enumeraciones ............................................................................................ 287
Interfaces ..................................................................................................... 289
Delegados ................................................................................................ 290
Definiciones de tipos ........................................................................................ 291
Atributos ..................................................................................................... 292
Accesibilidad a tipos .................................................................................... 292
Nombres de tipo .......................................................................................... 293
Tipos base e interfaces ................................................................................ 293
Miembros de tipos ........................................................................................... 294
Campos ....................................................................................................... 294
Propiedades ................................................................................................. 295
Métodos ...................................................................................................... 296
Constructores………………………………………………………….. ................................ 296
Eventos ....................................................................................................... 296
Tipos anidados ............................................................................................. 297
Características de los miembros de tipos ......................................................... 297
Sobrecarga ................................................................................................... 299
Heredar, reemplazar y ocultar miembros .................................................... 299
Propiedades de dependencia en Silverlight ..................................................... 299
Propiedades CLR de respaldo de propiedades de dependencia ............................................................................................. 301
Establecer valores de propiedad ................................................................. 302
Funcionalidad de propiedad proporcionada por una propiedad de dependencia.......................................................................... 304
Enlace de datos ............................................................................................ 304
Estilos …… .................................................................................................... 305
Animaciones ................................................................................................ 305
Comportamiento de cambio de propiedad ................................................. 306
Valor predeterminado y ClearValue ............................................................ 306
Prioridad de los valores de propiedades de dependencia ............................... 307
Eventos para Silverlight .................................................................................... 307
Button.Click: introducción al uso de eventos Silverlight .............................. 309
Definir un controlador de eventos ............................................................... 310
Parámetro remitente (sender) y datos de evento ....................................... 310
Agregar controladores de evento en código administrado ......................... 311
Eventos enrutados ....................................................................................... 312
Controladores de eventos de entrada en controles .................................... 315
Eventos iniciados por el usuario .................................................................. 315
Alternativas del modelo de programación .................................................. 316
Quitar controladores de eventos ................................................................. 317
Comandos .................................................................................................... 317
Pasos adicionales ......................................................................................... 318
Definir y ejecutar métodos dinámicos ............................................................. 318
Capítulo 12. Acceso a datos y estructuras de datos ..................................... 323
Colecciones y estructuras de datos .................................................................. 323
Definir colecciones ...................................................................................... 324
Tipos de colección utilizados normalmente ................................................ 326
Crear y manipular colecciones ..................................................................... 329
Seleccionar una clase de colección .............................................................. 330
Enumerar una colección .............................................................................. 331
Colecciones y sincronización (seguridad para subprocesos) ....................... 332
Comparaciones y ordenaciones en colecciones .......................................... 333
Cuándo utilizar colecciones genéricas ......................................................... 334
La clase Array ............................................................................................... 335
Enlace de datos ................................................................................................ 340
Conectar elementos de la interfaz de usuario con datos ............................ 340
Dirección de flujo de datos .......................................................................... 343
Notificación de cambios .............................................................................. 343
Actualización del origen de datos ................................................................ 344
Enlace a colecciones .................................................................................... 346
Validación de datos ..................................................................................... 347
Conversiones de datos ................................................................................. 350
Almacenamiento aislado .................................................................................. 352
Grupos de cuota .......................................................................................... 352
Almacenar y recuperar la configuración de la aplicación mediante el almacenamiento aislado ......................................................................... 358
Cifrar y firmar archivos de almacenamiento aislado ................................... 361
Capítulo 13. Funciones de red y comunicación ............................................ 363
Comunicación HTTP y seguridad con Silverlight ............................................... 363
Funcionalidad de HTTP en Silverlight ........................................................... 363
Escenarios y enfoques recomendados para la comunicación HTTP ........... 365
Opciones para realizar llamadas HTTP ......................................................... 366
Comunicación entre dominios ..................................................................... 371
Especificar el control de HTTP de explorador o cliente .................................... 376
Obtener y establecer cookies ........................................................................... 379
Ejemplo ........................................................................................................ 380
Capítulo 14. Rendimiento y seguridad ......................................................... 385
Rendimiento ..................................................................................................... 385
Sugerencias para mejorar el rendimiento ................................................... 386
Utilizar un trabajo en segundo plano ............................................................... 390
Procedimiento ............................................................................................. 390
Ejemplo ....................................................................................................... 393
Aceleración de hardware en Silverlight ............................................................ 395
Cómo usar la aceleración de hardware ....................................................... 396
Cómo funciona la aceleración de hardware ................................................ 397
Capítulo 15. Animaciones, audio y vídeo ..................................................... 399
Animaciones en Silverlight ............................................................................... 399
Hacer que un objeto UIElement aparezca y desaparezca de la vista ........... 399
Crear una animación DoubleAnimation ....................................................... 400
Crear un objeto Storyboard ......................................................................... 401
Asociar el objeto Storyboard a un evento ................................................... 402
Ejemplo ........................................................................................................ 403
Iniciar, detener, poner en pausa y reanudar una animación ....................... 404
Controlar el momento de inicio de las animaciones .................................... 406
Crear un temporizador ................................................................................ 407
Tener acceso a las animaciones por nombre ............................................... 408
Audio y vídeo ................................................................................................... 412
Objeto MediaElement ................................................................................. 412
Propiedades de MediaElement .................................................................... 412
Controlar la reproducción de contenido multimedia de forma interactiva..... 413
Marcadores de escala de tiempo (puntos de sincronización) ...................... 414
Índice alfabético ......................................................................................... 417