• No se han encontrado resultados

Ceballos: Enciclopedia de Microsoft Visual Basic 3Ed

N/A
N/A
Protected

Academic year: 2021

Share "Ceballos: Enciclopedia de Microsoft Visual Basic 3Ed"

Copied!
120
0
0

Texto completo

(1)
(2)
(3)

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á

(4)

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: [email protected] 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

(5)

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.

(6)
(7)

CONTENIDO

PRÓLOGO ... XXIII

PARTE 1. INTRODUCCIÓN ... 1

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

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 

(8)

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 

(9)

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 

(10)

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 

(11)

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 

(12)

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 

(13)

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 

(14)

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 

(15)

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 

(16)

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 

(17)

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 

(18)

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 

(19)

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 

(20)

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 

(21)

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 

(22)

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

(23)

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 posteusua-riores 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.

(24)

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ápiintegra-do 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 objeobje-tos). 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 ViVi-sual Basic - Curso de pro-gramación, ambos editados también por RA-MA y Alfaomega Grupo Editor.

(25)

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 programaprograma-ció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, algoritco-mos 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 cato-da 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

(26)

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 agradecimien-todos los lec-tores, en general, el software que el estudio de esta obra requiere.

Francisco Javier Ceballos Sierra

(27)

P A R T E







Introducción

 Introducción a Microsoft .NET

 Mi primera aplicación

(28)
(29)

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

(30)
(31)

P A R T E







Acceso a datos

 Enlace de datos en Windows Forms

 Acceso a una base de datos

(32)
(33)

P A R T E







Aplicaciones para Internet

 ASP.NET

 Formularios web

 Servicios web

 Seguridad de aplicaciones ASP.NET

 Páginas maestras

(34)
(35)

P A R T E







Acerca del material adicional

 Herramientas de desarrollo

 Páginas web

 Internacionalización

 .NET para Linux

 Índice

(36)
(37)

APÉNDICE A

F.J.Ceballos/RA-MA

HERRAMIENTAS DE DESARROLLO

Cuando se utiliza un entorno de desarrollo integrado (EDI), lo primero que hay que hacer una vez instalado es asegurarse de que las rutas donde se localizan las herramientas, las bibliotecas, la documentación y los ficheros fuente hayan sido establecidos; algunos EDI sólo requieren la ruta donde se instaló el compilador. Este proceso normalmente se ejecuta automáticamente durante el proceso de ins-talación de dicho entorno. Si no es así, el entorno proporcionará algún menú con las órdenes apropiadas para realizar dicho proceso. Por ejemplo, en los EDI que se presentan a continuación las rutas a las que nos referimos quedan establecidas du-rante la instalación de los mismos.

VISUAL STUDIO

Visual Studio proporciona una variedad de herramientas tanto para desarrollado-res individuales como para equipos de desarrollo.

http://www.microsoft.com/express/

Ediciones Visual Studio Express

Es la nueva línea de productos que expanden Visual Studio ofreciendo herramien-tas ligeras y sencillas de aprender y de usar para aficionados, entusiasherramien-tas y apren-dices que quieren crear sitios Web y aplicaciones para Windows. Su descarga es gratuita y dependiendo del tipo de aplicación a desarrollar optaremos por una u otra herramienta de desarrollo de las siguientes:

 Visual Studio Express for Web.  Visual Studio Express for Windows 8.

(38)

1046 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

 Visual Studio Express for Windows Desktop.  Visual Studio Express for Windows Phone.  Visual Studio Team Foundation Server Express.

Ediciones de Visual Studio para profesionales

Visual Studio en sus versiones professional, premium y ultimate, ofrece una fle-xible herramienta de desarrollo para desarrolladores de aplicaciones de línea de negocio o programadores ocasionales que estén construyendo aplicaciones móvi-les, basadas en Windows o para la Web, soluciones sobre Microsoft Office Sys-tem utilizando Excel, Word e InfoPath, y con herramientas de software de ciclo de vida productivas, integradas y extensibles que permiten a las empresas reducir la complejidad en la creación de soluciones orientadas a servicios. La utilización de estas versiones requiere comprar una licencia.

APLICACIÓN DE CONSOLA

