P. 1
Ceballos: Enciclopedia de Microsoft Visual Basic 3Ed

Ceballos: Enciclopedia de Microsoft Visual Basic 3Ed

4.64

|Views: 20.101|Likes:
Introducción a Microsoft .NET. Mi primera aplicación. Aplicación Windows Forms. Introducción a Windows Forms. Menús y barras de herramientas. Controles y cajas de diálogo. Tablas y árboles. Dibujar y pintar. Interfaz para múltiples documentos. Construcción de controles. Programación con hilos. Enlaces de datos en Windows Forms. Acceso a una base de datos. LINQ. Entity Framework. CodeFirst. ASP.NET. Modelo de enlace de ASP.NET. Formularios Web. Controles de servidor como origen de datos vs modelo de enlace de ASP.NET. Servicios Web. Seguridad de aplicaciones ASP.NET. Páginas maestras. AJAX. Ejercicios resueltos.
Introducción a Microsoft .NET. Mi primera aplicación. Aplicación Windows Forms. Introducción a Windows Forms. Menús y barras de herramientas. Controles y cajas de diálogo. Tablas y árboles. Dibujar y pintar. Interfaz para múltiples documentos. Construcción de controles. Programación con hilos. Enlaces de datos en Windows Forms. Acceso a una base de datos. LINQ. Entity Framework. CodeFirst. ASP.NET. Modelo de enlace de ASP.NET. Formularios Web. Controles de servidor como origen de datos vs modelo de enlace de ASP.NET. Servicios Web. Seguridad de aplicaciones ASP.NET. Páginas maestras. AJAX. Ejercicios resueltos.

More info:

Published by: Fco. Javier Ceballos Sierra on Jan 07, 2009
Copyright:Traditional Copyright: All rights reserved

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
See more
See less

09/25/2015

Sections

Enciclopedia de Microsoft®
Visual Basic

Interfaces gráficas y aplicaciones para Internet
con Windows Forms y ASP.NET
3.ª edición

Fco. Javier Ceballos Sierra

Profesor titular de la
Escuela Politécnica Superior
Universidad de Alcalá

www.fjceballos.es

Enciclopedia de Microsoft Visual Basic
Interfaces gráficas y aplicaciones para Internet con Windows Forms y ASP.NET
3.ª edición.
© Fco. Javier Ceballos Sierra
© De la edición: RA-MA 2013

MARCAS COMERCIALES: las marcas de los productos citados en el contenido de este libro
(sean o no marcas registradas) pertenecen a sus respectivos propietarios. RA-MA no está
asociada a ningún producto o fabricante mencionado en la obra, los datos y los ejemplos
utilizados son ficticios salvo que se indique lo contrario.

RA-MA es una marca comercial registrada.

Se ha puesto el máximo empeño en ofrecer al lector una información completa y precisa.
Sin embargo, RA-MA Editorial no asume ninguna responsabilidad derivada de su uso,
ni tampoco por cualquier violación de patentes ni otros derechos de terceras partes que pudieran
ocurrir. Esta publicación tiene por objeto proporcionar unos conocimientos precisos y acreditados
sobre el tema tratado. Su venta no supone para el editor ninguna forma de asistencia legal,
administrativa ni de ningún otro tipo. En caso de precisarse asesoría legal u otra forma de ayuda
experta, deben buscarse los servicios de un profesional competente.

Reservados todos los derechos de publicación en cualquier idioma.

Según lo dispuesto en el Código Penal vigente ninguna parte de este libro puede ser
reproducida, grabada en sistema de almacenamiento o transmitida en forma alguna ni
por cualquier procedimiento, ya sea electrónico, mecánico, reprográfico, magnético o
cualquier otro, sin autorización previa y por escrito de RA-MA; su contenido está protegido
por la Ley vigente que establece penas de prisión y/o multas a quienes intencionadamente,
reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica.

Editado por:
RA-MA Editorial
C/ Jarama, 3A, Polígono industrial Igarsa
28860 PARACUELLOS DEL JARAMA, Madrid
Teléfono: 91 658 42 80
Telefax: 91 662 81 39
Correo electrónico: editorial@ra-ma.com
Internet: www.ra-ma.es y www.ra-ma.com
ISBN: 978-84-9964-265-9
Depósito Legal: M-xxxxx-2013
Autoedición: Fco. Javier Ceballos
Filmación e impresión: Closas-Orcoyen, S.L.
Impreso en España
Primera impresión: octubre 2013

Si no puedo dibujarlo es que no lo entiendo.
(Einstein)

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

CONTENIDO

PRÓLOGO .......................................................................................................... XXIII

PARTE 1. INTRODUCCIÓN ................................................... 1

CAPÍTULO 1. INTRODUCCIÓN A MICROSOFT .NET ................................ 3

PLATAFORMA .NET ........................................................................................ 4
.NET Framework ................................................................................................. 5
Aplicaciones de cliente .................................................................................. 7
Aplicaciones web ........................................................................................... 7
ADO.NET ...................................................................................................... 9
Biblioteca de clases base ................................................................................ 9
Entorno de ejecución común de los lenguajes ............................................... 9
.NET Framework y COM+ ............................................................................ 12
Visual Studio .................................................................................................. 13

CAPÍTULO 2. MI PRIMERA APLICACIÓN .................................................... 15

MICROSOFT VISUAL STUDIO ....................................................................... 15
Crear un nuevo proyecto ................................................................................ 17
El formulario .................................................................................................. 21
Dibujar los controles ...................................................................................... 22
Borrar un control ............................................................................................ 27
Propiedades de los objetos ............................................................................. 27
Bloquear la posición de todos los controles ................................................... 29
Icono de la aplicación .................................................................................... 29
Escribir los controladores de eventos ............................................................. 30

VIII ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Guardar la aplicación ..................................................................................... 33
Verificar la aplicación .................................................................................... 33
Propiedades del proyecto ............................................................................... 35
Crear soluciones de varios proyectos ............................................................. 36
Opciones del EDI ........................................................................................... 37
Personalizar el EDI ........................................................................................ 37
WPF .................................................................................................................... 38

PARTE 2. INTERFACES GRÁFICAS ................................... 41

