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.
ISBN: 9786077075554
Subjects--Topical Terms: PROGRAMACION
LC Class. No.: QA76.575 / D485