En el capítulo 2 vimos una introducción al desarrollo de aplicaciones con interfaz gráfica de usuario, pero no abordamos el desarrollo de aplicaciones de consola que en ocasiones puede ser útil. Veamos un ejemplo a continuación utilizando cualquiera de las ediciones de Visual Studio.

Para editar y ejecutar el programa HolaMundo utilizando cualquiera de las ediciones de Visual Studio, los pasos a seguir son los siguientes:

1. Partiendo de la página de inicio de MS Visual Visual Basic Express, hacemos clic en Nuevo proyecto... para crear un proyecto nuevo, o bien ejecutamos la orden Archivo > Nuevo proyecto. Esta acción hará que se visualice una ven-tana que mostrará los tipos de plantillas que puede utilizar; la elección de una u otra dependerá del tipo de aplicación que deseemos construir. La figura si-guiente muestra esta ventana:

(39)

APÉNDICE A: ENTORNOS DE DESARROLLO 1047

Para que la ventana anterior muestre la lista Ubicación y la caja Nombre de la

solución tiene que habilitar, si no lo está, la opción “Guardar nuevos

proyec-tos al crearlos”. Para ello, ejecute la orden Herramientas > Opciones >

Pro-yectos y soluciones y seleccione esta opción en la ventana que se visualiza:

Para nuestro ejemplo, elegimos la plantilla “Aplicación de consola”. Después, especificamos el nombre del proyecto y su ubicación; observe que el proyecto será creado en una carpeta con el mismo nombre. A continuación pulsamos el botón Aceptar y obtendremos el esqueleto del proyecto de acuerdo con la plantilla seleccionada. Para cambiar el nombre asignado al fichero .vb, hace-mos clic sobre Module1.vb y utilizando el botón derecho del ratón,

(40)

seleccio-1048 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

namos del menú contextual que se visualiza la orden Cambiar nombre; tam-bién podemos hacer este cambio a través de la ventana de propiedades.

Si necesitáramos añadir un fichero nuevo a este proyecto, haríamos clic con el botón derecho del ratón sobre el nombre del proyecto y seleccionaríamos

Agregar > Nuevo elemento. Después, elegiríamos el tipo de elemento que

deseamos añadir y, finalmente, haríamos clic en el botón Agregar.

2. A continuación editamos el código que compone el programa. Después, antes de compilar la aplicación, podemos verificar que se trata de una aplicación de consola: Proyecto > Propiedades de HolaMundo > Aplicación > Tipo de

(41)

APÉNDICE A: ENTORNOS DE DESARROLLO 1049

3. Para compilar el programa, ejecutamos la orden Generar HolaMundo del me-nú Generar. Finalmente, para ejecutar el programa seleccionamos la orden

Iniciar sin depurar del menú Depurar, o bien pulsamos las teclas Ctrl+F5.

También puede ejecutar el programa seleccionando la orden Iniciar

depura-ción del menú Depurar, o bien pulsando la tecla F5. Los resultados de la

compilación se muestran en la ventana Resultados. La acción de ejecutar el programa acarrea también su compilación si fuera necesario.

DEPURAR UNA APLICACIÓN

¿Por qué se depura una aplicación? Porque los resultados que estamos obteniendo con la misma no son correctos y no sabemos por qué. El proceso de depuración consiste en ejecutar la aplicación paso a paso, indistintamente por sentencias o por métodos, con el fin de observar el flujo seguido durante su ejecución, así como los resultados intermedios que se van sucediendo, con la finalidad de detectar las anomalías que producen un resultado final erróneo.

Por ejemplo, para depurar una aplicación utilizando el depurador del entorno de desarrollo de Visual Studio, ejecute la orden Depurar > Paso por instrucciones y utilice las órdenes del menú Depurar o los botones correspondientes de la barra de herramientas (para saber el significado de cada botón, ponga el puntero del ra-tón sobre cada uno de ellos).

(42)

1050 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

De forma resumida, las órdenes disponibles para depurar una aplicación son las siguientes:

 Iniciar o F5. Inicia la ejecución de la aplicación en modo depuración hasta encontrar un punto de parada o hasta el final si no hay puntos de parada.  Alternar puntos de interrupción o F9. Pone o quita un punto de parada en la