CAPÍTULO 3. APLICACIÓN WINDOWS FORMS ......................................... 43

PROGRAMANDO EN WINDOWS ................................................................... 45
ESTRUCTURA DE UNA APLICACIÓN .......................................................... 47
Compilar y ejecutar la aplicación ................................................................... 51
DISEÑO DE LA INTERFAZ GRÁFICA ........................................................... 53
Crear un componente ..................................................................................... 53
Controles más comunes ............................................................................ 53
Añadir una etiqueta y editar sus propiedades ............................................ 54
Añadir un botón de pulsación y editar sus propiedades ............................ 56
Añadir una descripción abreviada a un componente ................................. 57
CONTROL DE EVENTOS ................................................................................ 58
Asignar controladores de eventos a un objeto ................................................ 61
CICLO DE VIDA DE UN FORMULARIO ....................................................... 62
PROPIEDADES BÁSICAS DE UN FORMULARIO ........................................ 64
Administración de la duración ....................................................................... 64
Administración de formularios ...................................................................... 65
Apariencia y comportamiento ........................................................................ 65
CONFIGURACIÓN DE UNA APLICACIÓN ................................................... 66
RECURSOS DE UNA APLICACIÓN ............................................................... 68
ATRIBUTOS GLOBALES DE UNA APLICACIÓN ........................................ 70
CICLO DE VIDA DE UNA APLICACIÓN....................................................... 71
Permitir una sola instancia de la aplicación ................................................... 74
Argumentos en la línea de órdenes ................................................................ 75
Pantalla de presentación ................................................................................. 76

CAPÍTULO 4. INTRODUCCIÓN A WINDOWS FORMS ............................... 79

BIBLIOTECA DE CLASES DE WINDOWS FORMS ..................................... 79
CAJAS DE TEXTO, ETIQUETAS Y BOTONES ............................................. 82
Desarrollo de la aplicación ............................................................................. 82

CONTENIDO IX

Objetos ...................................................................................................... 83
Eventos ...................................................................................................... 83
Pasos a seguir durante el desarrollo .......................................................... 83
El formulario, los controles y sus propiedades ......................................... 84
Tecla de acceso ......................................................................................... 85
Botón predeterminado ............................................................................... 85
Responder a los eventos ............................................................................ 85
Enfocar un objeto ........................................................................................... 89
Seleccionar el texto de una caja de texto ....................................................... 90
INTERCEPTAR LA TECLA PULSADA .......................................................... 91
VALIDACIÓN DE UN CAMPO DE TEXTO ................................................... 93
Eventos Validating y Validated ..................................................................... 96
Expresiones regulares .................................................................................... 99
Ejemplos de expresiones regulares ........................................................... 99
El motor de expresiones regulares ............................................................ 102
MaskedTextBox ............................................................................................. 104
EJERCICIOS RESUELTOS ............................................................................... 105
Diseño de una calculadora ............................................................................. 106
Objetos ...................................................................................................... 106
Eventos ...................................................................................................... 106
Pasos a seguir durante el desarrollo .......................................................... 106
Diseño de la ventana y de los controles ......................................................... 107
Establecer una fuente ..................................................................................... 109
Color .............................................................................................................. 109
Escribir el código ........................................................................................... 110
EJERCICIOS PROPUESTOS ............................................................................. 119

CAPÍTULO 5. MENÚS Y BARRAS DE HERRAMIENTAS ............................ 121

ARQUITECTURA .............................................................................................. 121
MENÚS ............................................................................................................... 123
DISEÑO DE UNA BARRA DE MENÚS .......................................................... 124
Crear un menú mediante programación ......................................................... 125
Controlador de un elemento de un menú ....................................................... 128
Aceleradores y nemónicos ............................................................................. 129
IMÁGENES EN CONTROLES ......................................................................... 130
Recursos de una aplicación ............................................................................ 130
LISTA DE TAREAS ........................................................................................... 133
BARRA DE HERRAMIENTAS......................................................................... 134
Diseño de una barra de herramientas ............................................................. 134
BARRA DE ESTADO ........................................................................................ 136
Diseño de una barra de estado ........................................................................ 137

X ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

DESARROLLO DE UN EDITOR DE TEXTOS ............................................... 138
Caja de texto multilínea ................................................................................. 139
Diseño del editor ............................................................................................ 140
El portapapeles ............................................................................................... 142
Objeto My.Computer.Clipboard ............................................................... 142
Trabajar con texto seleccionado ..................................................................... 143
Diseño de la barra de menús .......................................................................... 144
Diseño de la barra de herramientas ................................................................ 146
Asociar un método con un elemento de un menú .......................................... 147
Archivo - Salir........................................................................................... 148
Edición - Cortar......................................................................................... 148
Edición - Copiar ........................................................................................ 149
Edición - Pegar .......................................................................................... 149
Opciones - Fuente ..................................................................................... 149
Opciones - Tamaño ................................................................................... 151
Habilitar o inhabilitar los elementos de un menú ...................................... 152
Marcar el elemento seleccionado de un menú .......................................... 153
Deshacer ......................................................................................................... 154
Recordar las ediciones reversibles ............................................................ 154
Añadir a la interfaz la orden Deshacer ...................................................... 154
Listas desplegables en menús ......................................................................... 155
MENÚS CONTEXTUALES .............................................................................. 159
MENÚS DINÁMICOS ....................................................................................... 161
EJERCICIOS PROPUESTOS ............................................................................. 164

CAPÍTULO 6. CONTROLES Y CAJAS DE DIÁLOGO .................................. 169

CAJAS DE DIÁLOGO MODALES Y NO MODALES .................................... 170
CAJAS DE MENSAJE ....................................................................................... 170
Requerir datos con InputBox ......................................................................... 174
Cómo se utilizan estas cajas de diálogo ......................................................... 175
CAJAS DE DIÁLOGO PERSONALIZADAS ................................................... 176
Crear una caja de diálogo ............................................................................... 177
Mostrar una caja de diálogo ........................................................................... 178
Introducción de datos y recuperación de los mismos ..................................... 179
DIÁLOGO ACERCA DE ................................................................................... 181
FORMULARIO PROPIETARIO........................................................................ 182
OTROS CONTROLES WINDOWS FORMS .................................................... 183
Casillas de verificación .................................................................................. 184
Botones de opción .......................................................................................... 188
Listas simples ................................................................................................. 193
Diseñar la lista ........................................................................................... 194

