enciclopedia de microsoft visual c 2005

784

Click here to load reader

Upload: fausto-ochoa

Post on 12-Jul-2016

299 views

Category:

Documents


112 download

DESCRIPTION

Enciclopedia de Microsoft Visual C 2005.pdf

TRANSCRIPT

  • Enciclopedia de Microsoft Visual C#TM

    Feo. Javier Ceballos Sierra Profesor titular de la

    Escuela Politcnica Superior Universidad de Alcal

    Alfaomega ~~ Ra-Ma

  • Enciclopedia de Microsoft Visual C# Feo. Javier Ceballos Sierra

    ISBN 84-7897-707-4, edicin original publicada por RA-MA Editorial, MADRID, Espaa. Derechos reservados RA-MA Editorial

    MARCAS COMERCIALES: RA-MA ha intentado a lo largo de este libro distinguir las marcas registradas de los trminos descriptivos, siguiendo el estilo de maysculas que utiliza el fabricante, sin intencin de infringir la marca y slo en beneficio del propietario de la misma.

    Primera edicin: Alfaomega Grupo Editor, Mxico, julio 2006

    2006ALFAOMEGA GRUPO EDITOR, S.A. de C.V. Pitgoras 1139, Col. Del Valle, 03100 Mxico, D.F.

    Miembro de la Cmara Nacional de la Industria Editorial Mexicana Registro No. 23 17

    Internet: http://www.alfaomega.com.mx E-mail : [email protected]

    ISBN 970-15-1217-0

    Derechos reservados. Esta obra es propiedad intelectual de su autor y los derechos de publicacin en lengua espaola han sido legalmente transferidos al editor. Prohibida su reproduccin parcial o total por cualquier medio sin permiso por escrito del propietario de los derechos del copyright.

    NOTA IMPORTANTE La informacin contenida en esta obra tiene un fin exclusivamente didctico y, por lo tanto, no est previsto su aprovechamiento a nivel profesional o industrial. Las indicaciones tcnicas y programas incluidos, han sido elaborados con gran cuidado por el autor y reproducidos bajo estrictas normas de control. ALFA OMEGA GRUPO EDITOR, S.A. de C.V. no ser jurdicamente respon-sable por: errores u omisiones; daos y perjuicios que se pudieran atribuir al uso de la informacin comprendida en este libro y en el CD-ROM adjunto, ni por la utilizacin indebida que pudiera drsele.

    Edicin autorizada para venta en Mxico y todo el continente americano

    Impreso en Mxico- Printed in Mxico

  • La vida no es ningn pasillo recto y fcil que recorremos libres y sin obstculos,

    sino un laberinto de pasadizos, en el que tenemos que buscar nuestro camino,

    perdidos y corifusos, detenidos, de vez en cuando, por un callejn sin salida.

    Pero, si tenemos fe, siempre se abre una puerta ante nosotros;

    quiz no sea la que imaginamos, pero s ser, finalmente,

    la que demuestre ser buena para nosotros. A. J. CRONIN

    Dedico esta obra a Mara del Carmen, mi esposa, y a mis hijos Francisco y Javier.

  • RESUMEN DEL CONTENIDO PARTE l. PROGRAMACIN BSICA................................ 1 CAPTULO l. INTRODUCCIN A MICROSOFT .NET ........... ..... ........ ........... .. 3

    CAPTULO 2. MI PRIMERA APLICACIN............................. ...... .......... .... .... ... 15

    CAPTULO 3. RESUMEN DEL LENGUAJE............. ..... .... .. ....... .......... ............ ... 37

    CAPTULO 4. PROGRAMACIN ORIENTADA A OBJETOS ... .. ... ........ ..... .. ... 81

    CAPTULO 5. FLUJOS ......... ........... ......... ........ ................... ...... ... ..... ... .... .... ........ . 127

    PARTE 2. INTERFACES GRFICAS ................................... 179 CAPTULO 6. APLICACIONES CON INTERFAZ GRFICA....................... ..... 181

    CAPTULO 7. MENS Y BARRAS DE HERRAMIENTAS ..... ... ........ .... ...... ...... 233

    CAPTULO 8. CAJAS DE DILOGO... .......... .... ... ..... ......... .... ................... .......... 285

    CAPTULO 9. TABLAS Y RBOLES ............. ........ ........ ..... ........ ...... .. ... ..... .... .. .. 339

    CAPTULO 10. DIBUJAR Y PINTAR ..... .... ... ...... ....... .......... ........... ..................... 387

    CAPTULO 11. INTERFAZ PARA MLTIPLES DOCUMENTOS . .. .. .. .. .. .. .. .. ... 43 5

    CAPTULO 12. CONSTRUCCIN DE CONTROLES .. ......... .... ............... : ....... ... 463

    CAPTULO 13. PROGRAMACIN CON HILOS ... ...... .......... ......... ......... ...... ... .. 483

  • VIII ENCICLOPEDIA DE MICROSOFT VISUAL C#

    PARTE 3. ACCESO A DATOS~ 511 CAPTULO 14. ACCESO A UNA BASE DE DATOS ........ ........ ....... ........ ........... 513

    CAPTULO 15. INTERACCIN CON Office .......... .. ..... .. ..... ....... ... ........ .......... ... 593

    PARTE 4. APLICACIONES PARA INTERNET .................. 643

    CAPTULO 16. PGINAS WEB .......... .. ...... .. .. ....... ......... ............ .......... ........ ....... 645

    CAPTULO 17. FORMULARIOS WEB .... ...... ..... ... ....... ...... .... .... ......... ...... .......... 701

    CAPTULO 18. SERVICIOS WEB ........ ........ ...... ........... ......... ......... ....... .. ........ .... 755

    CAPTULO 19. SEGURIDAD DE APLICACIONES ASP.NET ......... .... .... .......... 815

    CAPTULO 20. MVILES ............ ........ ........... ....... ..... ......... ............... ........ ..... .. ... 875 ,

    PARTE 5. APENDICES ........................................................... 893

    A. AYUDA .. ..... .... ........ .... .... ......... ........ ...... ... .. ..... ...... .... .... .. ..... ...... ..... .... .... ......... . 895

    B. ENTORNOS DE DESARROLLO ..... ...... .... ... ........ ...... ......... .... .... ... ........ ...... ... . 897

    C. CDIGOS DE CARACTERES .......... ..................... ... ................... ................... .. 909

    D . . NET PARA LINUX ........ ..... ... .... ....... ..... ... ..... ... ..... ... ....... ............. ....... .... .. ....... 915

  • CONTENIDO PRLOGO ......................................................................................................... XXVII

    PARTE l. PROGRAMACIN BSICA................................ 1 CAPTULO l. INTRODUCCIN A MICROSOFT .NET ................................ 3

    PLATAFORMA .NET ..... .......... ......... ......... ................. ........ .... ................... ... ... 5 .NET Framework .... ....... ......... ...... ....... ................. ............. .... ........ ................... .. 6

    Especificacin comn para todos los lenguajes..... ....... ...... ............ ...... ... ...... 6 ASP.NET. .... ..... .... .... ....... ........ ....... ............. ...... ......... ...... ...... ...... ... .............. 7

    Integrar un servicio Web en una aplicacin..... ..... ........ ...... ... ........ ........ .. 7 Utilizacin de un servicio Web ..... ............... ............. ........... ... ................. 8

    Formularios Windows ..... ...... .... ......... .. .... ......... ...................................... ...... 8 ADO.NET ... ............ ...... .......................... ... ...... ............. .... ...... ... .... ... ... ......... 8 Biblioteca de clases ... .. .. ..... ... . .. ....... .. ... . .. .. ... .. .. .. .. .. ... ..... ... .. ..... .... .. .... .. ... .... .. 9 Entorno de ejecucin comn de los lenguajes .... ......... .... .... ... ..... .......... ........ 9 .NET Framework y COM+........ ... .... ......... ............... .......... ..... ...... ........... .... . 12 Visual Studio ..... .. .. .... ..... .. .... .... ..... .. .. .. .. ... .. .. .. ... . ....... .. ....... . ..... .. .... .... .. .... ... .. 13

    CAPTULO 2. MI PRIMERA APLICACIN................................................... 15

    MICROSOFT VISUAL STUDIO ... ................ ....... .. ..... .... .... .... .. ... .... ........ ..... ... 15 Crear un nuevo proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 El formulario .... ... .... ........ .. .... ..... .. .. ...... ..... .... ........... .... ................ ........ .... .. .. . 20 Dibujar los controles ...... ... ............. .... ......... ........ ......... ............. .... .... . :.. ....... .. 21 Borrar un control. ..... ... ....... ... ...... ............. ............. ................. .......... ....... ...... 25 Propiedades de los objetos... ....... ........ ...... ... ....... ...... ...... ........... .... ........ ..... ... 26

  • X ENCICLOPEDIA DE MICROSOFT VISUAL C#

    Bloquear la posicin de todos los controles................................................... 28 Icono de la aplicacin ......................... .......... :...................................... .......... 28 Escribir los controladores de eventos ... ................... .... ............ .......... .. .......... 28 Guardar la aplicacin.............. .............................. .. ...... ........ ... .... ........ .......... 30 Verificar la aplicacin . .. ... .. . . .. .. . . .. .. .. .. . ... .. .. . .. .. .. . .. . . .. .. . . . . . .. .. . . . . . . . . .. . . . . . . . . . . . . . . . . 31 Propiedades del proyecto...... ...... ...... .... ......................................................... 33 Crear soluciones de varios proyectos ................................................... ......... 33 Opciones del EDI .. ...... .... ........ ...................................................................... 34 Personalizar el EDI.......... ........ ................. .................... ...... ........................... 35

    CAPTULO 3. RESUMEN DEL LENGUAJE.................................................... 37

    CARACTERES DE Visual C# .......................................................................... . COMENTARIOS ............................................................... .... .... ........ ........ ....... . TIPOS ...................................... .................... ................... ..................... .............. .

    3~ 37 38

    Tipos enumerados......................................... ........................... ........ .............. 39 CONVERSIN ENTRE TIPOS PRIMITIVOS................................................. 39 LITERALES................................................ ................. ...................................... 40 IDENTIFICADORES............................................... ....... ............. .. .... ........ ........ 41 PALABRAS CLAVE ............................ :.................. .......................................... 41 DECLARACIN DE CONSTANTES SIMBLICAS ....... .............. ... ..... ........ 42 DECLARACIN DE VARIABLES........... ....... .................. .............................. 42 OPERADORES.............................................. .................................................... 43

    Operadores aritmticos ........................................ ....... ....... ..... ......... ... ..... .... . . Operadores de relacin ..... ...... .... ................................ ....... ... .. .... ............. .... . . Operadores lgicos .............................................................. ........ ........ .... ... .. . Operadores unitarios .................................... ....................... .......... ...... ......... . . Operadores a nivel de bits ................................ .................. .... ... ......... ... ...... . . Operadores de asignacin ... .............................. ........ .... ..... ........... ........ ... .... . . Operador condicional .... ....................................... .... ..... , ... .................. .... ..... .

    PRIORIDAD Y ORDEN DE EVALUACIN ....... ......... ..... .... ... ..... ...... ... .... .... . SENTENCIAS ...... .... ............. ..... ........ ............................ .. ..... .................. .......... . MTODOS ......................................................................................... ............... .

    Definicin dt

  • CONTENIDO XI

    Sentencia if .... ... ..................................... .. ........ ............ ................................... 56 Sentencia switch............................................................................................ 57 Sentencia while. ..... ....... ..... .. . ......... .. ..... .. .. ... ............... ............... ... ........... .. .... 59 Sentencia do ... while. ... .. ............................................................................... 60 Sentencia for ............. .. ..... ..... .... ..... .............................. .. :. ............... ...... ......... 60 Sentencia foreach... .... ................. ....... ............................................................ 62

    SENTENCIA break ....................... ........ ...... ....................................................... 62 SENTENCIA continue .......... ............................................................................. 62 SENTENCIAS try ... catch ........... ...................................................................... 62 MATRICES.. ............... ........ .... ........................................................................... 65

    Declarar una matriz . . . . . . . . .. . . . .. . . . . . . . . . .. . . . .. .. .. . .. .. ......... .......... .. ..... ..... .. .... ... .. .. ... 65 Crear una matriz . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . .. . . .. ... ......... .. ..... ..... .... ..... ..... .. .. .. ..... ... 65 Iniciar una matriz..... ........... .... ..... ... ............................................................... 66 Acceder a los elementos de una matriz ........................................ :. ................ 6.7 Matrices multidimensionales . . . . . . . . . . . . . . . . . . .. .. . .. .. . .. .... ..... .. ....... .......... .... .. ..... .... 68

    LA CLASE Arra y... ..... ... ...... ...... .... .... ........... ............. ............ .. .......................... 68 LA CLASE String .... .. .... ...... ... ...... ... ... .... ........................................................... 68

    Matrices de objetos String o StringBuilder.................................................... 69 ESTRUCTURA DE UN PROGRAMA Visual C#............................................. 70

    Clases ..... .......... ....... ..... .... ........................... .................................................. 71 mbito.. ..... ........ ..... ....... ... .... ..... .................................................................... 72 Espacios de nombres .. .. .... .......... ............. .. .................................................... 73 Directriz using ...... .... ............ .... .... ....... .... ...................................................... 74

    EJERCICIOS RESUELTOS... ........... ....... ..... .................................................... 75 EJERCICIOS PROPUESTOS......................................................................... ... 79

    CAPTULO 4. PROGRAMACIN ORIENTADA A OBJETOS..................... 81 PENSAR EN OBJETOS ... ................. .... ........ ..................... ...... ......................... 82

    Clases y objetos.. ............ ........ ............................ ........................................... 82 Mensajes y mtodos ..... ....... ... .... .... ........ ....................................................... 83

    DISEO DE UNA CLASE DE OBJETOS.... .... ..... ........................................... 84 Atributos... ...... ........ ............ ...... ..... ...... ... .... ................................................... 85 Propiedades--y mtodos .............. ... ........ ... .... .................................................. 86 Trabajando con objetos.. ..... ......................................................................... .. 90 Utilizando slo mtodos..... ..... ............................................. ......................... 92 Constructores...... ...... ......... ............................................................................ 94 Destructor. .... ................ .... ......... .......... ........... ............................................... 96 Mtodos sobrecargados . .... .. .... ... ..... .. ............................................................ 97 Referencia this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . .. . .. .. .. .. .. .. . .. ... .. ....... .. ..... .. .. ... .. .. .. ... 98

    HERENCIA.......... .... .... .... ........ ... ......... ......... .................... .............. ................... 98 Aadir nuevos atributos y mtodos a la subclase ........... ............................... 1 01)

  • XII ENCICLOPEDIA DE MICROSOFT VISUAL C#

    Redefinir mtodos en la subclase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 O 1 Qu miembros hereda la subclase ...... .......... :.. ........ ............. ....... ........ ........... 102 Invocar a mtodos de la superclase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 03 Resumen de la herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . . . . . . 1 04

    MIEMBRO DE UN OBJETO O DE UNA CLASE........................ ... ..... ......... .. 106 JERARQUA DE CLASES................................................................................ 108 REFERENCIAS A OBJETOS DE UNA SUBCLASE .. .......... ....... ............. ...... 109

    Conversiones implcitas.... ........ ....... .......... ..... ... ..... .... ......... ..... ............ .. ..... .. 11 O POLIMORFISMO............................. ...... .... ........ ......... ........ ........ .. ... .... ......... .... 113 INTERFACES..... ............... .............. .. ....... .. ... .... ... .... .... ....... ... .. ... ......... .... .... ... .. 114 COLECCIONES ........................................... ........... ............. .............................. 115

    Crear una coleccin...................... ............. ....... ...... ........... ........... ...... ........... 115 Colecciones predefinidas............................ ............... ............... ................. .... 117 Tipos genricos........ .... ......... ........ ............. ..... .......... ..................................... 117

    EJERCICIOS RESUELTOS .. .... ....... ... ... ... .. ........ .............................. .... ........... . 118 EJERCICIOS PROPUESTOS............................................................ ........ ........ 125

    CAPTULO 5. FLUJOS ........................................................................................ 127

    ABRIENDO FICHEROS PARA ACCESO SECUENCIAL ...... .. ... ..... ............. 128 Flujos de bytes.......................... .......... ... ......... ........ ......... .... ......... ........ ....... .. 129

    FileStream ...... .... ............. ... .............. .... ..... .... .... ...... ... .... ..... .... ........ ......... 129 Flujos de caracteres ...... ....... .. .... .... ........ ...... .......... ... .......... .. .... ....... .... ...... .... 134

    StreamWriter ........... ............ ....... .................................... ........................ .. 134 StreamReader .... ........ ........................................... ...... .... ..... ......... .. .......... 136

    Clases File, Directory y Path ... ........... .... ......... ........ ..... .... ........... ...... .... .... ... . 138 Flujos de datos de tipos primitivos. ......... .. .. .......... ... ..... ... .... ... .... ....... ....... .. .. 140

    BinaryWriter ................ ............. ........ ... .. ...... ........ ..... .... ....... .......... .... ...... 141 BinaryReader ... ........ ... .. .... .. ... ... ........ .... ..... ............ .............. ... ......... .... ..... 142

    Un ejemplo de acceso secuencial... ....... ....... ... ..... ...... ......... ....... ........ ....... .... 143 Escribir en un fichero .. ...... .. ....... .. ...... ..... ... ....... ..... .... ......... .. .. .. ... ..... ..... .. 144 Leer de un fichero ... .. .. .. ........ .. ....... .... ...... . ........ ....... .. ...... .. ... .... .. .......... ... 14 7

    ABRIENDO FICHEROS PARA ACCESO ALEATORIO .... ... ... ... .............. .... 149 Propiedades y mtodos para acceso aleatorio... ............ ........ ....... ........ .... ...... 150

    Position..... ....... ....... .... .. ........ ..... .......... ... ... ....... .... ........... .... .... ................. 150 Length .... ......... ........ .................... ..... ......... ... .......... .... .......... .. ..... ..... ... ..... 150 Seek........ ......... .... ...... ........ ........ ............ .... ............... ... ....... ......... ...... ....... 150

    La clase CPersona....... ..... ........ ....... ... ...... .. ........ .... . ..... .. .. .. .. .. .. .................. .... 152 La clase CLista Tfnos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 154

    Constructor CListaTfnos .................... .... .... .... .. .... ....... .... .... ..... .............. ... 154 Escribir un registro en el fichero .......................................... ................. ... 157 Aadir un registro al final del fichero ................. ... .......... .... ..... ........ ....... 158

  • CONTENlDO XIII

    Leer un registro del fichero ..... ........ ...... ... ........ ..... .... ........... ....... .. .......... . 158 Eliminar un registro del fichero ........... ... : ............ ...... .. .. ..... ......... .. ........ ... 159 Hay registros marcados para eliminar?................. .... .... ..... .... ............... .. 160 Buscar un registro en el fichero ....... ........ ........... ........ ..... ... .... ..... ............. 160

    Un ejemplo de acceso aleatorio a un fichero .. ........ ...... . :......... ......... ........ ..... 161 Modificar un registro .................................... ...... ... ..... ..... ......................... 163 Actualizar el fichero. .............. ....... ............... ..... .. ......... .. .... ................. ..... 165

    IMPRIMIR UN DOCUMENTO ............ .............. ........ ......... ........ ................. .... 166 GUARDAR UN OBJETO................. ........ .. ...... .............. ..... .. .. .. ... .......... ......... .. 170 EJERCICIOS RESUELTOS ... ....... ......... .... .......... ..... .................. .... .. ... .. ... .... .... 173 EJERCICIOS PROPUESTOS ........................................................ .. ......... .. ... .... 177

    PARTE 2. INTERFACES GRFICAS ................................... 179 CAPTULO 6. APLICACIONES CON INTERFAZ GRFICA ...................... 181

    PROGRAMANDO EN WINDOWS ..... .... ................................. ...... ........ .......... 183 ESTRUCTURA DE UNA APLICACIN..... ......... ....... .... ......... ..... ........ ... ....... 185

    Compilar y ejecutar la aplicacin .... _. .... .... ......... ... .... ....... .... .... ............ ... ... .... 189 DISEO DE LA INTERFAZ GRFICA .. ......... .... ........ ... ...... ........ .. ........... ..... 191

    Crear un componente................... ............. .... ..... .. ......... ...... ....... .... .. .. ...... ...... 191 Controles ms comunes.. .. .. ..... .... ................................. ........ ...... .... .... .... .. 191 Aadir una etiqueta y editar sus propiedades ... ..... .. ...... .. .. ..... .. .. ... . .. .. ...... 191 Aadir un botn de pulsacin y editar sus propiedades.. .... ............. .. ....... 194 Aadir una descripcin abreviada a un componente .. .. .. .. .. . ...... .. .... .. .. .. .. . 194

    MANEJO DE EVENTOS ..... .......... ....... .... ..... .. ... ............................................ .. 196 Asignar manejadores de eventos a un objeto... ..................... ....... ........ .... .... .. 198

    CAJAS DE TEXTO, ETIQUETAS Y BOTONES...... ......... ...... .......... .. .... .... .... 199 Desarrollo de la aplicacin.......... .................. ........ ........................ ....... .. ..... .. 199

    Objetos .. .. ....... .. .. . . .. .. .. .. ... .. .... .. ..... ...... .. .. .. .. .. .... .. ... .. .. .. .. .. .. ..... .. .. ...... .. .. .. .. 199 Eventos. .. .... ..... ...... .... ............. .......... .......... ........... .... .... ...... .... ...... ... ... .. .. . 200 Pasos a seguir durante el desarrollo........... .......... ............. ...... ..... .. .... ....... 200 El formulario, los controles y sus propiedades ............ ............... ... ... ... ..... 200 Tecla de -acceso ......... ...... ..... .. .................................................... ............... 202 Botn predeterminado .............................................................................. 202 Responder a los eventos .... .. .. . .. .. .. .... .. .. .. ..... .. .... .. .. .. .. .. .. .. ... .... .. .... .. .. .. .. .. .. 202

    Enfocar un objeto ....................... .... ...... ..... ...... .. .. ................................... ....... 205 Seleccionar el texto de una caja de texto ....... ................................. .. .. .... .... ... 207

    INTERCEPTAR LA TECLA PULSADA.......... ................................................ 208 VALIDACIN DE UN CAMPO DE TEXTO ................................................... 210

    Eventos Validating y Validate .............. ......... .... .... ............ ....... ....... .............. 212 MaskedTextBox . .. ... . .. .. .. .. .. .... .. .. .. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. .. .. . . .. .. .. . .. .. ... . . .. . .. . . .. 216

  • CONTENIDO XV

    Marcar el elemento seleccionado de nn men.......................................... 265 Deshacer.............................................................................. .......................... 266

    Recordar las ediciones reversibles............................................................ 266 Aadir a la interfaz la orden Deshacer . ... . . . ... .. . . . ..... .. ........ ......... ......... ..... 266

    Listas desplegables en mens....... .. ..................... .......................................... 267 MENS EMERGENTES...................................... ............................................. 271 MENS DINMICOS ....................................... .... ................... ......................... 273 ASOCIAR UN ICONO A LA APLICACIN................................................... 277 REDIMENSIONAR UN COMPONENTE......... ... ............................................ 277 EJERCICIOS RESUELTOS ...................... .... ............ ........................................ 278 EJERCICIOS PROPUESTOS.................. .......... ................................................ 282

    CAPTULO 8. CAJAS DE DILOGO ................................................................ 285

    CAJAS DE DILOGO MODALES Y NO MODALES .................................... 286 CAJAS DE DILOGO PREDEFINIDAS ......................................................... 286

    Visualizar datos . . .. . . .. . . . ........ .. . .. .. . . . .. .. .. .. .. .. . . .. . . . . . . . .. .. . . .. . . . . .. . . . . . .. .. . . . .. .. .. .. .. . .. . . 286 Confirmar datos.. ... .. ................................................... ........ ........................... 288

    CAJAS DE DILOGO PERSONALIZADAS .................. ................................ 289 Crear nna caja de dilogo ............. :............... ........ ....................... .................. 290 Mostrar nna caja dilogo ............................ ....... .... . ..... ........ .......................... 292 Introduccin de datos y recuperacin de los mismos .................................... 293

    CASILLAS DE VERIFICACIN...................................................................... 294 BOTONES DE OPCIN .................................... ........................................... .... . 298 LISTAS SIMPLES .................................. .......... ...... ... .............. .... .... .................. 303

    Disear la lista.......... .......... .... ....... ..... ............. ........ ....... .. ............... .... ......... . 305 Iniciar la lista................................................................................................. 306 Acceder a los elementos seleccionados ......................................................... 306 Coleccin de elementos de nna lista .............................................................. 307 Clase CheckedListBox ................................. ................................................. 308

    LISTAS DESPLEGABLES ......... ..... ... ..... ............. ...... .... ...... ...... .................. .... 309 Disear la lista.......................................................... ........ .... ...................... ... 31 O Iniciar la lista......................................... ...... .... .. ........ ... ........................... ...... 311 Acceder al elemento seleccionado... ...... ............ ................................ .... ..... ... 311 Coleccin de elementos de una lista desplegable .......................................... 312

    CONTROLES DE RANGO DEFINIDO .. .. ........ ....... ............ ............ ......... ....... 313 ScrollBar ..... ... .... .... .... .... ..................... .... . ..... ..... .. .. .. . ................. ...... ......... ..... 313 TrackBar .... .. ... ... .. .... ... .............................. ...... ...... .... ...... ...... .................... ..... 317 ProgressBar . . . . . . . . . . . . . .. . . .. .. . . .. .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. . . .. . . .. .. . . .. .. .. . . . . . . . . . . . . .. 3 18

    CAJAS DE DILOGO ESTNDAR...... .......... ...... ... .... .... ...... .......... ... ..... ..... .. 320 Cajas de dilogo Abrir y Guardar .............. ........ ....... ....................... . .'............ 321 Caja de dilogo Color........................... .. .. .. ..... .. ... .. .... ................ ... ................ 324

  • XVI ENCICLOPEDIA DE MICROSOFT VISUAL C#

    EJERCICIOS RESUELTOS ................ .. ........................................................ .. .. 325 EJERCICIOS PROPUESTOS .. .... ............. ....... .'................................................ . 336

    CAPTULO 9. TABLAS Y RBOLES ................................................................ 339

    TABLAS ... ............. ......... ....... ...... ..... ....... ... ....................... ........... ...... ......... ...... 339 Arquitectura de un control DataGridView .................. .. .. .. .. .................... ....... 341 Construir una tabla ........ ...... ............................................... ..... ... .. ... ........... .. . 342 Aadir las columnas a la tabla ............ .. .... .................................................... . 343 Iniciar la tabla ......... .... ........... ...... .............................. ..... .... .. .. ......... .... .... ...... 344 Tamao de las celdas ........ ......................................... .. ........... .......... ..... ........ 346 Acceder al valor de la celda seleccionada ...... ............ .. .. .. .... ........................ . 346

    RBOLES.. ...... ........ ...... .................. ......... ................. ...... ... ........ ......... .............. 348 Arquitectura de un rbol............................................. .... .. .......... ..... .. .. .......... 349 Construir un rbol....... .. ........................................... ...... ... ...... .. ..................... 349 Aadir nodos a un rbol .. ...................................... .............. .......................... 350 Imgenes para los nodos del rbol............................................................ ..... 351 Iniciar el rbol ......................................... ....... ............................................... 352 Acceder al nodo seleccionado .......................... .......... .................................. . 354 Recorrer todos los nodos del rbol .. : .......... .......... .. .. ..................................... 357 Aadir y borrar nodos........................................ .. .................................... .. .. .. 358

    Aadir un nodo .............. ..... ................... ............................ ...... .. .. ..... .. .. .. .. 359 Borrar el nodo seleccionado .............. .......................... .. .. .................. ...... . 362 Borrar todos los nodos excepto la raz.. .............................. .. ........ .. .......... 362

    Personalizar el aspecto de un rbol... .... .. .................................. .. .. ............ .. ... 362 VISTAS DE UNA LISTA........ .. ...... .. .. ............ .............................. .... .. ...... .. ...... 363

    Personalizar el aspecto de una vista .. .. ........................ .. .. .... .. .......... ............... 364 La coleccin Columns ... .... .. .. .. .. ............... ..... .. ...... .. .... . .. .. .. .. .. .. .. . .... .. .. .. .. .. .. .. 365 Elemento de la lista .. .. .. .. .. . .. .. .... .. .. ..... .. .... .. .. ..... .. .... .. .. .... . .... .... .. .. .... .. .. .. . .... .. 366 La coleccin ltems.. ...... ......... .. .......... ........................ .. .... ........ ......... .. .. ......... 367 Un ejemplo con ListView ...... .. ............ .............................. .. .. .. .. .... .. .. .. ...... .. .. 367

    EJERCICIOS RESUELTOS .. ....... .... .. ........................ .... ................................... 369 EJERCICIOS PROPUESTOS .................... ...... .. .... ......... ........ .. ... .. ................... . 385

    CAPTULO 10. DIBUJAR Y PINTAR ................................................................ 387

    SERVICIOS DE GDI+ ....... .. .. ........................... ....... .. ...... ..... ............................. 389 OBJETOS DE DIBUJO BSICOS...................... .. .. ........ .... .. ...... .. .................... 390

    Objeto Graphics ... ........ ........ .... .... ..... ...... ....... .... .... .... ............... ............. ,. .... ... 392 Objeto ~olor.............. .. ......... .. ............... .... ...... . ...... ............... .. .... ...... .. ....... .. . 393 Objeto en................... ............... .. .... ................ ...... .. ........ ....... .... .................. 394

  • PARTE

    Programacin bsica

  • CONTENIDO XVII

    Objeto Brush... ..... ........ .......... ....... ...... .. ........ ......... ...... ... ..... ... ... ....... ...... ....... 395 Objeto Point. ... ............. .... ..... ..... ... .............. ." .......... .................... .... .... ............ 396 Objeto Rectangle ..... ............. ......... ... .......... ..... .. ........ ............ ........ .... ........... . 396 Objeto Font. ..... .... ......... ... ..... .............................................. ............... ..... ...... . 397 Objeto GraphicsPath..... .......... ..... .......... ...... ... ........ ............ .. .. .. .......... ..... ...... 398

    MTODOS DE DIBUJO ........................ ...... ...... .... ......... ........ ......... ...... ............ 398 Lneas y rectngulos. ............ ............. .... ......... ........ ................. ........ ...... .... .... 398 Elipses y arcos ..... ... ...... ... ....... ......... ........ ....... ........ ............ ......... .... .... ...... .... 399 Tartas ... ....... ....... .. ..... ........... ... .. ............ ......... ................. ........ .......... ........ .. ... 400 Polgonos ........ ....... ........ ..... .... ............ ............... .................. ............. ........ ...... 400 Curvas flexibles............ ........... ... ... ........ .... ..... .... .... ......... .... .... .......... ............ 401 Trazados ..... ....... .......... ... ....... .... ..... ....... ... ........ ....... ... .... .... ....... ...... .... .......... 402 Regiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

    GRFICOS PERSISTENTES....... ..... ..... ...... ......... ........ ............................... ..... 405 SISTEMAS DE COORDENADAS Y TRANSFORMACIONES ... .... .... ......... . 407

    Tipos de sistemas de coordenadas .. ...... .. ..... .. ... ... .. .. ... .. .. .. .. .. .. .. .... ... ... .. ... .. .. .. 411 MOSTRAR IMGENES .............. ....... .... .... ..... .................. .. ............ .......... ....... 412

    Mapas de bits .......... ......... ........ .... ... ........ ..... .... .... .... ..... ..... ....... .......... ........... 412 Cargar y mostrar un mapa de bits.... .... ....... .......... ....... .............. ........ ........... . 413 Intercambiar imgenes a travs del portapapeles.. .. ... ....... .. .. .. ... .. .. .. .. ...... .. .. .. 419

    EJERCICIOS RESUELTOS .... .. ......... :. ... ............... ........... ........ .... ........ ............ 420 EJERCICIOS PROPUESTOS ...... ........... ...... ......... .......... ........ ........... ............ ... 432

    CAPTULO 11. INTERFAZ PARA MLTIPLES DOCUMENTOS............... 435 CREACIN DE UNA APLICACIN MDI ... ................... ...... .... ...................... 436

    Organizar los formularios hijo ...... .... .... .... .. ........ .... ... .... ........ .... ...... ... ......... .. 439 EDITOR DE TEXTO MDI ....................... ....... ........ ......... ............. .......... ........ .. 440

    Formulario padre .... ......... ........ ......... ........ .... ..... ............. ... ................ .. .. ........ 440 Formulario hijo ........................ ......... ........ .... .. ... ..... ... .... .... .......... ...... ... ...... ... 442 Dilogo Acerca de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 Vincular cdigo con los controles ..... ...... .. ............. .... ........ .. .. .. .......... ..... .. .. .. 444

    Iniciar y finalizar la aplicacin..... ........... ...... ......................... ........ .......... 445 Nuevo dpcumento ..... ... ............ .... .... ..... ... ........................................... ...... 445 Abrir un documento. ............. .. ......... ...... ........ .... ....... ........ ...... ........ ......... . 446 Guardar un documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7 Guardar como.............. ............ ........ .... .. ..... .... ........................ ........ ........ .. 448 Imprimir un documento ......................................... ...... .............. .............. . 449 Cortar, copiar y pegar........... ......... .... .... ..... .............................. ... ...... ... ... . 451 Recordar las ediciones reversibles ...... ..... ........ ........ ... ..... .... .. .. ..... .. _. ......... 452 Barras de herramientas y de estado .................. .... .................................... 453 Men Ventana .................. ..... .. ...... ........ .............. ................. ... ............ .... . 454

  • XVIII ENCICLOPEDIA DE MICROSOFT VISUAL C#

    Seleccin actual del texto ....... .................................................................. 455 El documento ha cambiado ......... .......... : .................. ... .......................... ... 457 Operaciones de arrastrar y soltar... ... ....... ....... ........ ....... ....... ............ ........ 458

    EJERCICIOS RESUELTOS ... ..... ... ..... .......... ... .... .. ...... ......... .. .. .... ........ ........ .... 458 EJERCICIOS PROPUESTOS ' 462

    CAPTULO 12. CONSTRUCCIN DE CONTROLES.................................... 463 REUTILIZACIN DE CONTROLES EXISTENTES ..................... .......... .... ... 463

    Control TextBox extendido .............. ......... ....... ... ................ ...... .... ....... .. ... .... 464 Clasificacin de las propiedades de un control.......................................... .... 469

    CONTROLES DE USUARIO ........... .... ............. ....... .............. ...... .... .... ............. 469 Construir el control de usuario ..... .... ........ ....... ... .. .... .. ........... ........................ 470

    Aadir propiedades .............................................. .................................. ... 47'1 Aadir mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 72 Aadir eventos ... ................................................ .... .............. ........ ........ ..... 473 Opciones fecha-hora alarma o actual... ...................... .. ................ .. ........... 475

    Verificar el control de usuario ......... ....... ....... .......... .......... ....... ............ ......... 476 EJERCICIOS RESUELTOS .......... ......... ..... .......... ....... ..... ................................ 478 EJERCICIOS PROPUESTOS .......... ... : ........ ........ ..... .... .......... ........... ................ 481

    CAPTULO 13. PROGRAMACIN CON HILOS............................................ 483 . ESPACIO DE NOMBRES System.Threading .. ......... ........................................ 484

    Clase Thread .................................. ............................ ..... ........ .... ........ .... ....... 487 Resumen de los mtodos y propiedades de Thread . .. .. .. .. .... .. .. .... ..... . .. .. ... . .... 489 Estados de un hilo. ........ .... ..... ... .. ... ......... ....................................................... 490

    ACCESO A CONTROLES DESDE HILOS .......... .......... ...... ................ ............ 491 Delegados ......... ... ............ ..... ... ..... ... ...... ............................................. ........... 491 Componente BackgroundWorker ................... ....... .......... .... ...... ... ............. .... 495

    Ejecutar una tarea de forma asncrona......... .......... .... ...... ......................... 496 Notificar el progreso a la interfaz grfica del usuario ............ .... .......... .... 498 Recuperar el estado despus de la finalizacin de la tarea ..... .... ... .. ... .. .. .. 498 e 1 " . . d 499 ance acion anticipa a ............................................................................ .

    MECANISMOS DE SINCRONIZACIN .................................. ... .................. .. 499 Objetos de sincronizacin .............................................................................. 500

    Secciones crticas .. ......... .... .. .... ..... .. .... ... .... .. ........... ...... .. .. .. ..... ........... ..... 500 Tcnicas de sincronizacin avanzadas...................................................... 502 Controladores de eventos de espera.......................................................... 503

    DETENER UN HILO DE FORMA CONTROLADA ................ ........... ... :.. ...... 504 EJERCICIOS RESUELTOS ...... .... ......... ........... ................. ................... ...... ...... 507

  • CONTENIDO XIX

    EJERCICIOS PROPUESTOS..... ..... .... .......... ............................ ........................ 51 O

    PARTE 3. ACCESO A DATOS ............................................... 511

    CAPTULO 14. ACCESO A UNA BASE DE DATOS ....................................... 513

    SQL ................ .. ... .... .... ............. ................... ................................ ....................... 514 Crear una base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 Crear una tabla...... .... .... ......... ....... ........ ................. .................................... .... 514 Escribir datos en la tabla....... ........ ..... ... ..... ................. ........ ............... ............ 516 Modificar datos de una tabla ... ..... ........ .. ... .. .. .. .... ........... .. .. .. .. ................. .. .... 516 Borrar registros de una tabla..... ................................ ................... ........ .......... 517 Seleccionar datos de una tabla. ...... ... ..... .. ...... ........ ..... .... ........ ... ...... .... ......... . 517 Crear una base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 519

    Base de datos Microsoft Access .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 Base de datos Microsoft SQL Server ........ ........ ................... .......... ..... ..... 521

    ADO.NET ...................................................................... ..................................... 522 Componentes de ADO.NET .... .......................... ...... ....................... ........ .. ..... 523 Conjunto de datos ............... ............ ,. ...... ........ ...... ........ ......... .......... ...... .... .... 524 Vista de datos . .. .. .. .. .. .. . . .. . .. .. .. .. .. .. . .. .. .. .. .. .. .. . .. .. .. .. .. .. .. . . .. . .. .... .. .. .. .. . .. . . . .. . .. . . .. .. 526 Proveedor de datos . .. . .. .. .. .. .... .. .. ... .. .. .. .. .. .. . .. .. .. .. .. .. .. .. . .. .. .. .. .. .. .. . . .. . .. ...... .. .. .. .. 526

    Objeto conexin ... ............ ....... .......................... ... ... .... .... .... ..... ........... .. ... 527 Objeto orden ..................... ............. .... .......................... .... ................. ...... .. 528 Objeto lector de datos....... ..... .... ...... ................................. .. ...... ... .......... ... 528 Adaptador de datos ... .... ........ .. ....... ..... ... .. ... ........ .... .. ....... ... .... ... .......... ..... 529

    Modos de conexin ............ ................. ..................... ...................................... 530 ACCESO CONECTADO A BASE DE DA TOS ........... ...... ... ............ .... ......... .. 532 ACCESO DESCONECTADO A BASE DE DATOS.... .................................... 534

    Utilizando los componentes de .NET .................... ........................ ........ ........ 536 Proveedor de datos ........................ ................................. ................. ......... 536 Crear el conjunto de datos .... ..... .... .................................... .............. .. ... .... 539 Agregar un control rejilla al formulario .................. ................ ............. .... 540 Cdigo ... ......... .... ........... ......................................................... .................. 541

    Alternativa al asistente de configuracin del DataAdapter... .. .. .. ........ .. . .... .. .. 542 Obtener datos desde el origen de datos . .. ..... .. . ..... .. .. .. .. .. .. .. .. .. ...... .. .. .... . .. . 544 Actualizar la base de datos .. .. ... .. .. .. .. .. .. . .. .. .. .. .... .. ... ...... .. .. .. .. .. .. .. .. .. .. .. .. . .. . 545

    UPDATE ................ ............ ..... ........ ...................................... .... .... ..... . 547 INSERT ......... ...................................... ............. ................................... 547 DELETE .. ...... ........ ........... ................... .... ......... .... .... ........................... 547

    Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . . 548 Utilizando las clases de .NET .. .. .......... .. ... .. ........................................ .. ......... 549

    Establecer la conexin con el origen de datos...... .... .... .. .. ..... ......... .. .. ...... 549

  • XX E NCICLOPEDIA DE MICROSOFT VISUAL C#

    Agregar un control rejilla al formulario : 551 Actualizar la base de datos.. .......... ........................................................... 552

    Utilizando clases generadas por el asistente......... ............................ .... ...... ... 552 Mostrar los datos de la tabla en el formulario. ........... .................. ..... ...... 554

    CONTROL BindingSource ...... ...... ....... ............ ...... ......... . :. ..... ..... .... ........ ......... 555 VINCULAR CONTROLES AL CONJUNTO DE DATOS ... ...... ... .................. 556

    Diseo del formulario ...... .................. ........... ...... ... ... .. ...... ... ..... ..... ....... ...... ... 556 Vincular las cajas de texto con el conjunto de datos .................................. ... 557 Controles de desplazamiento.... ..... .... ................. ......... ........ ........ ..... .... ..... .... 559 Aadir, borrar y buscar datos ... .. ..... .. .. .... .. ..... .. .. .. .. .. .. ... .. .. .. .. .. .... ... ... . .... .. ..... 561

    CONTROL BindingNavigator. ...... .. ....... ... ...... .... ....... ... ........... .. ...... ....... ....... ... . 566 MAESTRO-DETALLE ........ .... ..... .... ..... ... ....... ........ ......... .... ... .......... .... ... ...... ... 567 EJERCICIOS RESUELTOS ......... ..... ...... ....... .......... ... .... ..... ...... .......... ......... .... 573 EJERCICIOS PROPUESTOS .... .. ... ..... ... ..... ....... .... .... ....... ........ ........................ 591

    CAPTULO 15. INTERACCIN CON Office ................................................... 593

    EL MODELO DE OBJETOS DE WORD ... ...... ......... ......... ...... ......... .......... .. ... 593 Utilizacin de Word en una aplicacin. .... ... ...... .. .... .................. ..... ... ... .. .... ... 595

    Crear una instancia de Word ............ ........ ...... ...... ... .... .... ............. ......... ... 596 Crear nuevos documentos ...... ................................................................... 596 Visualizar un documento ............... ......... ........ ..... .. .. ....... ......... .... ............. 597 Abrir documentos existentes ....... .. .. .. ....... .. ...... ...... ... ...... ... .... .. .... .... ..... .. . 597 Hacer referencia a un documento en la coleccin Documents ........... .. .. .. 597 Hacer referencia al documento activo ......... ................... .. .. .......... ....... ..... 598 Insertar texto en un documento Word ................................. ......... ..... .. ..... 598 Definir y seleccionar rangos ... ........ .... ..................... ....... ... ... ...... ...... ..... .. . 598 Dar formato al texto en documentos de Word .... ....... .... ... .. ....... ... .......... .. 599 Guardar y cerrar documentos .. .. ...... ... .. .. ........ ... .. ...... . .... .. .... .......... ... .. ..... 599 Mostrar documentos en la vista preliminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 Enviar documentos a una impresora.... ....... ...... ...................... ........... ....... 600 Utilizando eventos con el objeto aplicacin. ...... ............... ......... .... ...... ... . 600 Ejemplo ....... .... ... ... ....... ................ ........ .. ........ ...... ........... ..... ...... ........ .. .... 601

    EL MODELO DE OBJETOS DE EXCEL..... ................. ............... .......... ......... . 609 Utilizacin de Exc~l en una aplicacin ............ ...... ......... ......................... ...... 611

    Crear una instancia de Excel .... ........ ..... ............... .... ..... .... .... ..... .. . .. .... ..... 611 Crear nuevos libros ...................................................... ...... ....... ................ 611 Visualizar un libro. ................. ............. ....... ........ ....... ........... ..... ............... 611 Abrir libros existentes . ...... .. ..... .. ......... .. ... .. .. .. .... .. .. .. ... ... . .... .. .. ...... .. .. . .. . . .. 612 Abrir un fichero de texto como un libro.... ......... ..... ... .... .... .................... .. 612 Activar un libro determinado............................... ..................................... 612 Guardar y cerrar libros ... .... .... .. ....... ......... .... .... .. .. ..... .. .. .... .. .. .. ... ... .. .... ... . . 612

  • CONTENIDO XXI

    Agregar una hoja de clculo y activarla._. ... ..... ...................................... ... 613 Mover una hoja de clculo ............ .................... ................ .... ........ ........... 614 Eliminar una hoja de clculo.................. .................................................. 614 Seleccionar una hoja de clculo .................................. .... .. ................ ....... 614 Rangos en una hoja de clculo ...... .............................. .... .. .. .................... . 614 Insertar datos en una hoja de Excel.......... ........ .................. ........ ...... .. ...... 617 Dar formato a los datos en una hoja de Excel .. ........................ ............ .... 618 Mostrar documentos en la vista preliminar .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 6 8 Enviar hojas de Excel a una impresora ................................ ..................... 618 Utilizando eventos con el objeto aplicacin.................................. .... ....... 618 Ejemplo .. ....... ..... .... ........... ..... ...... . ....... ....... ..... .. ....... ...... .. ....... .... .. ..... .... . 619

    VISUAL STUDIO TOOLS PARA OFFICE .......... .............. .............................. 629 Arquitectura de las soluciones MS Office .. .............. ...................... ...... ......... 630

    EJERCICIOS RESUELTOS ..... ............ ...................... ..................... ............... ... 63.4 EJERCICIOS PROPUESTOS ................................. ................................... :....... 642

    PARTE 4. APLICACIONES PARA INTERNET .................. 643

    CAPTULO 16. PGINAS WEB ........................................................................ 645

    QU ES INTERNET? ......................... .................................... ....................... .. 645 Intranet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 Terminologa Internet ..... ....... ......... ................ ............................................... 646

    SERVICIOS EN INTERNET .................... ........... .................................... .......... 649 PGINAS WEB ...... .............. ............... .. .... ............ ...... .. .... ... ...... ....................... 652

    Qu es HTML...................... ... ..... ..... ...... ......... ............... ..... ........ .................. 652 Etiquetas bsicas HTML ........................ ............................ ........... ................ 653 Etiquetas de formato de texto .................... .............. ...................................... 654 URL ....................... ..................................... .... .. ........... .. .......................... ..... . 656 Enlaces entre pginas ......... .... .. ......... ...... ..... .............. ... .... ............. ...... .... . .... 657 Grficos ............... ... , .. ...... .. .... ....... ............ ...... ...... ......... ...... ......................... . 658 Marcos .............. ........ .... ...... .............. ....... ......... .... ...... ...... ...... ....... ................ 659 Formularios ...... ... ..... .... ........ ... ... ...... ... ........... ............................... ......... ....... 660

    Entrada bsica de datos .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 661 Caja de texto .............. .... ...... ............. .......................... ...... ........... ........ 661 Caja de clave de acceso.... .............. .... .. ...... ......................................... 662 Casilla de verificacin........................................ ............ ..................... 662 Botn de opcin ................ .... . .. ...... ............ ............... .... ..... .. .... .... ..... .. 662 Parmetros ocultos .. .. .. .. .. .. .. .. .. . .. .. .. .. .. .. .. . .. . .. .. . .. .. .. . .. . .. .. . . .. . .. .. .. .. .. .. .. .. . 663 Enviar datos .......................... ..... ........ ........................ .... .. ......... : ......... 663 Borrar los datos de un formulario............................ ..... .. ..................... 663 Imgenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663

  • XXII ENCICLOPEDIA DE MICROSOFT VISUAL C#

    Orden de tabulacin. ........ ............................................... .. ......................... 664 Caja de texto multilnea...................... ........................................ ...... .. .. .. .. 664 Listas desplegables ...... .. .... .. .. ......... .... .. .. ....... ...... .. .... .... .... .... . .. .. .... .. .... .... 664 Tablas ... ............ .. .... ........... ... ......... ... ... ....................... ....... ...... ..... .... ........ 667

    HOJAS DE ESTILO............. .. .................................... .... ........... .. ...... ..... ............ 668 Clases .... .............. ..................................................... ..................................... 670 Etiquetas y ...... ........................ .... .. .... .. ........................ .... .. .. .. .. 671

    XML ............................... .... ....... ........ ............... ......... ............ ............................. 673 XHTML ...................... ............................ ..... .... .. .................... ........ .. .... ........ .... .. . 674 PGINAS WEB DINMICAS ....................... .................................................. 674 APLICACIONES DISTRIBUIDAS MUL TICAPA.................. .... ........ ............. 677 ASP.NET ............................................................................................................ 678

    Conceptos bsicos de ASP.NET ...................................... ...... ...................... .. 679 Modelo de ejecucin de una pgina Web ...................................................... 680 Formularios Web ........................................................................................... 682 Controles HTML . . .. . ... .. .. .. .. . ... .. .. . . . .. .. .. .. .. .. . .. .. .. .. .. .. .. .. . . . . . .. . . .. .. .. .. .. . .. . . . .. . . . . . .. . 682 Controles Web .................................................. ... ............. .... .... ........... ...... .... 683

    Presentacin del texto ............................................................................... 684 Controles de entrada................................................................................. 684 Envo y devolucin..... ......... .. .. .................................................................. 686 Exploracin ... .. . .. .. .. .. .. .. . .. ... .. . .. .. .. .. .. .. .. . .. .. .. .. .. .. .. .. ... .. .. .. . . .. .. .. .. . .. .. . .. . .. .. .. .. 687 Controles de diseo .. .. . .. .. .. . . .. .. .. . .. .. .... .. .. .. . .. .. . .. . .. .. .. .. .. .. .. .. . .. .. .. .. .. .... .. .. . ... 687 Seleccin de fechas .. .. . . . .. ... . .. .. .. .. ...... .. . .. .. .. .. .. .. .. ........... .. ...... ... .. ...... .. .. .. .. 688 Controles con enlaces a datos .. .. .................................................. ............. 688 Controles de validacin.... .... ...... .. ............................................................ 688

    Un ejemplo de diseo de un formulario.................. ....................................... 689 Cmo se publican pginas Web? .................... ............................ .... .. ........... 691

    Crear un directorio virtual........................................................................ 692 ASP.NET 2.0 ........................................................... ................ ........... .......... ...... 694 EJERCICIOS RESUELTOS ............................................................... ...... ...... ... 694 EJERCICIOS PROPUESTOS.. .... ......................................... .. ............ .... ...... .. ... 700

    CAPTULO 17. FORMULARIOS WEB ................................................ .......... ... 701

    APLICACIN WEB ASP.NET .. .............. ....... .... ............................ .................. 702 Crear un nuevo formulario Web ... ............. ........................ ......................... .. . 703 Agregar controles y texto a la pgina ................. .... .......... .. ...... .................. ... 705 Ciclo de vida de una pgina...... ....... .............................................................. 707 Crear controladores de eventos para los controles ........................................ . 708 Generar la aplicacin Web y ejecutarla ....................... ........................ ......... . 711 Modelo de eventos de control de servidor ASP.NET .................................... 712

    FORMULARIOS WEB CONSTRUIDOS SIN HERRAMIENTAS RAD .. ...... 713

  • CONTENIDO XXIII

    Escribir la pgina Web ................ ................................... ....................... ..... .... 714 Escribir el fichero de cdigo subyacente. ...................................................... 716

    HERRAMIENTA DE PRECOMPILACIN ASP.NET ................. ...... .. .. ... ...... 719 CONTROLES DE VALIDACIN ...... ..... ..... .. ..... .... ... ........... ........................... 720 ACCESO A DATOS DESDE FORMULARIOS WEB .. ... : .................. ............. 723

    Control Web para acceso a datos ........................................................ ...... ..... 727 Aadir los objetos para acceso a datos .. ... ...... ........ .... ..... ... .. ....... ............ ...... 727 Responder a los eventos .. .. .. .. .. .. .. ... .. .. .. .. .. .. .. . .. .. ... . .. .. .. .. . ..... .. . .. . . .. .. ..... ..... .. .. . 730

    PROCESAR FORMULARIOS........................... ........ ..... .... .... ... ...................... . 733 Peticin HTTP get ........ ...... ... .... ... ........ ....... .......... ........... ............................. 733 Peticin HTTP post ..... ................. .............. ... ........ ... ... ... ....... ........................ 735 Contexto de un formulario Web ....................................................... ............. 735 Peticiones . . .. .. .. ... ........ .. .. .. .. .... .. .. . .. .. .. .... .. ... .. .. .. . ... .. .. ... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 736

    ESTADO DE UNA PGINA ASP.NET ... .... .......... ..................................... .... . 737 Administracin de estado en el cliente ........... .......... ............... : .......... ........... 738

    Cookies ....... ...... ... .... ....................................................................... ........ .. 738 Cadenas de consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 40 Campos de formulario ocultos ........................................ .... .......... ....... ..... 741 Estado de vista........................................................... ............................... 7 41

    Administracin de estado en el servidor.. ................................ ................ ...... 743 Estado de aplicacin .... .... ......... .... .... ......... ... ..... ... ........ ........... ..... ............ 743 Estado de sesin ...... ... ....... ........... .... ......... ........ ............ ..... .... .......... .... .... 744 Bases de datos ................. ... ............................................................... ....... 745

    EJERCICIOS RESUELTOS .............................................................................. 745 EJERCICIOS PROPUESTOS ...... ....... ........ ..... .... ....... ... ...... .. ...................... .. .... 754

    CAPTULO 18. SERVICIOS WEB ..................................................................... 755

    SERVICIOS WEB DESARROLLADOS CON HERRAMIENTAS RAD ........ 756 Crear un nuevo ser:icio Web XML. .......... .............. ......... ............ .... .......... ... 756 Cmo se construye un servicio Web ........................... .... ...... .............. .... ...... 758 Escribir la interfaz del servicio Web ..... ............... ........................................ . 760 Explorar servicios Web XML existentes....................................................... 7 61 Crear un cliente del servicio Web............................................................... ... 763 Aplicacin Windows como cliente de un servicio Web ................................ 764

    Descubrimiento de servicios Web XML .................................................. 766 Crear un proxy de servicio Web XML .... ...... ........ ...... ..... .... ........ ... .... ..... 767 Obtener acceso al servicio Web XML. ................................. .... ........ ...... .. 769

    Aplicacin Web como cliente de un servicio Web ... ..... ................ ...... ..... .. .. . 770 Obtener acceso al servicio Web XML. .. ...... ..... ... .... .......... ...... ............. ..... 775

    SERVICIOS WEB DESARROLLADOS SIN HERRAMIENTAS RAD .......... 776 Crear un servicio Web XML ......................................................................... 776

  • XXIV ENCICLOPEDIA DE MICROSOFT VISUAL C#

    Crear un cliente del servicio Web .... ........................... ............... .......... ..... ... .. 778 Escribir la pgina Web .. .. ... .... ................ .". ..... .... ....... .............. ... .... ... ........ 780 Escribir el fichero de cdigo subyacente.. ......... ..... ... ......... ...................... 781

    HERRAMIENTA DE PRECOMPILACIN ASP.NET ........ .... ........ ... ... ... ....... 783 EJERCICIOS RESUELTOS ............ .... .... .... .... ........... ... ..... ~ . ..... . . . .. . . . . . . . ....... ... .. 783 EJERCICIOS PROPUESTOS .. ........... ........ ....... ........ .......................... .... ...... .. .. 810

    CAPTULO 19. SEGURIDAD DE APLICACIONES ASP.NET ...................... 815

    ARQUITECTURA ASP .NET ........................ ......... ...... ......... .. ...... .... .... ......... ... 816 AUTENTICACIN EN WINDOWS ........ ........ .......... ..... ........... .. ...... ............... 817

    Cmo deshabilitar el acceso annimo ..... .. .. .. ..... ... ... .. .. .. ... ..... . .. .. ..... ..... ... ..... 819 AUTORIZACIN. ..... .... .... ....... ...... ..... ...... ..... ........... .......... ....... ..... .... ........... ... 82~ SUPLANTACIN DE IDENTIDAD ............. .... .... ..... ......... .... .... .... ................. 824 AUTENTICACIN MEDIANTE FORMULARIOS .... ........... ..... .............. .... .. 826 CONTROLES PARA INICIO DE SESIN ........ ..... ... .... ..... ........ .. ................... 830 SERVICIO DE SUSCRIPCIONES .................................................... ........ .... .... 841 CREDENCIALES PARA LLAMAR A UN SERVICIO WEB ........ ...... ... ..... ... 848

    Servicio Web ...... .... .... ......... ..... ........... .......... ........ ..... .... ...... ....... ........... ..... .. 848 Cliente Web ........ .......... ....... .... ......... ~ ....... ..... ................... ...... ..... .... ........ ...... 852

    SEGURIDAD EN LA TRANSMISIN DE DA TOS........................................ 859 Criptografia simtrica ......... ......... .... ..... .............................. .... ......... ......... ..... 859 Criptografia asimtrica . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. .. . .. . . . . . . . . . . . . . .. . . . . . . . .. . . . . . . .. . . 860

    AUTENTICACIN USANDO CERTIFICADOS ................ ... .. ..... .... ......... ...... 862 Certificado de cliente rechazado... ..... ..... ... .... ..... .... .... ... ............. .......... .. ... .... 872

    CAPTULO 20. MVILES .................................................................................. 875 WINDOWS MOBILE ................ .. .. ......... .... .. ....... ... ....... ................ ....... ........ .... . 875 LOS DISPOSITIVOS INTELIGENTES ......................... .... ...... ........... ...... ........ 876 DESARROLLO PARA DISPOSITIVOS MVILES.............................. .......... 878

    Posicionamiento y acoplamiento de controles ... ....... ........................... .......... 879 Orden Tab.... .......... ... .. .. .................. .................... ... ..... ................. ................. 881 Ejecutar la aplicacin ........... ............ ...... ... ...... .... ............. .......... ...... ............. 881 Dividir la pantalla. ................ ..... ......... ... ............................... ................ ...... .. . 883 Resolucin de la pantalla. .......... ......... .... ... ......... ......................... ....... ... .... .... 884 Cambiar la plataforma de destino.... ... ..... ..... .... ........ ...... ... .... .............. ......... . 884 Herencia entre formularios ..... . ... ........ ..... .. ... ............. ..... ...... ...... ... .... .. ... ... .... 884 Acceso a bases de datos ...... .. .. ..... ............. ........... ...... .... ..... ...... ...... ...... ........ 884

    EJERCICIOS PROPUESTOS ........... ........... ..... ............................ .... ... .... ... ....... 891

  • CONTENIDO XXV

    ,

    PARTE 5. APENDICES ................... , ....................................... 893

    A. AYUDA .............................................................................................................. 895

    B. ENTORNOS DE DESARROLLO ................................................................... 897

    VISUAL STUDIO 2005 ........ ........ ..... ..... .. ... ... .............. ...... .. .. .... .. ....... .......... .... 897 Ediciones Visual Studio 2005 Express. ....... ........ .... ..... ............. ...... ...... ........ 897 Visual Studio 2005 Standard Edition ... ...... .... ...... ... .. .. ........ ..... .. .... ... . ....... .. .. 898 Visual Studio 2005 Professional Edition .. .. ..... .. .. .... ........ . .. .... .. .. .. ... ...... .. .. .. .. 898 Visual Studio 2005 Tools para Microsoft Office System ...... ............ ......... ... 898 Visual Studio 2005 Team System . .. .. .... ..... .. .. .... .. ....... .. .... ..... .. .. .. .. .... .. ....... .. 898

    APLICACIN DE CONSOLA ...... ............. ............. ......... ........ .... ..... ........ ........ 898 DEPURAR UNA APLICACIN .. ........... ........ ........ ......... ........ ......... ..... ........... 901 ARGUMENTOS EN LA LNEA DE RDENES .... ......... ........ ..... .... .... .... ..... .. 903 SQL SER VER EXPRESS ......... .... .. ................ ................................................... 903 SQL SER VER MANAGEMENT STUDIO EXPRESS. ....... .. .. ........... .... .... ...... 906 EXPLORADOR DE BASES DE DA TOS ... ......... .... ......... ........ ......... ... ..... ....... 907 VISUAL WEB DEVELOPER ... ...... ....... .... ......... .... .......... .... ... ........ .. .... .... ...... . 908

    C. CDIGOS DE CARACTERES....................................................................... 909 UTILIZACIN DE CARACTERES ANSI CON WINDOWS .... ............. .. .. .... 909 JUEGO DE CARACTERES ANSI ..... .... ...... . .. .... .... .. .. . .. .. .. .. .. .. ..... .. .... .. .. .. ..... .. . 91 O UTILIZACIN DE CARACTERES ASCII .. ............... .... .... ....... .......... ... .. .. ..... 911 JUEGO DE CARACTERES ASCII .. .... ... ........... ...... ...... ... ..... ... ...... .. .. .. .. ... ..... .. 912 JUEGO DE CARACTERES UNICODE .......... ............................ .......... ....... .... 913

    D .. NET PARA LINUX......................................................................................... 915

    INSTALACIN DE MONO ... ........ ..... .... ........................................... .. ...... ....... 916 EJECUTAR UN PROGRAMA C# .. ........... ...... ..... ........ ........ ..... ....................... 916 ENTORNO DE DESARROLLO DE MONO ............... ........ ............... ........ ..... . 917

    NDICE ................................................................................................................... 919

  • ,

    PROLOGO e#, pronunciado C Sharp, es actualmente, junto con Java, uno de los lenguajes de programacin ms populares en Internet. Pero, adems, est disponible para el de-sarrollo de aplicaciones de propsito general, aplicaciones que muestren una in-terfaz grfica, aplicaciones para Internet y aplicaciones para mviles. La idea fundamental de esta obra es dar a conocer estas facetas del lenguaje C#, profundi-zando en alcance que tiene sobre la Web.

    En los ltimos tiempos e y e++ han sido los lenguajes ms utilizados en el desarrollo de aplicaciones en general. Ambos lenguajes proporcionan al progra-mador el nivel de abstraccin preciso para abordar el desarrollo de cualquier apli-cacin por compleja que sea, as como mecanismos de bajo nivel para utilizar las caractersticas ms avanzadas de las plataformas sobre las que se desarrolla; pero, en general, el tiempo necesario para desarrollar una aplicaciri resulta largo com-parado con otros lenguajes como Visual Basic, que ofrecen Jdems de facilidad, una elevada productividad en el desarrollo de aplicaciones, aunque eso s, sacrifi-cando la flexibilidad que los desarrolladores de C y C++ requieren. La solucin que Microsoft da a este problema es el lenguaje denominado C#. Se trata de un lenguaje moderno orientado a objetos que permite desarroll~ una amplia gama de aplicaciones para la nueva plataforma Microsoft .NET, la tual se caracteriza por proporcionar--utilidades y servicios para sacar un provecho total tanto de la infor-mtica como de las comunicaciones.

    Ms que otra cosa, el objetivo de C# es permitir a todos los desarrolladores en general, y a los de e y e++ en particular, abordar el desarrollo de aplicaciones complejas con facilidad y rapidez pero sin sacrificar la potencia y el control que ofrecen e y C++. Es un poco como tomar todas las cosas buenas de Yisual Basic y aadirlas a e++, aunque recortando algunas de las tradiciones ms ocultas y di-

  • XXVIII ENCICLOPEDIA DE MICROSOFT VISUAL C#

    ficiles de conocer de C y C++. Esto elimina los errores de programacin ms co-munes en C/C++. Por ejemplo:

    El recolector de basura libera al programador del peso que conlleva el manejo manual de la memoria.

    Todos los objetos creados dinmicamente as como las matrices son iniciados a cero, y aunque C# no inicia automticamente las variables locales, el compi-lador avisar siempre que se intente utilizar una antes de iniciarla.

    C# unifica el sistema de tipos permitiendo ver a cada uno de ellos en el len-guaje como un objeto.

    Resumiendo, C# es un lenguaje orientado a objetos seguro y elegante que permite a los desarrolladores construir un amplio rango de aplicaciones seguras y robustas que se ejecutan sobre .NET Framework. Podemos utilizar C# para crear aplicaciones cliente Windows tradicionales, servicios Web XML, componentes distribuidos, aplicaciones cliente servidor, aplicaciones para acceso a bases de da-tos, y muchas otras. Microsoft Visual C# 2005 proporciona un editor de cdigo avanzado, diseadores de interfaces de usuario apropiados, depurador integrado, y muchas otras utilidades para facilitar el desarrollo rpido de aplicaciones basadas en la versin 2.0 del lenguaje C# y en .. NET Framework.

    La palabra "Visual" hace referencia, desde el lado del diseo, al mtodo que se utiliza para crear la interfaz grfica de usuario si se dispone de la herramienta adecuada (con Microsoft Visual Studio se utiliza el ratn para arrastrar y colocar los objetos prefabricados en el lugar deseado dentro de un formulario) y desde el lado de la ejecucin, al aspecto grfico que toman los objetos cuando se ejecuta el cdigo que los crea, objetos que formarn la interfaz grfica que el usuario de la aplicacin utiliza para acceder a los servicios que esta ofrece.

    La palabra "NET" hace referencia al mbito donde operarn nuestras aplica-ciones (Network - red). C# proporciona la tecnologa necesaria para saltar desde el desarrollo de aplicaciones cliente-servidor tradicionales a la siguiente generacin de aplicaciones escalables para la Web, introduciendo algunos conceptos nuevos, como ensamblados, formularios Web, servicios Web, ADO.NET y el .NET Fra-mework.

    Este libro ha sido escrito utilizando el paquete Microsoft .NET Framework Software Development Kit (SDK) versin 2.0 incluido en el entorno de desarrollo Microsoft Visual Studio 2005 (o en su defecto Visual C# 2005 Express, Visual Web Developer 2005 Express y SQL Server 2005 Express) que incluye todo lo necesario para escribir, construir, verificar y ejecutar aplicaciones .NET., y su pro-psito es ayudar al lector a aprender a desarrollar aplicaciones con interfaz grfi-ca, aplicaciones para acceso a bases de datos, para Office, para Internet y para

  • PRLOGO XXIX

    mviles, utilizando Visual C# 2005. Para ello, qu debe hacer? Pues simplemen-te leer ordenadamente los captulos del libr, resolviendo cada uno de los ejem-plos que en ellos se detallan. Evidentemente, si el lector conoce ya C# tendr mucho camino recorrido, ya que este libro slo aporta un resumen del lenguaje C# debido a que este tema fue expuesto pormenorizadamente en otro de mis libros.

    Agradeci mientas

    He recibido ayuda de algunas personas durante la preparacin de este libro, y por ello estoy francamente agradecido. En especial, expresar mi agradecimiento a mi colega Manuel Peinado Gallego por sus buenas recomendaciones y aportaciones y a Francisco Ceballos Fernndez, ingeniero de Informtica, por su participa-cin en la revisin de este libro. Tambin, deseo expresar mi agradecimiento a Microsoft Ibrica por poner a mi disposicin, en particular, y de todos los lectores en general, el software que el estudio de esta obra requiere.

    Francisco Javier Ceballos Sierra

  • CAPTULO 1 @ F.J.Ceba/los/RA-MA

    INTRODUCCIN A MICROSOFT .NET

    .NET conduce a la tercera generacin de Internet. La primera generacin consisti en trabajar con informacin esttica que poda ser consultada a travs de exploradores como si de un tabln de noticias se tratara. La segunda generacin ha consistido en que las aplicaciones pudieran interaccionar con las personas; sirva como ejemplo los famosos carros de la compra. La .tercera generacin se caracterizar por aplicaciones que puedan interaccionar con otras aplicaciones; por ejemplo, para programar una reunin de negocios, su aplicacin de contactos interaccionar con su aplicacin de calendario que, a su vez, interaccionar con una aplicacin de reserva de billetes para viajar en avin, que consultar a su aplicacin preferencias de usuario, por si tuviera que cancelar alguna actividad ya programada.

    Precisamente, el principio de .NET es que los sitios Web aislados de hoy en da y los diferentes dispositivos, trabajen conectados a travs de Internet para ofrecer soluciones mucho ms ricas. Esto se conseguir gracias a la aceptacin de los estndares abiertos basados en XML (Extensible Markup Languaje - lenguaje extensible para describir documentos). De esta manera, Internet se convierte en una fuente de servicios, no slo de datos.

    En definitiva, Internet y XML han dado lugar a una nueva fase de la inform-tica en la que los datos del usuario residen en Internet, no en un ordenador perso-nal, y se puede acceder a ellos desde cualquier ordenador de sobremesa, porttil, telfono mvil o agenda de bolsillo (PDA: Personal Digital Assistant). Ello se debe fundamentalmente a que XML ha hecho posible que se puedan crear aplica-ciones potentes, para ser utilizadas por cualquiera, desde cualquier lugar. En el co-razn del nuevo enfoque de desarrollo est el concepto de servicio Web. Por ejemplo, en este contexto, el software no se instala desde un CD, sino que es un

  • 4 ENCICLOPEDIA DE MICROSOFT VISUAL C#

    servicio, como la televisin por pago, al que suscribirse a travs de un medio de comunicacin.

    Un servicio Web es una aplicacin que expone sus caractersticas de manera programtica sobre Internet, o en una intranet, utilizando protocolos estndar de Internet como HTTP (Hypertext Transfer Protocol - protocolo de transmisin de hipertexto) para la transmisin de datos y XML para el intercambio de los mis-mos.

    XML no es, como su nombre podra sugerir, un lenguaje de marcado; es un meta-lenguaje que nos permite definir lenguajes de marcado adecuados para usos determinados. Hay que desterrar ideas como que "XML es HTML mejorado". XML es un estndar para la descripcin y el intercambio de informacin, princi-palmente en Internet.

    HTML es un lenguaje utilizado para definir la presentacin de informacin en pginas Web. Gracias a HTML hemos podido combinar texto y grficos en una misma pgina y crear sistemas de presentacin complejos con hiperenlaces entre pginas. Pero HTML no es til en lo que se refiere a la descripcin de informa-cin; XML s. Por ejemplo, se puede utilizar HTML para dar formato a una tabla, pero no para describir los elementos de datos que componen la misma.

    Pues bien, .NET ha sido desarrollado sobre el principio de servicios Web, y Microsoft est creando la infraestructura para permitir esta evolucin hacia los servicios Web, a travs de cada pieza de la plataforma .NET. En definitiva, XML facilita el intercambio de datos, mientras que el software .NET ofrece la posibili-dad de trabajar con los mismos.

  • CAPTULO 1: INTRODUCCIN A MJCROSOFT .NET 5

    PLATAFORMA .NET Microsoft .NET extiende las ideas de Internet y sistema operativo haciendo de la propia Internet la base de un nuevo sistema operativo. En ltima instancia, esto permitir a los desarrolladores crear programas que transciendan los lmites de los dispositivos y aprovechen por completo la conectividad de Internet y sus aplica-ciones. Para ello proporciona una plataforma que incluye los siguientes compo-nentes bsicos:

    Herramientas de programacin para crear servicios Web XML con soporte multilinge: Visual Studio .NET y .NET Framework.

    Infraestructura de servidores, incluyendo Windows y .NET Enterprise Ser-vers.

    Un conjunto de servicios que actan como bloques de construccin para el sistema operativo de Internet que incluirn autentificacin del usuario (servi-cio Passport .NET), servicios para almacn de datos, administracin de prefe-rencias de los usuarios, calendario, y otros muchos. Para entenderlo, compare los servicios con los bloques de Lego; al unir bloques de Lego se pueden construir soluciones (una casa, ul barco, etc.). De la misma forma, la unin de servicios Web XML permite crear soluciones de software para realizar una tarea concreta.

    Protocolos: HTTP, HTML, XML, SOAP,

    etc.

    propios de terceros 1 nfraestructu ra de servidores

    Software de dispositivos .NET para hacer posible una nueva generacin de dispositivos inteligentes (ordenadores, telfonos, consolas de juegos, etc.) que puedan funcionar en el universo .NET.

    Experiencias .NET utilizadas por los usuarios finales para acceder a los servi-cios Web XML. Son anlogas a las aplicaciones independientes de hoy en da

  • 6 ENCICLOPEDIA DE MICROSOFT VISUAL C#

    pero con algunas diferencias importantes; por ejemplo, pueden leer las carac-tersticas del dispositivo que el usuario final est utilizando para acceder y ac-tivar as la interfaz ms adecuada, y utilizan servicios Web XML.

    .NET Framework

    Claramente, se requiere una infraestructura, no slo para facilitar el desarrollo de aplicaciones, sino tambin para hacer que el proceso de encontrar un servicio Web e integrarlo en una aplicacin resulte transparente para usuarios y desarrolladores: .NET Framework proporciona esa infraestructura.

    Segn se puede ver en la figura siguiente, .NET Framework es un componen-te de desarrollo multilenguaje y un entorno de ejecucin:

    VB 11 C# 11 C++ 11 JScript 11 CLS: especificacin del lenguaje

    .......

    --~:~~-t.-;>!

    : :~t~~~~r5~:

    Especificacin comn para todos los lenguajes .NET Framework proporciona un entorno unificado para todos los lenguajes de programacin. Microsoft ha incluido en este marco de trabajo los lenguajes Visual Basic, C#, e# y JScript y, adems, ha dejado la puerta abierta para que otros fa-bricantes puedan incluir sus lenguajes (COBOL, Pascal, Perl, Smalltalk, etc.). Lo ms atractivo quizs de todo esto es la capacidad de escribir, por ejemplo, parte de una aplicacin en Visual Basic y el resto en C#. No obstante, para que un cdigo pueda interactuar con cualquier otro independientemente del lenguaje utilizado, .NET Framework proporciona la "especificacin comn para los lenguajes" (CLS - Common Language Specification) que define las caractersticas fndamentales del lenguaje y las reglas de cmo deben ser utilizadas.

  • CAPTULO 1: INTRODUCCIN A MJCROSOFT .NET 7

    ASP.NET ASP .NET es una plataforma que incorpora una serie de caractersticas y utilidades para disear aplicaciones Web: formularios Web o servicios Web.

    Los formularios Web se utilizan para crear aplicaciones en las cuales la inter-faz primaria de usuario es un explorador. Naturalmente, entre ellas se incluyen las aplicaciones que se ponen a disposicin del pblico a travs del World Wide Web. Una caracterstica importante es que no hay costes de distribucin, puesto que los usuarios tienen ya instalada la nica parte de la aplicacin que necesitan: el explorador.

    Las aplicaciones de formularios Web son, por definicin, independientes de la plataforma; es decir, los usuarios pueden interactuar con la aplicacin indepen-dientemente del tipo de explorador que tengan e, incluso, del tipo de equipo que utilicen.

    Integrar un servicio Web en una aplicacin

    La clave para que los servicios W eb funcionen por toda la red y su heterognea infraestructura fue ponerse de acuerdo en un simple formato de descripcin de da-tos: XML. De manera especfica, los servicios Web requieren XML por tres razo-nes (vea la figura que se muestra a continuacin):

    l. Se necesita encontrar el servicio Web. UDDI (Universal Description, Disco-very, and Integration - descripcin, descubrimiento e integracin) es un ser-vicio Web utilizado por las aplicaciones para encontrar otros servicios Web; acta como un almacn de los servicios Web disponibles en Internet.

    2. Para invocar a un servicio Web necesitamos conocer como acceder al mismo, qu operaciones soporta, qu parmetros espera el servicio y qu retoma. WSDL (Web Services Description Language - lenguaje de descripcin de servicios Web) proporciona toda esta informacin en un documento XML que puede ser ledo o procesado por el cliente.

    3. Finalmente, para que las aplicaciones puedan comunicarse entre s, necesitan hablar el mismo lenguaje. El protocolo SOAP (Simple Object Access Protocol - protocolo de acceso a objetos simple) define el formato de los mensajes XML que son utilizados en esta comunicacin (se utiliza sobre HTTP).

    Resumiendo, mientras que SOAP es un estndar para intercambiar mero con-tenido (protocolo para intercambio de mensajes basados en XML utilizado para la comunicacin entre servicios Web y sus clientes), WSDL es el lenguaje que des-cribe el contenido.

  • 8 ENCICLOPEDIA DE MlCROSOFT VISUAL C#

    Encontrar un servicio

    http://www.uddi.org < documento WSDL 1 Cmo interactuar? (WSDL)

    Interactuando (SOAP) http://su-servicio.com/sv1 ~ XMUSOAP ~~_____.

    Utilizacin de un servicio Web

    Servicio Web

    De forma genrica podemos decir que un servicio Web es una aplicacin que se instala en un servidor desde el cual prestar sus servicios a las aplicaciones cliente que los soliciten. Desde esta definicin:

    Un proveedor de servicios crea un servicio Web, lo instala en un servidor, lo define mediante un documento WSDL, y lo registra en el servicio UDDI.

    Un usuario realiza una aplicacin cliente que necesita de un determinado ser-vicio, encuentra ese servicio Web buscando en el