línea sobre la que está el punto de inserción.

 Detener depuración o Mayús+F5. Detiene el proceso de depuración.

 Paso a paso por instrucciones o F11. Ejecuta la aplicación paso a paso. Si la línea a ejecutar coincide con una llamada a un método definido por el usuario, dicho método también se ejecutará paso a paso.

 Paso a paso por procedimientos o F10. Ejecuta la aplicación paso a paso. Si la línea a ejecutar coincide con una llamada a un método definido por el usua-rio, dicho método no se ejecutará paso a paso, sino de una sola vez.

 Paso a paso para salir o Mayús+F11. Cuando un método definido por el usuario ha sido invocado para ejecutarse paso a paso, utilizando esta orden se puede finalizar su ejecución en un solo paso.

 Ejecutar hasta el cursor o Ctrl+F10. Ejecuta el código que hay entre la últi-ma línea ejecutada y la línea donde se encuentra el punto de inserción.  Inspección rápida o Ctrl+Alt+Q. Visualiza el valor de la variable que está

ba-jo el punto de inserción o el valor de la expresión seleccionada (sombreada). Para ejecutar la aplicación en un solo paso, seleccione la orden Iniciar sin

de-purar (Ctrl+F5) del menú Dede-purar.

Además de la barra de herramientas Depurar, dispone también de la barra de herramientas Generar reducida que se muestra en la figura siguiente:

Esta barra de herramientas pone a su disposición las órdenes siguientes:  Generar aplicación. Compila la aplicación y genera el fichero ejecutable

(43)

APÉNDICE A: ENTORNOS DE DESARROLLO 1051

 Generar solución. Compila y genera todos los proyectos que componen la so-lución.

 Cancelar. Detiene el proceso de compilación o de generación del fichero eje-cutable.

ARGUMENTOS EN LA LÍNEA DE ÓRDENES

Si ejecuta una aplicación desde el EDI que requiere argumentos en la línea de ór-denes, ¿dónde se introducen estos argumentos? Haga clic sobre el nombre del proyecto con el botón derecho del ratón y seleccione la orden Propiedades. Des-pués, en la ventana que se visualiza, seleccione el panel Depurar y escriba los ar-gumentos según puede observar en la figura:

CONECTAR A LOCALDB O A SQLEXPRESS

El servidor de base de datos que se instala con Visual Studio es diferente depen-diendo de la versión de Visual Studio que haya instalado:

 Si se utiliza Visual Studio 2010 se creará una base de datos SQL Express.  Si se utiliza Visual Studio 2012 se creará una base de datos LocalDB. Esto no

significa que no pueda utilizar una base de datos SQL Express.

SQL Server Express

SQL Server 2012 Express es el motor de base de datos gratuito, potente, pero sen-cillo, que se integra perfectamente con el resto de productos Express. Se trata de

(44)

1052 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

una versión aligerada de la nueva generación de SQL Server que puede descargar gratuitamente del sitio web de Microsoft.

Este producto tiene el mismo motor de base de datos que toda la familia SQL Server y utiliza el mismo lenguaje SQL. Otra característica interesante es la movi-lidad de las bases de datos de un servidor a otro con XCOPY. Con esta utimovi-lidad podemos mover un fichero MDF de una máquina a otra a cualquier ubicación dentro de su sistema de ficheros, quedando la base de datos movida lista para tra-bajar. Para utilizar esta base de datos deberemos hacer uso de la opción

Attach-DBFilename en la cadena de conexión, según se muestra a continuación:

connectionString="Data Source=.\sqlexpress;Initial Catalog=; Integrated Security=True;AttachDBFileName=C:\bd\bd_editorial.mdf"

La entrada Data Source especifica el servidor de base de datos que vamos a utilizar y AttachDBFilename, la localización del fichero de base de datos. Ob-sérvese que la entrada Initial Catalog está vacía.

Para crear una base de datos utilizando SQL Server Express tiene que hacerlo desde la línea de órdenes (véase también el capítulo titulado Acceso a una base de

datos). Para iniciar la consola que le permita trabajar contra el motor de base de

datos SQL Server, localice en su instalación el fichero SQLCMD.EXE, cambie a ese directorio y ejecute la orden:

SQLCMD -S nombre-del-ordenador\SqlExpress