CONTENIDO XI

Iniciar la lista ............................................................................................. 196
Acceder a los elementos seleccionados ..................................................... 196
Colección de elementos de una lista ......................................................... 197
Clase CheckedListBox .............................................................................. 198
Listas desplegables ......................................................................................... 198
Diseñar la lista ........................................................................................... 200
Iniciar la lista ............................................................................................. 201
Acceder al elemento seleccionado ............................................................ 201
Colección de elementos de una lista desplegable ..................................... 202
Controles de rango definido ........................................................................... 203
ScrollBar ................................................................................................... 203
TrackBar ................................................................................................... 207
ProgressBar ............................................................................................... 208
Control con pestañas ...................................................................................... 210
Gestión de fechas ........................................................................................... 211
FlowLayoutPanel y TableLayoutPanel .......................................................... 213
CAJAS DE DIÁLOGO ESTÁNDAR ................................................................. 216
Cajas de diálogo Abrir y Guardar .................................................................. 217
Caja de diálogo Color .................................................................................... 220
Caja de diálogo Fuente ................................................................................... 221
REDIMENSIONAR UN COMPONENTE ......................................................... 222
TEMPORIZADORES ......................................................................................... 223
EJERCICIOS RESUELTOS ............................................................................... 227
EJERCICIOS PROPUESTOS ............................................................................. 238

CAPÍTULO 7. TABLAS Y ÁRBOLES ................................................................ 241

TABLAS ............................................................................................................. 241
Arquitectura de un control DataGridView ..................................................... 243
Construir una tabla ......................................................................................... 244
Añadir las columnas a la tabla ....................................................................... 245
Iniciar la tabla ................................................................................................. 246
Tamaño de las celdas ..................................................................................... 252
Acceder al valor de la celda seleccionada ...................................................... 253
ÁRBOLES ........................................................................................................... 254
Arquitectura de un árbol ................................................................................ 255
Construir un árbol .......................................................................................... 255
Añadir nodos a un árbol ................................................................................. 256
Imágenes para los nodos del árbol ................................................................. 257
Iniciar el árbol ................................................................................................ 258
Acceder al nodo seleccionado ........................................................................ 260
Recorrer todos los nodos del árbol ................................................................. 264

XII ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Añadir y borrar nodos .................................................................................... 264
Añadir un nodo ......................................................................................... 265
Borrar el nodo seleccionado ...................................................................... 268
Borrar todos los nodos excepto la raíz ...................................................... 268
Personalizar el aspecto de un árbol ................................................................ 269
VISTAS DE UNA LISTA ................................................................................... 269
Personalizar el aspecto de una vista ............................................................... 270
La colección Columns .................................................................................... 271
Elemento de la lista ........................................................................................ 272
La colección Items ......................................................................................... 273
Un ejemplo con ListView, TreeView y SplitContainer ................................. 273
EJERCICIOS RESUELTOS ............................................................................... 276
EJERCICIOS PROPUESTOS ............................................................................. 292

CAPÍTULO 8. DIBUJAR Y PINTAR .................................................................. 293

SERVICIOS DE GDI+........................................................................................ 295
OBJETOS DE DIBUJO BÁSICOS .................................................................... 296
Objeto Graphics ............................................................................................. 298
Objeto Color ................................................................................................... 299
Objeto Pen ...................................................................................................... 300
Objeto Brush .................................................................................................. 301
Objeto Point ................................................................................................... 302
Objeto Rectangle ............................................................................................ 302
Objeto Font .................................................................................................... 303
Objeto GraphicsPath ...................................................................................... 304
MÉTODOS DE DIBUJO .................................................................................... 304
Líneas y rectángulos ....................................................................................... 304
Elipses y arcos ................................................................................................ 305
Tartas .............................................................................................................. 306
Polígonos ........................................................................................................ 306
Curvas flexibles .............................................................................................. 307
Trazados ......................................................................................................... 308
Regiones ......................................................................................................... 308
GRÁFICOS PERSISTENTES ............................................................................ 311
SISTEMAS DE COORDENADAS Y TRANSFORMACIONES ...................... 313
Tipos de sistemas de coordenadas .................................................................. 317
Transformaciones de color ............................................................................. 318
MOSTRAR IMÁGENES .................................................................................... 320
Mapas de bits ................................................................................................. 320
Cargar y mostrar un mapa de bits .................................................................. 322
Intercambiar imágenes a través del portapapeles ........................................... 327

CONTENIDO XIII

CAMBIAR LA FORMA DEL PUNTERO DEL RATÓN ................................. 329
EJERCICIOS RESUELTOS ............................................................................... 330
EJERCICIOS PROPUESTOS ............................................................................. 340

CAPÍTULO 9. INTERFAZ PARA MÚLTIPLES DOCUMENTOS ................. 343

CREACIÓN DE UNA APLICACIÓN MDI ....................................................... 344
Organizar los formularios hijo ....................................................................... 347
EDITOR DE TEXTO MDI ................................................................................. 348
Formulario padre ............................................................................................ 348
Formulario hijo .............................................................................................. 350
Vincular código con los controles .................................................................. 352
Iniciar y finalizar la aplicación.................................................................. 353
Nuevo documento ..................................................................................... 353
Abrir un documento .................................................................................. 354
Guardar un documento .............................................................................. 355
Guardar como ............................................................................................ 356
Imprimir un documento ............................................................................ 357
Cortar, copiar y pegar ............................................................................... 359
Recordar las ediciones reversibles ............................................................ 360
Barras de herramientas y de estado ........................................................... 361
Menú Ventana ........................................................................................... 362
Selección actual del texto .......................................................................... 363
El documento ha cambiado ....................................................................... 365
Operaciones de arrastrar y soltar ............................................................... 366
EJERCICIOS RESUELTOS ............................................................................... 366
EJERCICIOS PROPUESTOS ............................................................................. 371

CAPÍTULO 10. CONSTRUCCIÓN DE CONTROLES ......................................... 373

