APLICACIONES DE NEGOCIO / CON MICROSOFT SILVERLIGHT 5
RODRIGO DIAZ CONCHA
APLICACIONES DE NEGOCIO / CON MICROSOFT SILVERLIGHT 5 - 1a. Edición - México Alfaomega 2013 - 496 Páginas Ilustracion 17 cm X 23 cm
ISBN: 9786077075554
Editorial: Alfaomega Grupo Editor
Tema: Informatica
Subtema: Programas
Número de páginas: 496
Año de edición: 2012
Medidas: 23.00 cm x 17.00 cm
PREFACIO ......................................................................................................... XV
INTRODUCCIÓN .............................................................................................. XVII
CAPÍTULO 1. FUNDAMENTOS DE SILVERLIGHT .................................................... 1
Introducción a Silverlight ..................................................................................... 1
¿Qué es Silverlight? .......................................................................................... 1
Historia de Silverlight ....................................................................................... 2
Silverlight y HTML ............................................................................................ 4
Requerimientos mínimos ................................................................................. 6
Preparando el ambiente .................................................................................. 7
Herramientas adicionales ............................................................................. 9
Expression Blend para Silverlight 5 ........................................................... 9
Silverlight Toolkit ...................................................................................... 9
Fiddler ..................................................................................................... 10
Reflector ................................................................................................. 10
Silverlight Spy.......................................................................................... 10
Estructura de un proyecto de Silverlight ........................................................ 10
MainPage.xaml ........................................................................................... 13
MainPage.xaml.cs ...................................................................................... 13
App.xaml .................................................................................................... 14
App.xaml.cs ................................................................................................ 14
Modelo de compilación.................................................................................. 14
El Manifiesto de la Aplicación .................................................................... 17
El empaquetado .xap ................................................................................. 19
Cacheo de ensamblados ................................................................................ 22
Archivos de mapeo para cacheo de ensamblados ..................................... 26
Modelo de aplicación ..................................................................................... 27
ÍNDICE
APLICACIONES DE NEGOCIO CON SILVERLIGHT 5
VIII
Pasos de ejecución ..................................................................................... 27
Petición inicial al servidor ....................................................................... 27
Interpretación de la petición .................................................................. 28
Respuesta ............................................................................................... 28
Instanciación del objeto de Silverlight en la página ................................ 28
Lectura del parámetro source ................................................................. 28
Solicitud y copia del archivo .xap ............................................................ 28
Extracción del Manifiesto de la Aplicación ............................................. 29
Consulta del punto de entrada ............................................................... 29
Instanciación del objeto de tipo Application .......................................... 29
Ejecución del constructor ....................................................................... 29
El evento Startup es disparado ............................................................... 29
Clase Application ........................................................................................ 30
Eventos de la aplicación ............................................................................. 31
Evento Startup ........................................................................................ 32
Manejo de eventos ........................................................................................ 39
Manejo de eventos a través de XAML ........................................................ 39
Manejo de eventos usando la sintaxis del lenguaje ................................... 40
Manejo de eventos usando expresiones Lambda ...................................... 41
Clase UIElement ............................................................................................. 43
Eventos enrutados ......................................................................................... 44
Propiedad Handled ..................................................................................... 47
Propiedad OriginalSource ........................................................................... 48
Soporte para botón derecho del ratón (mouse) y múltiples clics .................. 48
Eventos MouseRightButtonDown y MouseRightButtonUp ........................ 49
Propiedad ClickCount ................................................................................. 50
Soporte para arrastrar y soltar ....................................................................... 51
AllowDrop y Drop ....................................................................................... 52
Arrastrar y soltar en Mac OS ...................................................................... 54
Modelos de ejecución y seguridad ................................................................. 56
Niveles de seguridad .................................................................................. 57
Iniciación por parte del usuario .................................................................. 59
Acceso al sistema de archivos ........................................................................ 59
Clase OpenFileDialog .................................................................................. 60
Clase SaveFileDialog ................................................................................... 62
Almacenamiento Aislado ............................................................................... 64
Niveles de visibilidad .................................................................................. 64
Almacenamiento Aislado por aplicación ................................................. 65
Almacenamiento Aislado por dominio.................................................... 65
Espacio de Nombres System.IO.IsolatedStorage ........................................ 65
Guardando y leyendo datos del Almacenamiento Aislado ......................... 66
© Alfaomega-RC Libros
ÍNDICE
IX
Clase IsolatedStorageFile ........................................................................... 66
Resumen ........................................................................................................ 76
CAPÍTULO 2. CREANDO APLICACIONES PARA EL ESCRITORIO ............................ 77
Aplicaciones fuera del navegador ...................................................................... 77
Configuración ................................................................................................. 77
Instalación de aplicaciones fuera del navegador ........................................... 81
Menú Contextual........................................................................................ 81
Método Install.......................................................................................... 83
Proceso de instalación ............................................................................... 83
Archivo metadata ................................................................................... 86
Archivo index.html .................................................................................. 86
Conociendo si la aplicación está ejecutando fuera del navegador ................. 87
Desinstalando la aplicación ............................................................................ 88
Instalación silenciosa ..................................................................................... 89
Modelo de actualización ................................................................................ 90
Método checkanddownloadupdateasync ............................................... 90
Notificaciones ................................................................................................ 93
Clase notificationwindow ........................................................................... 94
Control WebBrowser ...................................................................................... 98
Desplegando contenido ............................................................................. 99
Propiedad Source .................................................................................... 99
Método NavigateToString ..................................................................... 100
Método Navigate .................................................................................. 102
Comunicación entre el control webbrowser y su contenido .................... 102
Método InvokeScript .......................................................................... 102
Evento ScriptNotify ............................................................................... 103
Confianza elevada ............................................................................................ 105
Detectando la Confianza Elevada ................................................................. 105
Configuración e instalación en aplicaciones fuera del navegador ............... 106
Configuración en aplicaciones dentro del navegador .................................. 108
Características de las aplicaciones con Confianza Elevada ........................... 111
Acceso Cross-Domain o Cross-Scheme sin archivo clientaccesspolicy.xml ... 112
Iniciación por parte del usuario más relajada .......................................... 112
Soporte completo del teclado en modo de pantalla completa ................ 112
Acceso ilimitado al sistema de archivos ................................................... 113
Borde de la ventana personalizable ......................................................... 114
Personalizando la ventana .................................................................... 115
Múltiples ventanas ................................................................................... 118
Control WebBrowser dentro del navegador ............................................ 122
Integración con el sistema operativo Windows ....................................... 122
© Alfaomega-RC Libros
APLICACIONES DE NEGOCIO CON SILVERLIGHT 5
X
Clase AutomationFactory ...................................................................... 123
Clase AutomationEvent ........................................................................ 128
P/INVOKE ................................................................................................. 129
Resumen ...................................................................................................... 136
CAPÍTULO 3. XAML ......................................................................................... 137
¿Qué es XAML? ................................................................................................ 137
Sintaxis ......................................................................................................... 139
Elementos y subelementos ...................................................................... 140
Atributos .................................................................................................. 141
Sintaxis de elementos ........................................................................... 141
Objetos de .NET ........................................................................................ 143
Propiedades adjuntas ................................................................................... 144
Espacios de nombres .................................................................................... 146
Mapeo de los espacios de nombres ......................................................... 147
Elemento UserControl .................................................................................. 148
Contenedores ............................................................................................... 150
Canvas ...................................................................................................... 150
El problema de Canvas .......................................................................... 153
StackPanel ................................................................................................ 155
Grid ........................................................................................................... 157
Tamaños de columnas y filas ................................................................ 160
Controles ...................................................................................................... 167
Controles de usuario ................................................................................ 167
Controles de contenido ............................................................................ 167
Controles de lista ...................................................................................... 172
ItemsControl ......................................................................................... 172
ListBox ................................................................................................... 181
ComboBox ............................................................................................. 185
DataGrid ................................................................................................ 186
PivotViewer ........................................................................................... 193
Resumen ...................................................................................................... 204
CAPÍTULO 4. RECURSOS Y ESTILOS ................................................................. 205
Recursos ........................................................................................................... 205
Referenciando recursos ............................................................................... 206
Ámbito de los diccionarios ........................................................................... 207
Creando recursos en Expression Blend ........................................................ 208
Administrando los recursos usando Expression Blend ................................. 209
© Alfaomega-RC Libros
ÍNDICE
XI
Diccionarios de recursos mezclados ............................................................. 210
Utilizando diccionarios de recursos mezclados en otros proyectos ......... 213
Estilos ............................................................................................................... 214
Elemento Setter ........................................................................................... 214
Aplicando estilos .......................................................................................... 215
Propiedad TargetType .................................................................................. 216
Propiedad BasedOn ...................................................................................... 217
Estilos implícitos ........................................................................................... 218
Temas ........................................................................................................... 219
Resumen ...................................................................................................... 222
CAPÍTULO 5. FRAMEWORK DE NAVEGACIÓN .................................................. 223
¿Qué es el Framework de Navegación? ........................................................... 223
Controles de navegación .............................................................................. 223
Frame ....................................................................................................... 224
Page .......................................................................................................... 226
Cargando páginas en el Frame ..................................................................... 227
Contexto de navegación ............................................................................... 233
Mapeo de Uris .............................................................................................. 236
Plantilla de Visual Studio .NET ...................................................................... 238
Resumen ...................................................................................................... 240
CAPÍTULO 6. ENLACE DE DATOS ..................................................................... 241
Enlace de datos ................................................................................................ 241
¿Por qué utilizar el enlace de datos? ........................................................... 241
El modelo de enlace de datos ...................................................................... 243
Extensión .................................................................................. 244
Source ................................................................................................... 245
Path ....................................................................................................... 245
Mode .................................................................................................... 246
Blendability .............................................................................................. 248
Contexto de Datos .................................................................................... 249
Interfaces INotifyPropertyChanged y INotifyCollectionChangedd ........... 254
INotifyPropertyChanged ....................................................................... 254
INotifyCollectionChanged ..................................................................... 259
ObservableCollection ......................................................................... 268
Creando Datos de Ejemplo ....................................................................... 271
Clase DesignerProperties ...................................................................... 271
Enlace entre elementos ........................................................................... 272
© Alfaomega-RC Libros
APLICACIONES DE NEGOCIO CON SILVERLIGHT 5
XII
Contexto de Datos en tiempo de diseño .................................................. 280
Propiedades adicionales de Binding ......................................................... 282
StringFormat ......................................................................................... 282
TargetNullValue .................................................................................... 283
FallbackValue ........................................................................................ 283
Plantillas de datos ........................................................................................ 284
Clase DataTemplate ................................................................................. 284
Plantillas de Datos en Expression Blend ................................................... 287
Plantillas de Datos Implícitas .................................................................... 288
Propiedad DataType ............................................................................. 288
Convertidores ............................................................................................... 292
Interfaz IValueConverter .......................................................................... 292
Usando convertidores .............................................................................. 295
Resumen ...................................................................................................... 296
CAPÍTULO 7. COMANDOS ............................................................................... 297
Comandos ........................................................................................................ 297
¿Qué son los comandos? ............................................................................. 297
Interfaz ICommand ...................................................................................... 298
Método Execute ....................................................................................... 299
Método CanExecute ................................................................................. 299
Evento CanExecuteChanged ..................................................................... 299
Creando comandos ...................................................................................... 299
Parámetros de comandos ........................................................................ 303
Ejecución condicional de comandos ............................................................ 305
Pasando parámetros complejos a los comandos ......................................... 309
Clase DelegateCommand ............................................................................. 312
Invocando comandos desde cualquier elemento ........................................ 313
InvokeCommandAction ............................................................................ 313
Resumen ...................................................................................................... 318
CAPÍTULO 8. VALIDACIÓN DE DATOS .............................................................. 319
Validación de datos .......................................................................................... 319
Estados visuales de validación ..................................................................... 320
Validación a través de excepciones .............................................................. 321
Propiedad ValidatesOnExceptions ........................................................... 322
Validación a través de atributos ................................................................... 324
Clase Validator ......................................................................................... 325
CustomValidation ..................................................................................... 328
Clase ValidationAttribute ......................................................................... 330
© Alfaomega-RC Libros
ÍNDICE
XIII
Validación a través de IDataErrorInfo .......................................................... 332
Propiedad ValidatesOnDataErrors ........................................................... 332
Validación a través de INotifyDataErrorInfo ................................................ 339
Propiedad ValidatesOnNotifyDataErrors .................................................. 340
Creando un servicio web de validación .................................................... 345
Propiedad NotifyOnValidationError ............................................................. 349
Evento BindingValidationError ................................................................. 350
ValidationSummary ...................................................................................... 352
Resumen ...................................................................................................... 355
CAPÍTULO 9. COMUNICACIONES ..................................................................... 357
Introducción ..................................................................................................... 357
HTTP GET ...................................................................................................... 357
Clase WebClient ....................................................................................... 358
DownloadStringAsync ........................................................................... 359
OpenReadAsync .................................................................................... 361
DownloadProgressChanged .................................................................. 362
Clases HttpWebRequest y HttpWebResponse ......................................... 364
HTTP POST .................................................................................................... 366
Clase WebClient ....................................................................................... 366
UploadStringAsync ................................................................................ 366
OpenWriteAsync ................................................................................... 368
Clases HttpWebRequest y HttpWebResponse ......................................... 370
Archivos de política Cross-Domain ............................................................... 376
ClientAccessPolicy.xml ............................................................................. 380
CrossDomain.xml ..................................................................................... 382
Método WebRequest.CreateHttp ............................................................ 386
Método WebRequestCreator.ClientHttp.Create ...................................... 387
Método WebRequest.RegisterPrefix ........................................................ 387
Serialización y deserialización de datos ....................................................... 388
Serialización en XML ................................................................................ 388
DataContractSerializer .......................................................................... 388
XmlSerializer ......................................................................................... 390
Serialización en JSON ............................................................................... 393
DataContractJsonSerializer ................................................................... 393
Consumiendo servicios web ......................................................................... 394
Servicios ASMX ......................................................................................... 395
Archivo de Configuración ServiceReferences.ClientConfig ................... 399
Servicios WCF ........................................................................................... 402
Acceso a Datos ......................................................................................... 409
ADO.NET ............................................................................................... 412
© Alfaomega-RC Libros
APLICACIONES DE NEGOCIO CON SILVERLIGHT 5
XIV
Entity Framework ................................................................................. 421
WCF RIA Services .......................................................................................... 429
Creando un Domain Service ..................................................................... 432
Archivos de metadatos ............................................................................. 435
Invocando un Domain Context ................................................................. 436
Protegiendo los servicios web ...................................................................... 439
Usando ASP.NET Membership ................................................................. 442
Servicios de aplicación de ASP.NET .......................................................... 447
Clase AuthenticationService ................................................................. 447
Usando el servicio de autenticación desde Silverlight .......................... 450
Resumen ...................................................................................................... 454
CAPÍTULO 10. EL PATRÓN DE DISEÑO MVVM ................................................. 455
El patrón de diseño MVVM .............................................................................. 455
¿Para qué usar MVVM? ................................................................................ 456
Separación de preocupaciones ................................................................ 457
Reutilización de código ............................................................................. 457
Pruebas Unitarias ..................................................................................... 457
Flexibilidad en el mantenimiento ............................................................. 458
Mejor flujo de trabajo entre desarrolladores y diseñadores .................... 458
Implementación tradicional ......................................................................... 458
Model ....................................................................................................... 461
View ......................................................................................................... 462
ViewModel ............................................................................................... 469
Resumen ...................................................................................................... 470
ÍNDICE ANALÍTICO .......................................................................................... 471
Silverlight 5 es una moderna, robusta y sofisticada plataforma para la creación de aplicaciones empresariales y aquellas enfocadas principalmente a resolver temas de negocio. Esta obra lleva al lector de la mano para conocer con detalle la plataforma de desarrollo Silverlight 5. Escrito de una manera clara y concisa, es una guía imprescindible para desarrolladores principiantes y expertos que deseen adentrarse en el mundo de la programación con esta fascinante tecnología.
9786077075554
PROGRAMACION
QA76.575 / D485
APLICACIONES DE NEGOCIO / CON MICROSOFT SILVERLIGHT 5 - 1a. Edición - México Alfaomega 2013 - 496 Páginas Ilustracion 17 cm X 23 cm
ISBN: 9786077075554
Editorial: Alfaomega Grupo Editor
Tema: Informatica
Subtema: Programas
Número de páginas: 496
Año de edición: 2012
Medidas: 23.00 cm x 17.00 cm
PREFACIO ......................................................................................................... XV
INTRODUCCIÓN .............................................................................................. XVII
CAPÍTULO 1. FUNDAMENTOS DE SILVERLIGHT .................................................... 1
Introducción a Silverlight ..................................................................................... 1
¿Qué es Silverlight? .......................................................................................... 1
Historia de Silverlight ....................................................................................... 2
Silverlight y HTML ............................................................................................ 4
Requerimientos mínimos ................................................................................. 6
Preparando el ambiente .................................................................................. 7
Herramientas adicionales ............................................................................. 9
Expression Blend para Silverlight 5 ........................................................... 9
Silverlight Toolkit ...................................................................................... 9
Fiddler ..................................................................................................... 10
Reflector ................................................................................................. 10
Silverlight Spy.......................................................................................... 10
Estructura de un proyecto de Silverlight ........................................................ 10
MainPage.xaml ........................................................................................... 13
MainPage.xaml.cs ...................................................................................... 13
App.xaml .................................................................................................... 14
App.xaml.cs ................................................................................................ 14
Modelo de compilación.................................................................................. 14
El Manifiesto de la Aplicación .................................................................... 17
El empaquetado .xap ................................................................................. 19
Cacheo de ensamblados ................................................................................ 22
Archivos de mapeo para cacheo de ensamblados ..................................... 26
Modelo de aplicación ..................................................................................... 27
ÍNDICE
APLICACIONES DE NEGOCIO CON SILVERLIGHT 5
VIII
Pasos de ejecución ..................................................................................... 27
Petición inicial al servidor ....................................................................... 27
Interpretación de la petición .................................................................. 28
Respuesta ............................................................................................... 28
Instanciación del objeto de Silverlight en la página ................................ 28
Lectura del parámetro source ................................................................. 28
Solicitud y copia del archivo .xap ............................................................ 28
Extracción del Manifiesto de la Aplicación ............................................. 29
Consulta del punto de entrada ............................................................... 29
Instanciación del objeto de tipo Application .......................................... 29
Ejecución del constructor ....................................................................... 29
El evento Startup es disparado ............................................................... 29
Clase Application ........................................................................................ 30
Eventos de la aplicación ............................................................................. 31
Evento Startup ........................................................................................ 32
Manejo de eventos ........................................................................................ 39
Manejo de eventos a través de XAML ........................................................ 39
Manejo de eventos usando la sintaxis del lenguaje ................................... 40
Manejo de eventos usando expresiones Lambda ...................................... 41
Clase UIElement ............................................................................................. 43
Eventos enrutados ......................................................................................... 44
Propiedad Handled ..................................................................................... 47
Propiedad OriginalSource ........................................................................... 48
Soporte para botón derecho del ratón (mouse) y múltiples clics .................. 48
Eventos MouseRightButtonDown y MouseRightButtonUp ........................ 49
Propiedad ClickCount ................................................................................. 50
Soporte para arrastrar y soltar ....................................................................... 51
AllowDrop y Drop ....................................................................................... 52
Arrastrar y soltar en Mac OS ...................................................................... 54
Modelos de ejecución y seguridad ................................................................. 56
Niveles de seguridad .................................................................................. 57
Iniciación por parte del usuario .................................................................. 59
Acceso al sistema de archivos ........................................................................ 59
Clase OpenFileDialog .................................................................................. 60
Clase SaveFileDialog ................................................................................... 62
Almacenamiento Aislado ............................................................................... 64
Niveles de visibilidad .................................................................................. 64
Almacenamiento Aislado por aplicación ................................................. 65
Almacenamiento Aislado por dominio.................................................... 65
Espacio de Nombres System.IO.IsolatedStorage ........................................ 65
Guardando y leyendo datos del Almacenamiento Aislado ......................... 66
© Alfaomega-RC Libros
ÍNDICE
IX
Clase IsolatedStorageFile ........................................................................... 66
Resumen ........................................................................................................ 76
CAPÍTULO 2. CREANDO APLICACIONES PARA EL ESCRITORIO ............................ 77
Aplicaciones fuera del navegador ...................................................................... 77
Configuración ................................................................................................. 77
Instalación de aplicaciones fuera del navegador ........................................... 81
Menú Contextual........................................................................................ 81
Método Install.......................................................................................... 83
Proceso de instalación ............................................................................... 83
Archivo metadata ................................................................................... 86
Archivo index.html .................................................................................. 86
Conociendo si la aplicación está ejecutando fuera del navegador ................. 87
Desinstalando la aplicación ............................................................................ 88
Instalación silenciosa ..................................................................................... 89
Modelo de actualización ................................................................................ 90
Método checkanddownloadupdateasync ............................................... 90
Notificaciones ................................................................................................ 93
Clase notificationwindow ........................................................................... 94
Control WebBrowser ...................................................................................... 98
Desplegando contenido ............................................................................. 99
Propiedad Source .................................................................................... 99
Método NavigateToString ..................................................................... 100
Método Navigate .................................................................................. 102
Comunicación entre el control webbrowser y su contenido .................... 102
Método InvokeScript .......................................................................... 102
Evento ScriptNotify ............................................................................... 103
Confianza elevada ............................................................................................ 105
Detectando la Confianza Elevada ................................................................. 105
Configuración e instalación en aplicaciones fuera del navegador ............... 106
Configuración en aplicaciones dentro del navegador .................................. 108
Características de las aplicaciones con Confianza Elevada ........................... 111
Acceso Cross-Domain o Cross-Scheme sin archivo clientaccesspolicy.xml ... 112
Iniciación por parte del usuario más relajada .......................................... 112
Soporte completo del teclado en modo de pantalla completa ................ 112
Acceso ilimitado al sistema de archivos ................................................... 113
Borde de la ventana personalizable ......................................................... 114
Personalizando la ventana .................................................................... 115
Múltiples ventanas ................................................................................... 118
Control WebBrowser dentro del navegador ............................................ 122
Integración con el sistema operativo Windows ....................................... 122
© Alfaomega-RC Libros
APLICACIONES DE NEGOCIO CON SILVERLIGHT 5
X
Clase AutomationFactory ...................................................................... 123
Clase AutomationEvent ........................................................................ 128
P/INVOKE ................................................................................................. 129
Resumen ...................................................................................................... 136
CAPÍTULO 3. XAML ......................................................................................... 137
¿Qué es XAML? ................................................................................................ 137
Sintaxis ......................................................................................................... 139
Elementos y subelementos ...................................................................... 140
Atributos .................................................................................................. 141
Sintaxis de elementos ........................................................................... 141
Objetos de .NET ........................................................................................ 143
Propiedades adjuntas ................................................................................... 144
Espacios de nombres .................................................................................... 146
Mapeo de los espacios de nombres ......................................................... 147
Elemento UserControl .................................................................................. 148
Contenedores ............................................................................................... 150
Canvas ...................................................................................................... 150
El problema de Canvas .......................................................................... 153
StackPanel ................................................................................................ 155
Grid ........................................................................................................... 157
Tamaños de columnas y filas ................................................................ 160
Controles ...................................................................................................... 167
Controles de usuario ................................................................................ 167
Controles de contenido ............................................................................ 167
Controles de lista ...................................................................................... 172
ItemsControl ......................................................................................... 172
ListBox ................................................................................................... 181
ComboBox ............................................................................................. 185
DataGrid ................................................................................................ 186
PivotViewer ........................................................................................... 193
Resumen ...................................................................................................... 204
CAPÍTULO 4. RECURSOS Y ESTILOS ................................................................. 205
Recursos ........................................................................................................... 205
Referenciando recursos ............................................................................... 206
Ámbito de los diccionarios ........................................................................... 207
Creando recursos en Expression Blend ........................................................ 208
Administrando los recursos usando Expression Blend ................................. 209
© Alfaomega-RC Libros
ÍNDICE
XI
Diccionarios de recursos mezclados ............................................................. 210
Utilizando diccionarios de recursos mezclados en otros proyectos ......... 213
Estilos ............................................................................................................... 214
Elemento Setter ........................................................................................... 214
Aplicando estilos .......................................................................................... 215
Propiedad TargetType .................................................................................. 216
Propiedad BasedOn ...................................................................................... 217
Estilos implícitos ........................................................................................... 218
Temas ........................................................................................................... 219
Resumen ...................................................................................................... 222
CAPÍTULO 5. FRAMEWORK DE NAVEGACIÓN .................................................. 223
¿Qué es el Framework de Navegación? ........................................................... 223
Controles de navegación .............................................................................. 223
Frame ....................................................................................................... 224
Page .......................................................................................................... 226
Cargando páginas en el Frame ..................................................................... 227
Contexto de navegación ............................................................................... 233
Mapeo de Uris .............................................................................................. 236
Plantilla de Visual Studio .NET ...................................................................... 238
Resumen ...................................................................................................... 240
CAPÍTULO 6. ENLACE DE DATOS ..................................................................... 241
Enlace de datos ................................................................................................ 241
¿Por qué utilizar el enlace de datos? ........................................................... 241
El modelo de enlace de datos ...................................................................... 243
Extensión .................................................................................. 244
Source ................................................................................................... 245
Path ....................................................................................................... 245
Mode .................................................................................................... 246
Blendability .............................................................................................. 248
Contexto de Datos .................................................................................... 249
Interfaces INotifyPropertyChanged y INotifyCollectionChangedd ........... 254
INotifyPropertyChanged ....................................................................... 254
INotifyCollectionChanged ..................................................................... 259
ObservableCollection
Creando Datos de Ejemplo ....................................................................... 271
Clase DesignerProperties ...................................................................... 271
Enlace entre elementos ........................................................................... 272
© Alfaomega-RC Libros
APLICACIONES DE NEGOCIO CON SILVERLIGHT 5
XII
Contexto de Datos en tiempo de diseño .................................................. 280
Propiedades adicionales de Binding ......................................................... 282
StringFormat ......................................................................................... 282
TargetNullValue .................................................................................... 283
FallbackValue ........................................................................................ 283
Plantillas de datos ........................................................................................ 284
Clase DataTemplate ................................................................................. 284
Plantillas de Datos en Expression Blend ................................................... 287
Plantillas de Datos Implícitas .................................................................... 288
Propiedad DataType ............................................................................. 288
Convertidores ............................................................................................... 292
Interfaz IValueConverter .......................................................................... 292
Usando convertidores .............................................................................. 295
Resumen ...................................................................................................... 296
CAPÍTULO 7. COMANDOS ............................................................................... 297
Comandos ........................................................................................................ 297
¿Qué son los comandos? ............................................................................. 297
Interfaz ICommand ...................................................................................... 298
Método Execute ....................................................................................... 299
Método CanExecute ................................................................................. 299
Evento CanExecuteChanged ..................................................................... 299
Creando comandos ...................................................................................... 299
Parámetros de comandos ........................................................................ 303
Ejecución condicional de comandos ............................................................ 305
Pasando parámetros complejos a los comandos ......................................... 309
Clase DelegateCommand ............................................................................. 312
Invocando comandos desde cualquier elemento ........................................ 313
InvokeCommandAction ............................................................................ 313
Resumen ...................................................................................................... 318
CAPÍTULO 8. VALIDACIÓN DE DATOS .............................................................. 319
Validación de datos .......................................................................................... 319
Estados visuales de validación ..................................................................... 320
Validación a través de excepciones .............................................................. 321
Propiedad ValidatesOnExceptions ........................................................... 322
Validación a través de atributos ................................................................... 324
Clase Validator ......................................................................................... 325
CustomValidation ..................................................................................... 328
Clase ValidationAttribute ......................................................................... 330
© Alfaomega-RC Libros
ÍNDICE
XIII
Validación a través de IDataErrorInfo .......................................................... 332
Propiedad ValidatesOnDataErrors ........................................................... 332
Validación a través de INotifyDataErrorInfo ................................................ 339
Propiedad ValidatesOnNotifyDataErrors .................................................. 340
Creando un servicio web de validación .................................................... 345
Propiedad NotifyOnValidationError ............................................................. 349
Evento BindingValidationError ................................................................. 350
ValidationSummary ...................................................................................... 352
Resumen ...................................................................................................... 355
CAPÍTULO 9. COMUNICACIONES ..................................................................... 357
Introducción ..................................................................................................... 357
HTTP GET ...................................................................................................... 357
Clase WebClient ....................................................................................... 358
DownloadStringAsync ........................................................................... 359
OpenReadAsync .................................................................................... 361
DownloadProgressChanged .................................................................. 362
Clases HttpWebRequest y HttpWebResponse ......................................... 364
HTTP POST .................................................................................................... 366
Clase WebClient ....................................................................................... 366
UploadStringAsync ................................................................................ 366
OpenWriteAsync ................................................................................... 368
Clases HttpWebRequest y HttpWebResponse ......................................... 370
Archivos de política Cross-Domain ............................................................... 376
ClientAccessPolicy.xml ............................................................................. 380
CrossDomain.xml ..................................................................................... 382
Método WebRequest.CreateHttp ............................................................ 386
Método WebRequestCreator.ClientHttp.Create ...................................... 387
Método WebRequest.RegisterPrefix ........................................................ 387
Serialización y deserialización de datos ....................................................... 388
Serialización en XML ................................................................................ 388
DataContractSerializer .......................................................................... 388
XmlSerializer ......................................................................................... 390
Serialización en JSON ............................................................................... 393
DataContractJsonSerializer ................................................................... 393
Consumiendo servicios web ......................................................................... 394
Servicios ASMX ......................................................................................... 395
Archivo de Configuración ServiceReferences.ClientConfig ................... 399
Servicios WCF ........................................................................................... 402
Acceso a Datos ......................................................................................... 409
ADO.NET ............................................................................................... 412
© Alfaomega-RC Libros
APLICACIONES DE NEGOCIO CON SILVERLIGHT 5
XIV
Entity Framework ................................................................................. 421
WCF RIA Services .......................................................................................... 429
Creando un Domain Service ..................................................................... 432
Archivos de metadatos ............................................................................. 435
Invocando un Domain Context ................................................................. 436
Protegiendo los servicios web ...................................................................... 439
Usando ASP.NET Membership ................................................................. 442
Servicios de aplicación de ASP.NET .......................................................... 447
Clase AuthenticationService ................................................................. 447
Usando el servicio de autenticación desde Silverlight .......................... 450
Resumen ...................................................................................................... 454
CAPÍTULO 10. EL PATRÓN DE DISEÑO MVVM ................................................. 455
El patrón de diseño MVVM .............................................................................. 455
¿Para qué usar MVVM? ................................................................................ 456
Separación de preocupaciones ................................................................ 457
Reutilización de código ............................................................................. 457
Pruebas Unitarias ..................................................................................... 457
Flexibilidad en el mantenimiento ............................................................. 458
Mejor flujo de trabajo entre desarrolladores y diseñadores .................... 458
Implementación tradicional ......................................................................... 458
Model ....................................................................................................... 461
View ......................................................................................................... 462
ViewModel ............................................................................................... 469
Resumen ...................................................................................................... 470
ÍNDICE ANALÍTICO .......................................................................................... 471
Silverlight 5 es una moderna, robusta y sofisticada plataforma para la creación de aplicaciones empresariales y aquellas enfocadas principalmente a resolver temas de negocio. Esta obra lleva al lector de la mano para conocer con detalle la plataforma de desarrollo Silverlight 5. Escrito de una manera clara y concisa, es una guía imprescindible para desarrolladores principiantes y expertos que deseen adentrarse en el mundo de la programación con esta fascinante tecnología.
9786077075554
PROGRAMACION
QA76.575 / D485


