Una vez iniciada la consola, puede escribir órdenes SQL a continuación del símbolo “>”. Para ejecutar un bloque de sentencias escriba GO. Para salir, escriba QUIT. Por ejemplo, el guión que muestra la figura siguiente crea la base de datos

(45)

APÉNDICE A: ENTORNOS DE DESARROLLO 1053

tfnos con una tabla telefonos, añade tres filas a la tabla y, finalmente, selecciona

todas las filas de la tabla con todas sus columnas:

Para ver la relación de órdenes que puede utilizar a través de la aplicación

SQLCMD ejecute la orden help como se muestra en la figura siguiente. Obsérvese

(46)

1054 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

SQL Server 2012 Express LocalDB

Microsoft SQL Server 2012 Express LocalDB es un modo de ejecución de SQL Server Express destinado a los desarrolladores de programas con el fin de sustituir la característica de instancias de usuario de SQL Server Express, que ha quedado obsoleta. La instalación de LocalDB copia un conjunto de archivos mínimo nece-sario para iniciar el motor de base de datos de SQL Server. Una instancia de SQL Server Express LocalDB se puede administrar con la herramienta de línea de ór-denes SqlLocalDB.exe.

SQL SERVER MANAGEMENT STUDIO EXPRESS

Si instaló SQL Server, habrá comprobado que no dispone de una herramienta de administración de bases de datos. Por tal motivo, Microsoft también ha desarro-llado una nueva aplicación para gestionar bases de datos que puede obtener de forma gratuita de Internet en la dirección especificada a continuación:

http://www.microsoft.com/es-es/downloads

Esta aplicación presenta una interfaz gráfica, muy sencilla de utilizar, para realizar tareas típicas como crear bases de datos, gestionar las tablas de la base, los procedimientos almacenados, crear usuarios, etc.

Cuando inicie SQL Server Management Studio Express, le serán solicitados el nombre del servidor de bases de datos, el tipo de autenticación, y el usuario y la contraseña sólo si eligió autenticación SQL Server:

Una vez realizada la conexión con el gestor de bases de datos, le será mostra-da la ventana de la figura siguiente. Seleccione en la lista del panel de la izquiermostra-da la base de datos con la que desea trabajar, haga clic en el botón Nueva consulta de

(47)

APÉNDICE A: ENTORNOS DE DESARROLLO 1055

la barra de herramientas y, después, escriba en el mismo las sentencias SQL que desee ejecutar. Para ejecutar una sentencia SQL haga clic en el botón Ejecutar de la barra de herramientas.

CREAR UNA BASES DE DATOS

Si no instaló SQL Server 2012 Express puede crear una nueva base de datos local al proyecto siguiendo los pasos especificados a continuación. Haga clic con el bo-tón secundario del rabo-tón sobre el nombre del proyecto para agregar un nuevo ele-mento y seleccione Base de datos basada en servicio. A continuación se abrirá el asistente para la configuración de orígenes de datos y, como no hay ningún objeto de base de datos disponible porque la base de datos es nueva, haga clic en

Cance-lar para crear y agregar la base de datos vacía al proyecto. A continuación puede

continuar añadiendo las tablas, los datos de las tablas, las relaciones entre las ta-blas, etc. Puede ver un ejemplo en el apartado Ejercicios resueltos del capítulo

Acceso a una base de datos.