REUTILIZACIÓN DE CONTROLES EXISTENTES ....................................... 373
Control TextBox extendido ............................................................................ 374
Clasificación de las propiedades de un control .............................................. 379
CONTROLES DE USUARIO ............................................................................ 379
Construir el control de usuario ....................................................................... 380
Añadir propiedades ................................................................................... 381
Añadir métodos ......................................................................................... 382
Añadir eventos .......................................................................................... 383
Opciones fecha-hora alarma o actual ........................................................ 383
Verificar el control de usuario ........................................................................ 384
EJERCICIOS RESUELTOS ............................................................................... 386
EJERCICIOS PROPUESTOS ............................................................................. 389

XIV ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

CAPÍTULO 11. PROGRAMACIÓN CON HILOS ............................................ 391

ESPACIO DE NOMBRES System.Threading ................................................... 392
Clase Thread .................................................................................................. 395
Resumen de los métodos y propiedades de Thread ........................................ 398
Estados de un hilo .......................................................................................... 398
ACCESO A CONTROLES DESDE HILOS ...................................................... 399
Delegados ....................................................................................................... 399
Componente BackgroundWorker ................................................................... 404
Ejecutar una tarea de forma asíncrona ...................................................... 405
Notificar el progreso a la interfaz gráfica del usuario ............................... 406
Recuperar el estado después de la finalización de la tarea ........................ 407
Cancelación anticipada ............................................................................. 407
MECANISMOS DE SINCRONIZACIÓN ......................................................... 408
Objetos de sincronización .............................................................................. 409
Secciones críticas ...................................................................................... 410
Controladores de espera ............................................................................ 412
DETENER UN HILO DE FORMA CONTROLADA ....................................... 414
EJERCICIOS RESUELTOS ............................................................................... 417
EJERCICIOS PROPUESTOS ............................................................................. 420

PARTE 3. ACCESO A DATOS ............................................... 421

CAPÍTULO 12. ENLACE DE DATOS EN WINDOWS FORMS ..................... 423

ASPECTOS BÁSICOS ....................................................................................... 423
Enlace de datos manual .................................................................................. 423
Notificar cuándo cambia una propiedad ........................................................ 427
Enlace de datos con las clases de .NET ......................................................... 430
La clase Binding ....................................................................................... 431
Tipos de enlace ......................................................................................... 432
Componente BindingSource ..................................................................... 432
Notificación de cambios en un enlace de Windows Forms ...................... 433
Crear un enlace ......................................................................................... 433
Enlaces con otros controles .................................................................. 435
Aplicar conversiones ............................................................................ 435
ORÍGENES DE DATOS COMPATIBLES CON WINDOWS FORMS ........... 439
Enlace a colecciones de objetos ..................................................................... 442
List ............................................................................................................ 442
BindingList ............................................................................................... 447
BindingSource .......................................................................................... 451
ACCEDIENDO A LOS DATOS ........................................................................ 454

CONTENIDO XV

Ventana de orígenes de datos ......................................................................... 457
Vinculación maestro-detalle ........................................................................... 461
Operaciones con los datos .............................................................................. 465
Elemento actual ......................................................................................... 465
Navegar ..................................................................................................... 466
Ordenación, filtrado y búsqueda ............................................................... 469
BindingListView ............................................................................................ 471
Elemento actual de la vista ........................................................................ 472
Ordenar ..................................................................................................... 473
Filtrar ........................................................................................................ 474
Buscar ....................................................................................................... 474
Datos introducidos por el usuario .................................................................. 475
Error en los datos ...................................................................................... 477
Validación ................................................................................................. 478
Datos que no necesitan validación ............................................................ 479

CAPÍTULO 13. ACCESO A UNA BASE DE DATOS ....................................... 487

SQL ..................................................................................................................... 488
Crear una base de datos .................................................................................. 488
Crear una tabla ............................................................................................... 488
Escribir datos en la tabla ................................................................................ 490
Modificar datos de una tabla .......................................................................... 490
Borrar registros de una tabla .......................................................................... 491
Seleccionar datos de una tabla ....................................................................... 491
Crear una base de datos .................................................................................. 493
Base de datos Microsoft Access ................................................................ 493
Base de datos Microsoft SQL Server ........................................................ 495
ADO.NET ........................................................................................................... 496
Componentes de ADO.NET ........................................................................... 497
Conjunto de datos........................................................................................... 498
Proveedor de datos ......................................................................................... 500
Objeto conexión ........................................................................................ 501
Objeto orden ............................................................................................. 503
Objeto lector de datos ............................................................................... 503
Adaptador de datos ................................................................................... 504
Modos de conexión ........................................................................................ 506
Probando una conexión .................................................................................. 508
ACCESO CONECTADO A UNA BASE DE DATOS ...................................... 509
ATAQUES DE INYECCIÓN DE CÓDIGO SQL .............................................. 512
Órdenes parametrizadas ................................................................................. 516
Procedimientos almacenados ......................................................................... 517

XVI ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

TRANSACCIONES ............................................................................................ 518
Transacción implícita TransactionScope ....................................................... 519
Transacciones explícitas ................................................................................. 523
ESCRIBIR CÓDIGO INDEPENDIENTE DEL PROVEEDOR ........................ 525
CONSTRUIR COMPONENTES DE ACCESO A DATOS ............................... 531
Capa de presentación ..................................................................................... 533
Operaciones contra la base de datos ............................................................... 533
Objetos de negocio ......................................................................................... 535
Capa de acceso a datos ................................................................................... 537
Capa de lógica de negocio ............................................................................. 541
Diseño de la capa de presentación ................................................................. 542
Lógica de interacción con la capa de presentación ........................................ 544
Desacoplar la IU del resto de la aplicación .................................................... 547
Adaptar la colección de objetos ................................................................ 548
Capa de lógica de negocio ........................................................................ 551
Lógica de interacción con la capa de presentación ................................... 554
Validación ...................................................................................................... 555
ACCESO DESCONECTADO A UNA BASE DE DATOS ............................... 555
ASISTENTES DE VISUAL STUDIO ................................................................ 559
Crear la infraestructura para el acceso a la base de datos .............................. 561
Crear el conjunto de datos .............................................................................. 566
Agregar un control rejilla al formulario ......................................................... 567
Código subyacente ......................................................................................... 568
Asistente para configurar orígenes de datos ................................................... 570
VISTA EN DETALLE DEL CONJUNTO DE DATOS .................................... 574
Diseño del formulario .................................................................................... 576
Vincular las cajas de texto con el conjunto de datos ...................................... 577
Controles de navegación ................................................................................ 579
Añadir, borrar y buscar datos ......................................................................... 582
CONTROL BindingNavigator ............................................................................ 586
DISEÑO MAESTRO-DETALLE ....................................................................... 587
EJERCICIOS RESUELTOS ............................................................................... 596
EJERCICIOS PROPUESTOS ............................................................................. 616

CAPÍTULO 14. LINQ ............................................................................................ 619

RECURSOS DEL LENGUAJE COMPATIBLES CON LINQ.......................... 619
Declaración implícita de variables locales ..................................................... 620
Matrices de tipos definidos de forma implícita .............................................. 620
Tipos anónimos .............................................................................................. 620
Propiedades autoimplementadas .................................................................... 621
Iniciadores de objetos y colecciones .............................................................. 621

CONTENIDO XVII

Métodos extensores ........................................................................................ 622
Expresiones lambda ....................................................................................... 623
El delegado Func(Of T, TResu) ...................................................................... 625
Operadores de consulta .................................................................................. 626
Árboles de expresiones lambda ...................................................................... 629
EXPRESIONES DE CONSULTA ...................................................................... 632
Compilación de una expresión de consulta .................................................... 635
Sintaxis de las expresiones de consulta .......................................................... 637
Cláusula Group ......................................................................................... 637
Productos cartesianos ................................................................................ 638
Cláusula Join ............................................................................................. 638
Cláusula Into ............................................................................................. 639
Cláusula Let .............................................................................................. 640
PROVEEDORES DE LINQ ............................................................................... 641
ENTITY FRAMEWORK ................................................................................... 642
MARCO DE ENTIDADES DE ADO.NET ........................................................ 643
Consultar un modelo de objetos ..................................................................... 647
ACCESO A UNA BASE DE DATOS ................................................................ 651
Conectarse a la base de datos ......................................................................... 652
Generar el modelo de entidades ..................................................................... 652
Las clases de entidad y el contexto de objetos ............................................... 661
Propiedades de navegación ............................................................................ 664
Mostrar datos en una interfaz gráfica ............................................................. 666
Una aplicación con interfaz gráfica ................................................................ 667
Vincular controles con el origen de datos ...................................................... 668
Proveedor de datos ......................................................................................... 669
Filtros ............................................................................................................. 673
Contextos de corta duración ........................................................................... 675
REALIZAR CAMBIOS EN LOS DATOS ......................................................... 675
Modificar filas en la base de datos ................................................................. 680
Insertar filas en la base de datos ..................................................................... 682
Borrar filas en la base de datos ...................................................................... 685
Problemas de concurrencia ............................................................................ 689
El seguimiento de cambios ............................................................................. 695
CODE FIRST: UN NUEVO MODELO DE TRABAJO .................................... 700
Aplicando Code First ..................................................................................... 702
Definir el modelo de entidades ................................................................. 702
Definir el contexto de objetos ................................................................... 703
Anotaciones en datos y convenciones predeterminadas ........................... 704
Cadena de conexión .................................................................................. 705
Generar la base de datos............................................................................ 707
Validación de entidades ................................................................................. 710
Atributos de anotación de datos ................................................................ 710

XVIII ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Interfaz fluida ............................................................................................ 712
Code First desde una base de datos existente ................................................. 713
Cadena de conexión .................................................................................. 715
Contexto de objetos................................................................................... 715
El modelo de entidades ............................................................................. 716
Acceder a los datos ................................................................................... 717
EJERCICIOS RESUELTOS ............................................................................... 718
EJERCICIOS PROPUESTOS ............................................................................. 720

PARTE 4. APLICACIONES PARA INTERNET .................. 721

CAPÍTULO 15. ASP.NET ..................................................................................... 723

ASP.NET ............................................................................................................. 725
Conceptos básicos de ASP.NET .................................................................... 726
Páginas web ASP.NET .................................................................................. 727
Controles HTML ............................................................................................ 728
Controles de servidor web .............................................................................. 729
Presentación del texto ............................................................................... 730
Controles de entrada ................................................................................. 730
Envío y devolución ................................................................................... 732
Exploración ............................................................................................... 733
Controles de diseño ................................................................................... 733
Selección de fechas ................................................................................... 733
Controles con enlaces a datos ................................................................... 734
Controles de validación ............................................................................. 734
Un ejemplo de diseño de una página web ASP.NET ..................................... 735
Software para el desarrollo de aplicaciones ASP.NET .................................. 737
Componentes de una página web ASP.NET .................................................. 739
¿Cómo se publica una aplicación web? ......................................................... 741
Crear un directorio virtual ......................................................................... 742
Convertir la aplicación en una aplicación web de IIS ............................... 744
Seguridad asociada con una carpeta .......................................................... 746
Modelo de ejecución de una página web ASP.NET ...................................... 747
Lógica de negocio .......................................................................................... 749
Enlaces de datos en ASP.NET ....................................................................... 753
Expresiones de enlace de datos ................................................................. 753
Controles de lista enlazados a datos .......................................................... 754
Modelo de enlace de ASP.NET ................................................................ 757
GridView ............................................................................................. 759
Seleccionar datos ................................................................................. 761
Actualizar y eliminar datos .................................................................. 762

CONTENIDO XIX

Insertar datos (FormView) ................................................................... 765
Estado del modelo y validación ........................................................... 767
Asistente para publicar un proyecto web ASP.NET ...................................... 768

CAPÍTULO 16. FORMULARIOS WEB ............................................................. 773