Si instaló SQL Server 2012 Express (nombre predeterminado del servidor:

(48)

1056 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

de datos utilizando el explorador de bases de datos. Para ello, abra el Explorador

de bases de datos (Ver > Otras ventanas > Explorador de bases de datos). Haga

clic con el botón secundario del ratón sobre el nodo Conexiones de datos y selec-cione Agregar conexión. Elija como origen de datos Microsoft SQL Server. Se vi-sualizará la ventana siguiente:

Escriba el nombre de la base de datos y haga clic en Aceptar. Se visualizará el mensaje La base de datos ‘bd_telefonos’ no existe. ¿Desea intentar crearla?:

Haga clic en Sí. Observará en el explorador de bases de datos que

(49)

APÉNDICE A: ENTORNOS DE DESARROLLO 1057

El paso siguiente es añadir las tablas. Despliegue el árbol correspondiente a la nueva conexión, haga clic con el botón secundario del ratón sobre el nodo Tablas y agregue una nueva tabla. Después complete el proceso de creación de la misma.

Puede ver un ejemplo de este proceso en el apartado Ejercicios resueltos del capítulo Acceso a una base de datos.

INSTALACIÓN DE ASP.NET EN WINDOWS

ASP.NET queda instalado automáticamente cuando instaló Visual Studio o, en su defecto, Visual Studio Express for Web. Ahora bien, para crear y ejecutar aplica-ciones para Internet necesitará un servidor de aplicaaplica-ciones, en el caso de la plata-forma Windows éste es IIS (Internet Inplata-formation Server). La instalación de IIS debe ser anterior a la de .NET Framework. Si no se hizo así, ASP.NET no estará habilitado en IIS y no podremos realizar aplicaciones ASP.NET. En este caso, la solución es registrar manualmente ASP.NET en IIS.

Registro manual de ASP.NET en IIS

Para registrar manualmente ASP.NET en IIS, abra una ventana de consola, sitúese en la carpeta C:\WINDOWS\Microsoft.NET\Framework\vx.x.xxxxx y ejecute:

aspnet_regiis.exe -i -enable

Esto habilitará IIS para la ejecución de ASP.NET, registrará las extensiones de ASP.NET (aspx, amsx, asax, etc.) y ya podremos empezar a trabajar con ASP.NET.

Si echa una ojeada a todas las opciones disponibles (aspnet_regiis.exe -help) podrá observar algunas muy interesantes, como -c, que instala las secuencias de órdenes del cliente de esta versión en el subdirectorio aspnet_client de todos los directorios de sitios IIS.

(50)

1058 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Si la operación anterior no solucionó el problema, pruebe a reparar la instala-ción actual a partir del material adicional del producto. Si esto tampoco soluciona-ra el problema, sólo queda desinstalar el producto y volverlo a instalar.

DEPURAR CÓDIGO JAVASCRIPT

En una aplicación ASP.NET que incluya código JavaScript (véase el capítulo 20) es posible utilizar el depurador de Visual Studio o de Visual Web Developer para depurar ese código.

Para poder depurar código JavaScript, el primer paso es habilitar esta opción en el navegador. En el caso de Internet Explorer, seleccione Herramientas >

Op-ciones de Internet > OpOp-ciones avanzadas y asegúrese de que no esté seleccionada

la opción “Deshabilitar la depuración de scripts”:

Cumplido el requisito anterior, sólo queda poner en el código JavaScript a de-purar la sentencia debugger. De esta forma, cuando inicie la depuración de la aplicación y el flujo de ejecución pase por esta sentencia, la ejecución se detendrá y podrá continuarla paso a paso.

function CargarTabla(resultado, contexto) {

debugger; var elementos =

(51)

APÉNDICE A: ENTORNOS DE DESARROLLO 1059 LoadXmlFromString(resultado).getElementsByTagName("string"); TablaResultados = document.getElementById("TablaDeResultados"); if (TablaResultados != null) { // ...

DESARROLLO

Para el desarrollo de una aplicación, lo habitual es crear un modelo de clases si-guiendo algún patrón, por ejemplo el patrón de arquitectura de software

Model-View-ViewModel (MVVM) utilizado por WPF y Silverlight, que es un sucesor del

ampliamente conocido Model-View-Controller (MVC) utilizado por ASP.NET MVC, nacido del entorno Smalltalk a finales de los años 70.

En MVC la aplicación se compone de tres tipos de objetos que tienen respon-sabilidades distintas con el objetivo de separar la capa visual de su correspondien-te programación y acceso a datos:

 El modelo. Es el responsable de los datos y de la lógica de negocio de la apli-cación.

 La vista. Es el responsable de mostrar los datos al usuario y de permitir su ma-nipulación desde y hacia el modelo.

 El controlador. Es el responsable de implementar las respuestas a los eventos o acciones de los usuarios e invocar peticiones al modelo y probablemente a la vista.

Con el modelo MVC cada tipo de objeto es responsable de una cosa, lo que simplifica el desarrollo, comprensión y la realización de pruebas del código fuen-te. Además, es fácil remplazar las vistas, o tener más de una actuando sobre los mismos datos.

En el caso de las aplicaciones Silverlight, el .NET Framework dispone de la capacidad de usar enlaces (bindings) para transferir directamente datos desde el controlador hacia la vista, por lo que el controlador solo es responsable de

(52)

imple-1060 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

mentar el comportamiento de esta. En este caso, el controlador se denomina mo-delo de vista (view model), dando origen al patrón MVVM donde:

 El modelo. Representa los datos o información con la que se trabaja y en la mayoría de los casos la lógica de negocio asociada. Debe encontrarse comple-tamente aislado de la interfaz de usuario.

 La vista. Representa la información en la interfaz de usuario y es capaz de aceptar la entrada de datos del usuario a través de controles, teclado, ratón u otros elementos en forma de controles desde la interfaz gráfica.

 El modelo-vista. Objeto que separa y aísla completamente a la vista del mode-lo, se puede pensar en este tipo de objetos como una abstracción de la vista, que además hace las funciones de intermediario, transformando los datos reci-bidos del modelo en datos aptos para la vista y viceversa.

Por lo tanto MVVM comparte todos los beneficios de MVC, pero con una ventaja adicional: la simplificación que resulta de usar enlaces declarativos para transferir los datos desde y hacia el modelo a la vista.

(53)

APÉNDICE B

F.J.Ceballos/RA-MA

PÁGINAS WEB

¿Quién no ha oído hablar de Internet? La respuesta es evidente, porque donde quiera que esté oirá hablar de Internet. ¿Por qué? Porque hoy en día forma parte del mundo de los negocios y del comercio, aunque en sus inicios no fue ésta la in-tención. Hay muchas empresas que le proporcionan conexión las 24 horas del día por un precio asequible. Pero, ¿qué es Internet?, ¿qué servicios ofrece?

¿QUÉ ES INTERNET?

Internet, es decir, inter-red, es una red de redes informáticas distribuidas por todo

el mundo que intercambian información entre sí mediante la familia de protocolos TCP/IP. Puede imaginarse Internet como una gran nube con ordenadores conecta-dos:

Cliente

Servidor Cliente

Internet surgió de un programa de investigación realizado por la Agencia de Proyectos de Investigación Avanzados de Defensa (DARPA) de los Estados Uni-dos sobre la conexión de redes informáticas. El resultado fue ARPANet (1969). Esta red crece y a principios de los años 80 se conecta con CSNet y MILNet, dos redes independientes, lo que se considera como el nacimiento de Internet

(54)

(Inter-1062 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

national Network of computers). También forman parte de esta red NSI (NASA Science Internet) y NSFNet (National Science Foundation Net).

Durante muchos años Internet ha servido para que muchos departamentos de investigación de distintas universidades distribuidas por todo el mundo pudieran colaborar e intercambiar información. Sólo recientemente ha comenzado a formar parte de los negocios y de nuestra vida cotidiana.

Internet ha hecho que el mundo empresarial se haya replanteado sus sistemas de comunicación internos y externos y en la mayoría de los casos los haya encau-zado vía Internet. Esto ha dado lugar a dos subpoblaciones dentro de Internet:

in-tranets y exin-tranets.

Intranet

Una intranet no es más que una red local que utiliza los mismos protocolos que Internet, independientemente de que esté o no conectada a Internet. ¿Qué ventajas tiene una intranet? Fundamentalmente dos: independencia de los proveedores ha-bituales de soluciones y una única forma de trabajar que evita tener que aprender sistemas nuevos, lo que redunda en un ahorro de formación. Por otra parte, una

intranet suele estar dotada de una velocidad bastante mayor que la habitual en

In-ternet, lo que posibilita una comunicación muy fluida, incluso, cuando se trata de flujos de información multimedia.

Terminología Internet

Desde el punto de vista físico, Internet no es una simple red, sino miles de redes informáticas que trabajan conjuntamente bajo los protocolos TCP/IP (Transmision

Control Protocol/Internet Protocol - Protocolo de Control de

Transmisiones/Pro-tocolo Internet), entendiendo por proTransmisiones/Pro-tocolo un conjunto de normas que regulan la comunicación entre los distintos dispositivos de una red. Desde el punto de vista del usuario, Internet es una red pública que interconecta universidades, centros de investigación, servicios gubernamentales y empresas.

El conjunto de protocolos de Internet está compuesto por muchos protocolos relacionados con la asociación formada por TCP e IP y relacionados con las dife-rentes capas de servicios de la red; esto es, las funciones de una red se pueden agrupar en capas de servicios de la red. Imagínese las capas como distintas esta-ciones por las que debe pasar un paquete de información cuando realiza la ruta de un ordenador a otro conectados a diferentes puntos dentro de Internet. Por ejem-plo, el protocolo TCP/IP visto desde este punto de vista puede imaginárselo de forma resumida así:

(55)

APÉNDICE B: PÁGINAS WEB 1063

Aplicación

(FTP, Telnet, Gopher, Word Wide Web) API de Windows Sockets

Transporte (TCP y UDP)

Red (IP) Enlace

(controlador de dispositivo, tarjeta de red, protocolos de control de la línea)

Entre dos capas puede haber una interfaz de programación (API) para inter-pretar los mensajes o paquetes a medida que van pasando.

Utilizar una interfaz de programación, como la API de Windows Sockets, li-bera al programador de tratar con detalles de cómo se pasan los paquetes de in-formación entre las capas inferiores.

Las capas de enlace y de red se encargan de empaquetar la información y de llevar los paquetes de un lugar a otro de la red. ¿Cómo se identifican estos luga-res? La respuesta es con direcciones de Internet que permitan identificar tanto el ordenador como el usuario, ya que un mismo ordenador puede tener dados de alta diferentes usuarios. Estas direcciones son especificadas según un convenio de

sis-tema de nombres de dominio (DNS).

Un DNS tiene el formato siguiente:

[subdominio].[subdominio].[...].dominio

Por ejemplo:

uni.alcala.es

En este ejemplo, es es el dominio, alcala es un subdominio de es, y uni un

subdominio de alcala. Algunos dominios de nivel superior son:

Dominio Cobertura

com organizaciones comerciales

edu instituciones educativas

net suministradores de servicios de red

us Estados Unidos

de Alemania es España

(56)

1064 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Cada nombre de dominio se corresponde con una única dirección de Internet o dirección IP. Una dirección IP es un valor de 32 bits dividida en cuatro campos de 8 bits. Por ejemplo:

130.206.82.7

Para referirse a un usuario perteneciente a un determinado dominio, la sintaxis empleada es:

usuario@[subdominio].[subdominio].[...].dominio

Los programas que gestionan los nombres de dominio se denominan

servido-res de nombservido-res. Cada servidor de nombservido-res posee información completa de una

determinada zona (subconjunto de un dominio) y de otros servidores de nombres responsables de otras zonas. De esta forma, cuando llega una solicitud de infor-mación sobre la zona de la que es responsable un determinado servidor, éste sen-cillamente proporciona la información. Sin embargo, cuando llega una solicitud de información para una zona diferente, el servidor de nombres se pone en contac-to con el servidor de esa zona. Los servidores DNS constituyen la base de dacontac-tos distribuida de nombres de Internet.

La capa de transporte es responsable de la entrega fiable de los datos. En esta capa se emplean dos protocolos diferentes: TCP y UDP. TCP toma mensajes de usuario de longitud variable y los pasa al nivel de red, solicitando acuse de recibo; y UDP es similar, salvo en que no solicita acuse de recibo de los datos.

La capa de aplicación proporciona una interfaz a la aplicación que ejecuta un usuario. Dicho de otra forma, proporciona el conjunto de órdenes que el usuario utiliza para comunicarse con otros ordenadores de la red.

Existen muchos protocolos en TCP/IP. A continuación, se indican algunos bastante conocidos:

 FTP (File Transfer Protocol - Protocolo de transferencia de ficheros). Copia ficheros de una máquina a otra.

 Gopher. Protocolo que permite buscar y recuperar documentos mediante un sistema de menús.

 POP 3 (Post Office Protocol - Protocolo de oficina de correos). Protocolo pa-ra gestionar el correo electrónico, en base a su recepción y envío posterior, entre el usuario y su servidor de correo. Con este fin son empleados también los protocolos IMAP (Internet Message Access Protocol) y HTTP (correo web).

Referencias

Documento similar