APLICACIÓN WEB ASP.NET .......................................................................... 774
Crear la capa de acceso a datos ...................................................................... 778
Añadir un nuevo formulario web ................................................................... 780
Descripción de un formulario web ASP.NET ........................................... 781
Agregar controles y texto a la página ............................................................. 782
Ciclo de vida de una página ........................................................................... 784
Modelo de eventos de ASP.NET ................................................................... 787
Añadir los controladores de eventos .............................................................. 787
Obtener acceso a la base de datos .................................................................. 790
CONTROLES DE VALIDACIÓN ..................................................................... 792
HERRAMIENTA DE PRECOMPILACIÓN ASP.NET .................................... 796
PROCESAMIENTO DE FORMULARIOS ....................................................... 798
Formato de la petición HTTP ......................................................................... 798
Petición HTTP get ..................................................................................... 799
Petición HTTP post ................................................................................... 800
Respuestas en el protocolo HTTP .................................................................. 801
Contexto de un formulario web...................................................................... 801
Redireccionar una solicitud a otra URL ......................................................... 803
ESTADO DE UNA PÁGINA ASP.NET ............................................................ 803
Administración de estado en el cliente ........................................................... 804
Cookies ..................................................................................................... 804
Cadenas de consulta .................................................................................. 806
Campos de formulario ocultos .................................................................. 807
Estado de vista .......................................................................................... 807
Administración de estado en el servidor ........................................................ 809
Estado de aplicación ................................................................................. 810
Estado de sesión ........................................................................................ 810
Bases de datos ........................................................................................... 811
MEJORANDO EL RENDIMIENTO EN EL SERVIDOR ................................. 812
Almacenamiento en la caché de resultados .................................................... 812
Configurar el almacenamiento en caché a nivel de página ....................... 813
Actualización dinámica de fragmentos de una página en caché ............... 814
Configurar el almacenamiento en caché por programación ...................... 815
Almacenamiento en caché de datos procedentes de SQL Server ................ 816
Reducir la información hacia y desde el servidor .......................................... 817
CONTROLES DE SERVIDOR COMO ORIGEN DE DATOS ......................... 819

XX ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

SQL y desarrollo web .................................................................................... 820
Control SqlDataSource ............................................................................. 822
Responder a los eventos ............................................................................ 826
LINQ y desarrollo web .................................................................................. 828
Control EntityDataSource ......................................................................... 829
Responder a los eventos ............................................................................ 835
Generar la consulta Select mediante código ............................................. 836
Realizar cambios en los datos ................................................................... 838
Actualizar y eliminar filas en la base de datos ..................................... 839
Controlar los errores en una página ASP.NET .................................... 841
Insertar filas en la base de datos .......................................................... 841
MODELO DE ENLACE DE ASP.NET ............................................................. 847
Realizar cambios en los datos ................................................................... 852
Actualizar y eliminar filas en la base de datos ..................................... 852
Controlar los errores en una página ASP.NET .................................... 855
Insertar filas en la base de datos .......................................................... 855
Capa de la lógica de negocio .......................................................................... 860
Paginación, ordenación y filtrado .................................................................. 863
EJERCICIOS PROPUESTOS ............................................................................. 869

CAPÍTULO 17. SERVICIOS WEB ...................................................................... 871

Integrar un servicio web en una aplicación .................................................... 872
SERVICIOS WCF .............................................................................................. 873
MODELO DE PROGRAMACIÓN DE WCF .................................................... 874
Implementar un servicio WCF ....................................................................... 875
Definir un contrato .................................................................................... 876
Configuración del servicio WCF .............................................................. 882
Implementar un cliente WCF ......................................................................... 884
Configuración del cliente WCF ................................................................ 888
Obtener acceso al servicio web ................................................................. 888
Ejecución asíncrona .................................................................................. 890
Seguridad en WCF ......................................................................................... 893
SERVICIOS WEB Y LINQ ................................................................................ 894
Arquitectura de N capas lógicas y N niveles físicos ...................................... 895
Crear la base de datos ..................................................................................... 896
Crear el servicio WCF .................................................................................... 897
Cliente WCF .................................................................................................. 904
Llenar la lista ............................................................................................. 907
Mostrar datos ............................................................................................ 908
Actualizar datos ........................................................................................ 909
Cambiar foto ............................................................................................. 909

CONTENIDO XXI

Agregar datos ............................................................................................ 910
Borrar datos ............................................................................................... 911
Errores inesperados ................................................................................... 911
EJERCICIOS PROPUESTOS ............................................................................. 912

CAPÍTULO 18. SEGURIDAD DE APLICACIONES ASP.NET ...................... 919

ARQUITECTURA ASP.NET ............................................................................. 920
CICLO DE VIDA DE UNA APLICACIÓN ASP.NET ..................................... 921
GRUPOS DE APLICACIONES EN IIS ............................................................. 922
AUTENTICACIÓN DE WINDOWS ................................................................. 923
AUTORIZACIÓN ............................................................................................... 930
SUPLANTACIÓN DE IDENTIDAD ................................................................. 932
AUTENTICACIÓN MEDIANTE FORMULARIOS ......................................... 933
CONTROLES PARA INICIO DE SESIÓN ....................................................... 938
SERVICIO DE SUSCRIPCIONES..................................................................... 951
SEGURIDAD EN LA TRANSMISIÓN DE DATOS ........................................ 958
Criptografía simétrica ..................................................................................... 959
Criptografía asimétrica ................................................................................... 959
AUTENTICACIÓN USANDO CERTIFICADOS ............................................. 961
Instalar un certificado SSL en IIS 7.0 o superior ........................................... 963
Certificado de cliente rechazado .................................................................... 968

CAPÍTULO 19. PÁGINAS MAESTRAS ............................................................. 969

ESTRUCTURA DE UNA PÁGINA MAESTRA ............................................... 969
Controles de usuario web ............................................................................... 974
Mejorar el aspecto de la interfaz .................................................................... 979
Temas y máscaras en ASP.NET ..................................................................... 980
Perfiles ........................................................................................................... 983
EJERCICIOS RESUELTOS ............................................................................... 987
Base de datos .................................................................................................. 988
Cliente web .................................................................................................... 992

CAPÍTULO 20. AJAX ........................................................................................... 1001

FUNDAMENTOS DE AJAX ............................................................................. 1003
XMLHttpRequest ........................................................................................... 1004
AJAX con ASP.NET ...................................................................................... 1012
GENERACIÓN DE CÓDIGO JAVASCRIPT ................................................... 1014
Fichero JavaScript .......................................................................................... 1015

XXII ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Vincular un evento con una función JavaScript ............................................. 1015
Inyectar código JavaScript desde el lado del servidor ................................... 1017
ASP.NET AJAX ................................................................................................. 1018
Crear un sitio web ASP.NET AJAX ................................................................... 1019
Clase ScriptManager ...................................................................................... 1020
Clases ScriptManager y ScriptManagerProxy ............................................... 1028
Clase UpdatePanel ......................................................................................... 1028
Clase AsyncPostBackTrigger ......................................................................... 1030
Clase UpdateProgress..................................................................................... 1031
Cancelar una llamada asíncrona ..................................................................... 1033
Clase Timer .................................................................................................... 1034
Servicios web ................................................................................................. 1034
Métodos de página ......................................................................................... 1038
EJERCICIOS RESUELTOS ............................................................................... 1040

PARTE 5. ACERCA DEL MATERIAL ADICIONAL

Y DE LOS APÉNDICES ........................................................ 1043

HERRAMIENTAS DE DESARROLLO .............................................................. 1045
PÁGINAS WEB ...................................................................................................... 1061
INTERNACIONALIZACIÓN .............................................................................. 1093
.NET PARA LINUX ............................................................................................... 1103
ÍNDICE ................................................................................................................... 1105

PRÓLOGO

Visual Basic es hoy el lenguaje de programación más popular del mundo. Desde
que Microsoft liberó Visual Basic 1.0 en 1991 han tenido lugar muchos cambios.
Visual Basic 1.0 revolucionó la forma de desarrollar software para Windows;
desmitificó el proceso de desarrollo de aplicaciones con interfaz gráfica de usua-
rio y abrió este tipo de programación a las masas. En sus posteriores versiones,
Visual Basic ha continuado proporcionando nuevas características que facilitaron
la creación de aplicaciones para Windows cada vez más potentes; por ejemplo, la
versión 3.0 introdujo el control de datos para facilitar el acceso a bases de datos, y
la versión 4.0 mejoró y potenció este acceso con los objetos DAO. Con la apari-
ción de Windows 95, Microsoft liberó Visual Basic 4.0 que abrió la puerta al
desarrollo de aplicaciones de 32 bits y a la creación de DLL. La versión 5.0 mejo-
ró la productividad con la incorporación de la ayuda inteligente y la introducción
de los controles ActiveX. Posteriormente la versión 6.0 nos introdujo en la pro-
gramación de Internet con las aplicaciones DHTML y el objeto WebClass. Des-
pués dispusimos de Visual Basic .NET que vino a revolucionar el mundo de las
comunicaciones permitiendo escribir aplicaciones escalables para Internet. Siguie-
ron Visual Basic 2005, 2008, 2010 y ahora Visual Basic 2012, una evolución del
lenguaje Visual Basic, que se diseñó para generar aplicaciones con seguridad de
tipos y orientadas a objetos de manera productiva. Esta generación de Visual Ba-
sic continúa la tradición de ofrecer una manera rápida y fácil de crear aplicaciones
basadas en .NET Framework.

Visual Basic .NET, después Visual Basic 2005, 2008, 2010 y ahora Visual
Basic 2012, cambian la idea de programar de las versiones iniciales. Ahora se re-
quiere una programación orientada a objetos, lo que obligará al desarrollador a
programar de forma ordenada, con unas reglas metodológicas de programación
análogas a las de otros lenguajes de programación orientados a objetos como C++,
C# o Java por citar algunos de los más utilizados.

XXIV ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

La palabra “Visual” hace referencia, desde el lado del diseño, al método que
se utiliza para crear la interfaz gráfica de usuario si se dispone de la herramienta
adecuada (con Microsoft Visual Studio se utiliza el ratón para arrastrar y colocar
los objetos prefabricados en el lugar deseado dentro de un formulario) y desde el
lado de la ejecución, al aspecto gráfico que toman los objetos cuando se ejecuta el
código que los crea, objetos que formarán la interfaz gráfica que el usuario de la
aplicación utiliza para acceder a los servicios que ésta ofrece. La palabra “Basic”
hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic Instruction
Code
), un lenguaje utilizado por más programadores que ningún otro lenguaje en
la historia de la informática. Visual Basic ha evolucionado a partir del lenguaje
BASIC original y ahora está soportado por una biblioteca orientada a objetos di-
rectamente relacionada con la interfaz gráfica de Windows. Y “NET” hace refe-
rencia al ámbito donde operarán nuestras aplicaciones web (Network - red).

Resumiendo, Visual Basic es un lenguaje orientado a objetos seguro y ele-
gante que permite a los desarrolladores construir un amplio rango de aplicaciones
seguras y robustas que se ejecutan sobre .NET Framework. .NET Framework (que
incluye entre otras cosas la biblioteca básica de .NET y el compilador Visual Ba-
sic) junto con otros componentes de desarrollo, como ASP.NET (formularios web
y servicios web) y ADO.NET, forman un paquete de desarrollo denominado Mi-
crosoft Visual Studio
que podemos utilizar para crear aplicaciones Windows tra-
dicionales (aplicaciones de escritorio que muestren una interfaz gráfica al usuario)
y aplicaciones para la Web. Para ello, este paquete proporciona un editor de códi-
go avanzado, diseñadores de interfaces de usuario apropiados, depurador integra-
do y muchas otras utilidades para facilitar un desarrollo rápido de aplicaciones.

Para quién es este libro

Este libro está pensado para aquellas personas que quieran aprender a desarrollar
aplicaciones que muestren una interfaz gráfica al usuario, aplicaciones para acce-
so a bases de datos y para Internet (páginas web). Para ello, ¿qué debe hacer el
lector? Pues simplemente leer ordenadamente los capítulos del libro, resolviendo
cada uno de los ejemplos que en ellos se detallan.

Evidentemente, no vamos a enseñar a programar aquí, por eso es necesario
tener algún tipo de experiencia con un lenguaje de programación orientado a obje-
tos (Visual Basic, C#, Java, etc., son lenguajes orientados a objetos). Haber pro-
gramado en .NET y con Visual Basic sería lo ideal, así como tener conocimientos
de HTML y XML. Estos requisitos son materia de mis otros libros Microsoft Vi-
sual Basic - Lenguaje y aplicaciones
y Microsoft Visual Basic - Curso de pro-
gramación
, ambos editados también por RA-MA y Alfaomega Grupo Editor.

PRÓLOGO XXV

Microsoft Visual Basic - Lenguaje y aplicaciones se centra en la programa-
ción básica: tipos, sentencias, matrices, métodos, ficheros, etc., y hace una intro-
ducción a las interfaces gráficas, a las bases de datos y a las aplicaciones para
Internet, y Microsoft Visual Basic - Curso de programación cubre la programa-
ción básica (expuesta en menor medida en el libro anterior) y la programación
orientada a objetos (POO) en detalle: clases, clases derivadas, interfaces, espacios
de nombres, excepciones, etc.; después, utilizando la POO, añade otros temas co-
mo estructuras dinámicas de datos, algoritmos de uso común, hilos (programación
concurrente), etc. Éste sí que es un libro de programación con Visual Basic en to-
da su extensión. Puede ver más detalles de cada uno de ellos en mi web:
www.fjceballos.es.

Cómo está organizado el libro

El libro se ha estructurado en 20 capítulos más algunos apéndices que a continua-
ción se relacionan. Los capítulos 1 y 2 nos introducen en .NET y en el desarrollo
de aplicaciones de escritorio. Los capítulos 3 al 11 nos enseñan a desarrollar apli-
caciones de escritorio que muestran una interfaz de ventanas al usuario. Los capí-
tulos 12 al 14 cubren el enlace a datos, el acceso a bases de datos (ADO.NET), el
lenguaje de consultas integrado (LINQ) y el acceso a bases de datos con Entity
Framework. Y los capítulos 15 al 20 nos enseñan cómo desarrollar aplicaciones
para Internet (ASP.NET) a base de formularios web, servicios web WCF y AJAX.

CAPÍTULO 1. INTRODUCCIÓN A MICROSOFT .NET
CAPÍTULO 2. MI PRIMERA APLICACIÓN
CAPÍTULO 3. APLICACIÓN WINDOWS FORMS
CAPÍTULO 4. INTRODUCCIÓN A WINDOWS FORMS
CAPÍTULO 5. MENÚS Y BARRAS DE HERRAMIENTAS
CAPÍTULO 6. CONTROLES Y CAJAS DE DIÁLOGO
CAPÍTULO 7. TABLAS Y ÁRBOLES
CAPÍTULO 8. DIBUJAR Y PINTAR
CAPÍTULO 9. INTERFAZ PARA MÚLTIPLES DOCUMENTOS
CAPÍTULO 10. CONSTRUCCIÓN DE CONTROLES
CAPÍTULO 11. PROGRAMACIÓN CON HILOS
CAPÍTULO 12. ENLACE DE DATOS EN WINDOWS FORMS
CAPÍTULO 13. ACCESO A UNA BASE DE DATOS
CAPÍTULO 14. LINQ
CAPÍTULO 15. ASP.NET
CAPÍTULO 16. FORMULARIOS WEB
CAPÍTULO 17. SERVICIOS WEB
CAPÍTULO 18. SEGURIDAD DE APLICACIONES ASP.NET
CAPÍTULO 19. PÁGINAS MAESTRAS
CAPÍTULO 20. AJAX
APÉNDICE A. HERRAMIENTAS DE DESARROLLO
APÉNDICE B. PÁGINAS WEB
APÉNDICE C. INTERNACIONALIZACIÓN
APÉNDICE D. .NET PARA LINUX

XXVI ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Qué se necesita para utilizar este libro

Este libro ha sido escrito utilizando el paquete Microsoft .NET Framework Softwa-
re Development Kit
(SDK) versión 4.5 que forma parte del entorno de desarrollo
Microsoft Visual Studio 2012 que incluye todo lo necesario para escribir, construir,
verificar y ejecutar aplicaciones .NET. Por lo tanto, basta con que instale en su má-
quina Microsoft Visual Studio 2012, o superior, en cualquiera de sus versiones o,
como alternativa, descargue desde http://www.microsoft.com/express/ los paquetes
Visual Studio Express 2012 for Windows Desktop y for Web e instálelos (opcio-
nalmente puede instalar también SQL Server 2012 Express, caso del autor).

Nota: para probar las aplicaciones web se recomienda instalar el servidor de
aplicaciones IIS (Internet Information Services) que incluye Windows (Inicio >
Panel de control > Agregar y quitar programas > Windows
). Esto tiene que ha-
cerlo antes de instalar Microsoft Visual Studio 2012 o Visual Studio Express 2012
for Web
.

Sobre los ejemplos del libro

El código fuente de todos los ejemplos del libro podrá descargarse, según se indi-
ca en los apéndices, de la web www.ra-ma.es desde la página web correspondiente
al libro.

Agradecimientos

He recibido ayuda de algunas personas durante la preparación de este libro y, por
ello, les estoy francamente agradecido. También deseo expresar mi agradecimien-
to a Microsoft Ibérica por poner a mi disposición, en particular, y de todos los lec-
tores, en general, el software que el estudio de esta obra requiere.

Francisco Javier Ceballos Sierra

http://www.fjceballos.es/

P A R T E

Introducción

Introducción a Microsoft .NET
Mi primera aplicación

P A R T E

Interfaces gráficas

Aplicación Windows Forms
Introducción a Windows Forms
Menús y barras de herramientas
Controles y cajas de diálogo
Tablas y árboles
Dibujar y pintar
Interfaz para múltiples documentos
Construcción de controles
Programación con hilos

P A R T E

Acceso a datos

Enlace de datos en Windows Forms
Acceso a una base de datos
LINQ

P A R T E

Aplicaciones para Internet

ASP.NET
Formularios web
Servicios web
Seguridad de aplicaciones ASP.NET
Páginas maestras
AJAX

P A R T E

Acerca del material adicional

Herramientas de desarrollo
Páginas web
Internacionalización
.NET para Linux
Índice

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->