Está en la página 1de 120

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.

........ 7  Aplicaciones web . 30  ........ 9  Biblioteca de clases base ............................................................................................... 22  Borrar un control .......................................NET ................................. 15  MICROSOFT VISUAL STUDIO ................................ 1 CAPÍTULO 1........................... MI PRIMERA APLICACIÓN ........................................ 21  Dibujar los controles ............................ 5  Aplicaciones de cliente ............................NET ............................. INTRODUCCIÓN A MICROSOFT .... 15  Crear un nuevo proyecto ........... XXIII PARTE 1........................................................................................................................................................................ 27  Propiedades de los objetos .......................................................................................... 29  Icono de la aplicación .................................... INTRODUCCIÓN..................................................... 3  PLATAFORMA ....................................NET Framework........................NET ....................................................................................................................... 9  ........................NET Framework y COM+ .............. 12  Visual Studio ........................................................................ 17  El formulario ........................................ 7  ADO...................................................................................................................................................................................................................................................................... 9  Entorno de ejecución común de los lenguajes ....................................................................................................................................... 27  Bloquear la posición de todos los controles ......................... 4  ............................................................................................................. CONTENIDO PRÓLOGO................................................................... 13 CAPÍTULO 2.............. 29  Escribir los controladores de eventos ........................................

............................................................................ 58  Asignar controladores de eventos a un objeto............................................................ 71  Permitir una sola instancia de la aplicación ....................................................................... 53  Crear un componente ............................................................................................................................................................................................................ 82  ................ 64  Administración de la duración ................... ETIQUETAS Y BOTONES ......................................................................................... 35  Crear soluciones de varios proyectos ................................. 37  WPF ............................ 79  BIBLIOTECA DE CLASES DE WINDOWS FORMS .......................................... 33  Propiedades del proyecto ..................................................... 51  DISEÑO DE LA INTERFAZ GRÁFICA ............................................. 33  Verificar la aplicación ................................ 70  CICLO DE VIDA DE UNA APLICACIÓN......................... 36  Opciones del EDI .......................................................... 57  CONTROL DE EVENTOS .... 65  Apariencia y comportamiento ............ 61  CICLO DE VIDA DE UN FORMULARIO ................................................ 43  PROGRAMANDO EN WINDOWS.................................................................................................. INTRODUCCIÓN A WINDOWS FORMS ................................................................................................................................................................................... 54  Añadir un botón de pulsación y editar sus propiedades ..................................... 68  ATRIBUTOS GLOBALES DE UNA APLICACIÓN................................ 62  PROPIEDADES BÁSICAS DE UN FORMULARIO............................. 38 PARTE 2........................... 79  CAJAS DE TEXTO................................................. 37  Personalizar el EDI ............................................................... APLICACIÓN WINDOWS FORMS ........................VIII ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Guardar la aplicación ............................................. 41 CAPÍTULO 3.................................................................. 53  Controles más comunes ................................................................................................. 75  Pantalla de presentación ............................................... 74  Argumentos en la línea de órdenes ............................... 56  Añadir una descripción abreviada a un componente............................ 82  Desarrollo de la aplicación ............ 47  Compilar y ejecutar la aplicación .... 53  Añadir una etiqueta y editar sus propiedades.................................................................................................................................................................... 65  CONFIGURACIÓN DE UNA APLICACIÓN ........................................................................................... 45  ESTRUCTURA DE UNA APLICACIÓN......................................................................................................................... 76 CAPÍTULO 4.................................................... 64  Administración de formularios ........ 66  RECURSOS DE UNA APLICACIÓN ........... INTERFACES GRÁFICAS ...

........................................................... 85  Enfocar un objeto ................................................ 130  Recursos de una aplicación ........... 109  Escribir el código ............................................................................ 84  Tecla de acceso ........................................... 124  Crear un menú mediante programación ............. 105  Diseño de una calculadora ..................... 125  Controlador de un elemento de un menú ............................................................................................................................... 123  DISEÑO DE UNA BARRA DE MENÚS ........................................................................................................... 99  El motor de expresiones regulares ............... 110  EJERCICIOS PROPUESTOS.......................................................................................................................................................................................................................................................................... 104  EJERCICIOS RESUELTOS .................. 96  Expresiones regulares .............................................................. 119 CAPÍTULO 5................................ 130  LISTA DE TAREAS....................... 83  Eventos......................................... 134  Diseño de una barra de herramientas ................................................................................................................................... CONTENIDO IX Objetos ..................................................... 133  BARRA DE HERRAMIENTAS.................................................................................................................................................... 134  BARRA DE ESTADO ................................................................................................................................................... 106  Eventos....................................................................................................................................................................... 99  Ejemplos de expresiones regulares ...................................................... 91  VALIDACIÓN DE UN CAMPO DE TEXTO ..................................................................................................... 89  Seleccionar el texto de una caja de texto ......................................................................................................... 90  INTERCEPTAR LA TECLA PULSADA ............................................. 136  Diseño de una barra de estado .................................................................................... 83  El formulario..................................................................................................................................................... los controles y sus propiedades ...................................................................................................................................................... 85  Responder a los eventos .............. 137  .. 106  Diseño de la ventana y de los controles . 129  IMÁGENES EN CONTROLES ......... 107  Establecer una fuente .................................................................................................. 106  Objetos ....................................................................................................................................... 121  ARQUITECTURA ....................... MENÚS Y BARRAS DE HERRAMIENTAS ............................. 93  Eventos Validating y Validated ........ 128  Aceleradores y nemónicos ........ 83  Pasos a seguir durante el desarrollo ....................................................................................................................................................... 106  Pasos a seguir durante el desarrollo ..................................................................................................................................... 102  MaskedTextBox ........................... 109  Color ....... 85  Botón predeterminado ........................................................... 121  MENÚS ......................

....................................X ENCICLOPEDIA DE MICROSOFT VISUAL BASIC DESARROLLO DE UN EDITOR DE TEXTOS .............................................................................................................................................................................. 140  El portapapeles ...................................................... 154  Listas desplegables en menús....................................................................... CONTROLES Y CAJAS DE DIÁLOGO ..................................................... 154  Recordar las ediciones reversibles ...............................Pegar.......................................... 154  Añadir a la interfaz la orden Deshacer .................................................................................... 188  Listas simples ....................................................................................... 149  Edición ......................................... 148  Edición .................................................................................................................................................. 177  Mostrar una caja de diálogo .................................... 142  Objeto My.................................Clipboard ............................................. 149  Opciones ... 148  Edición ............................................................................................................................... 151  Habilitar o inhabilitar los elementos de un menú................Cortar.................................................................. 159  MENÚS DINÁMICOS .................................................................... 194  ............. 164 CAPÍTULO 6................... 144  Diseño de la barra de herramientas .............................................. 149  Opciones ...................................................... 179  DIÁLOGO ACERCA DE ...... 146  Asociar un método con un elemento de un menú ............................................................... 170  Requerir datos con InputBox . 147  Archivo ..... 176  Crear una caja de diálogo ........ 139  Diseño del editor ........................... 183  Casillas de verificación ................... 182  OTROS CONTROLES WINDOWS FORMS ........................................................................................................................................................................................................................ 152  Marcar el elemento seleccionado de un menú ................................................................................................................. 170  CAJAS DE MENSAJE ..................................... 153  Deshacer ........ 143  Diseño de la barra de menús ................ 175  CAJAS DE DIÁLOGO PERSONALIZADAS .............. 169  CAJAS DE DIÁLOGO MODALES Y NO MODALES ........................................... 178  Introducción de datos y recuperación de los mismos .........................................................Tamaño ................................................................................................................................................................................................................................................................................................................................ 138  Caja de texto multilínea ........ 184  Botones de opción ........... 142  Trabajar con texto seleccionado ..................................................... 181  FORMULARIO PROPIETARIO....................................................................................................... 155  MENÚS CONTEXTUALES ...............................................Copiar ........................................................................................................................................................ 161  EJERCICIOS PROPUESTOS....................................................................Computer................................................Fuente ............Salir......................... 193  Diseñar la lista......................................... 174  Cómo se utilizan estas cajas de diálogo .......

........................................................................ 196  Colección de elementos de una lista .................................................................................................................................... 253  ÁRBOLES............................................................................ 221  REDIMENSIONAR UN COMPONENTE ...................... 198  Listas desplegables ............................................................................................................................................................................................................ 255  Construir un árbol ... 243  Construir una tabla ........................................................... 246  Tamaño de las celdas ....... 198  Diseñar la lista................................. 203  ScrollBar ................. 260  Recorrer todos los nodos del árbol ................... 254  Arquitectura de un árbol ...................................................................................................................................................................................................................................................................................................................................................................................................................................... 220  Caja de diálogo Fuente ........................... 223  EJERCICIOS RESUELTOS ...................................................................................................................................... 202  Controles de rango definido .............................................. 210  Gestión de fechas ................................................................................................................ 197  Clase CheckedListBox ............................... 255  Añadir nodos a un árbol ............................................................................................................ 244  Añadir las columnas a la tabla ..................................................... 264  ........................... 196  Acceder a los elementos seleccionados..................................................................... 211  FlowLayoutPanel y TableLayoutPanel ............................................................................... 238 CAPÍTULO 7....................... 208  Control con pestañas ...................................................................................... 203  TrackBar . 217  Caja de diálogo Color ................................................................... 252  Acceder al valor de la celda seleccionada ...................................................................................... CONTENIDO XI Iniciar la lista................................................................................ 256  Imágenes para los nodos del árbol ................................................. 245  Iniciar la tabla..................................................................................... 241  TABLAS .................................................................... 201  Acceder al elemento seleccionado ........................... 216  Cajas de diálogo Abrir y Guardar ..................................................... 241  Arquitectura de un control DataGridView ................................................................................................... TABLAS Y ÁRBOLES .................... 201  Colección de elementos de una lista desplegable .......................................................... 207  ProgressBar ............................................................................................................................................................................................................................... 258  Acceder al nodo seleccionado ..................................... 222  TEMPORIZADORES .............. 200  Iniciar la lista................................................................................................................................................ 213  CAJAS DE DIÁLOGO ESTÁNDAR ................ 257  Iniciar el árbol ............ 227  EJERCICIOS PROPUESTOS......................................................................................................................................

...................................................................................... 322  Intercambiar imágenes a través del portapapeles ............................................................................................................... 304  Elipses y arcos ................................................................ 271  Elemento de la lista ........................ 264  Añadir un nodo ........ 292 CAPÍTULO 8...................................................................................................... 304  Líneas y rectángulos............................................................................................................................................................................................................................................................................................................................................................................................................................................. 298  Objeto Color...........................................XII ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Añadir y borrar nodos .......... 296  Objeto Graphics ........... 270  La colección Columns ......................................... 301  Objeto Point ............................................................................................................................. 302  Objeto Font ................... 313  Tipos de sistemas de coordenadas.............................. 299  Objeto Pen ............................................................................................. 317  Transformaciones de color ........................................................................................................................................... 308  GRÁFICOS PERSISTENTES .................... 268  Personalizar el aspecto de un árbol ........ 276  EJERCICIOS PROPUESTOS..................................................................... 320  Cargar y mostrar un mapa de bits ........................................................................................................................... 295  OBJETOS DE DIBUJO BÁSICOS .................................................................................. DIBUJAR Y PINTAR ........................................................ 305  Tartas. 273  EJERCICIOS RESUELTOS ............................................................................................................................. 307  Trazados ........................................................................................................................................................................................................................................ 327  .................................................................................................................................. 300  Objeto Brush ............................................................. 320  Mapas de bits ............................. 269  Personalizar el aspecto de una vista .................................. 304  MÉTODOS DE DIBUJO .............................................. TreeView y SplitContainer .................................................................................... 306  Curvas flexibles.................................................................................................................................................. 308  Regiones ........................................................................................................ 311  SISTEMAS DE COORDENADAS Y TRANSFORMACIONES ..... 269  VISTAS DE UNA LISTA...................................................................................................... 306  Polígonos............................................................................................................................................................ 272  La colección Items ................ 273  Un ejemplo con ListView.......................................... 302  Objeto Rectangle .............................. 293  SERVICIOS DE GDI+................................................................................... 303  Objeto GraphicsPath ..... 265  Borrar el nodo seleccionado............................................................ 268  Borrar todos los nodos excepto la raíz ............................................... 318  MOSTRAR IMÁGENES ....................................

.... 371 CAPÍTULO 10............................................ 366  EJERCICIOS RESUELTOS .................................... 354  Guardar un documento ............... 381  Añadir métodos .............. 360  Barras de herramientas y de estado .......................................................................................................................... 356  Imprimir un documento .......................................................................................... copiar y pegar ................................................................................................................................................................................................................ 347  EDITOR DE TEXTO MDI ...................................................................... INTERFAZ PARA MÚLTIPLES DOCUMENTOS .......................................................................................................................... 352  Iniciar y finalizar la aplicación...................... 366  EJERCICIOS PROPUESTOS......................................................................................................................................................................................................................................................................................................................... 373  REUTILIZACIÓN DE CONTROLES EXISTENTES ....................................................... 382  Añadir eventos .............................................................. 348  Formulario hijo ............................................................................ 348  Formulario padre ........................................................ 359  Recordar las ediciones reversibles ................................... 329  EJERCICIOS RESUELTOS ......................................................................... 379  CONTROLES DE USUARIO ........................... 353  Abrir un documento ............................... 330  EJERCICIOS PROPUESTOS........................................................................................................................................... 357  Cortar................................... 383  Opciones fecha-hora alarma o actual ...................................................... 386  EJERCICIOS PROPUESTOS.............................. 343  CREACIÓN DE UNA APLICACIÓN MDI............................ 365  Operaciones de arrastrar y soltar ........... 383  Verificar el control de usuario.............. 355  Guardar como.................................................................. 380  Añadir propiedades ........ 379  Construir el control de usuario ............................................................................................................................................................................................................................................................................................................................. 353  Nuevo documento ............. CONTENIDO XIII CAMBIAR LA FORMA DEL PUNTERO DEL RATÓN ............................ 384  EJERCICIOS RESUELTOS ............................................................................................................................................................. 374  Clasificación de las propiedades de un control .................................... 350  Vincular código con los controles ......................... 362  Selección actual del texto... CONSTRUCCIÓN DE CONTROLES .............................................. 344  Organizar los formularios hijo ................................ 363  El documento ha cambiado .............................................................. 361  Menú Ventana ............................. 340 CAPÍTULO 9........................ 389 ................................................... 373  Control TextBox extendido .............

...................................................................... 423  Enlace de datos manual ............... 399  Componente BackgroundWorker................................ 407  Cancelación anticipada ................... 442  List ......................................................... 420 PARTE 3.......................... 435  ORÍGENES DE DATOS COMPATIBLES CON WINDOWS FORMS . 408  Objetos de sincronización ......................................................................................... 454  ......... 405  Notificar el progreso a la interfaz gráfica del usuario .............................................................................. 399  Delegados .......... 398  ACCESO A CONTROLES DESDE HILOS ......................................................... 417  EJERCICIOS PROPUESTOS....................... PROGRAMACIÓN CON HILOS ............. 431  Tipos de enlace ...................................................................................................................................................................................................................................................................................... 432  Componente BindingSource ......................... 433  Crear un enlace .......................................................................................................................................................................................................... 410  Controladores de espera .......................................................................... 392  Clase Thread .............................................................. 451  ACCEDIENDO A LOS DATOS .................................................................................................................................................................................................................................................. 391  ESPACIO DE NOMBRES System............................................ ACCESO A DATOS ............................................................... 439  Enlace a colecciones de objetos ..................XIV ENCICLOPEDIA DE MICROSOFT VISUAL BASIC CAPÍTULO 11.... 432  Notificación de cambios en un enlace de Windows Forms . 409  Secciones críticas ...................................................................................... 421 CAPÍTULO 12......................................................... 398  Estados de un hilo ......................................................... 414  EJERCICIOS RESUELTOS .............................................................................. 395  Resumen de los métodos y propiedades de Thread................. ENLACE DE DATOS EN WINDOWS FORMS ..................................... 406  Recuperar el estado después de la finalización de la tarea ......................... 423  Notificar cuándo cambia una propiedad .................................................................................................. 407  MECANISMOS DE SINCRONIZACIÓN .............................................. 412  DETENER UN HILO DE FORMA CONTROLADA ..........................................Threading ................................................ 430  La clase Binding ....................................... 427  Enlace de datos con las clases de ............................................... 433  Enlaces con otros controles................................. 423  ASPECTOS BÁSICOS ................................................ 435  Aplicar conversiones........ 442  BindingList ...................................................................................................................... 404  Ejecutar una tarea de forma asíncrona .................................................................NET ........................ 447  BindingSource .......................................

........................................................................................................................................................................................................ 506  Probando una conexión ............................................................................... CONTENIDO XV Ventana de orígenes de datos ......................................... 471  Elemento actual de la vista............ 496  Componentes de ADO...... 497  Conjunto de datos.... 493  Base de datos Microsoft Access................................................................................................................................................................................................................... 487  SQL .......................................................................... 501  Objeto orden ........... 472  Ordenar ................................ 493  Base de datos Microsoft SQL Server ..................................................NET...................................................... 478  Datos que no necesitan validación ............... 465  Navegar ................................ 495  ADO..................................................................................................................... 500  Objeto conexión ................................................. 488  Escribir datos en la tabla .......................................................................................... 491  Seleccionar datos de una tabla .... 477  Validación .................................................................................................................................................. 504  Modos de conexión . 469  BindingListView ............................................ 475  Error en los datos ...................................................... 479 CAPÍTULO 13............................................................................................................................... 474  Buscar ......................................................................................................................................................................................................................... 516  Procedimientos almacenados .......................................................................................................... 461  Operaciones con los datos .................................................................................................................................................................................. 473  Filtrar ..... 512  Órdenes parametrizadas ......................... 474  Datos introducidos por el usuario ........ 457  Vinculación maestro-detalle............................................................................................................................................................... 509  ATAQUES DE INYECCIÓN DE CÓDIGO SQL .................................................. 490  Modificar datos de una tabla ................. 503  Objeto lector de datos ...................................... filtrado y búsqueda .............................................................................................................................. 508  ACCESO CONECTADO A UNA BASE DE DATOS .................................. 517  ................................ 466  Ordenación....................................................................................................................................................... 491  Crear una base de datos ....................................................... ACCESO A UNA BASE DE DATOS ................................................................................................................................................................................................................................................................................................ 498  Proveedor de datos ...................................... 488  Crear una base de datos .................................................. 488  Crear una tabla ...................................................................... 490  Borrar registros de una tabla ..................... 503  Adaptador de datos ........................ 465  Elemento actual ....................................NET ...............................

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

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

............................................ ASP............. 761  Actualizar y eliminar datos .................XVIII ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Interfaz fluida ................................... 733  Controles de diseño ........NET ................................................................................................................................. 732  Exploración ............................................................................................................................................................ 754  Modelo de enlace de ASP..... 742  Convertir la aplicación en una aplicación web de IIS ........................................................................................................................................................................ 730  Controles de entrada ................... 757  GridView ..................................................................................................................... 730  Envío y devolución ........................................................................................................................................................................... 718  EJERCICIOS PROPUESTOS..................................................................................... 728  Controles de servidor web.... APLICACIONES PARA INTERNET ................................................................................... 712  Code First desde una base de datos existente.................................. 735  Software para el desarrollo de aplicaciones ASP..................................................................................................................................................................................................................................... 734  Controles de validación........................................................... 739  ¿Cómo se publica una aplicación web? ................................... 753  Controles de lista enlazados a datos .................................................. 746  Modelo de ejecución de una página web ASP.............................................................NET ............................ 713  Cadena de conexión ........................................... 729  Presentación del texto ..... 725  Conceptos básicos de ASP............................................ 715  Contexto de objetos.................................................................................................................................. 744  Seguridad asociada con una carpeta...................................... 753  Expresiones de enlace de datos ..........NET .... 727  Controles HTML ........................................ 733  Controles con enlaces a datos ....................... 733  Selección de fechas .......................... 747  Lógica de negocio ........ 737  Componentes de una página web ASP..................................... 723  ASP...................................... 749  Enlaces de datos en ASP....NET ...........................................................NET ....................................NET ..... 734  Un ejemplo de diseño de una página web ASP......... 715  El modelo de entidades ................................NET ...............NET ................................................................................................................. 741  Crear un directorio virtual ................................................NET ............................ 717  EJERCICIOS RESUELTOS ............................................................... 726  Páginas web ASP..........................NET ........................................................................................................................... 762  ........................................................... 759  Seleccionar datos .......................................... 721 CAPÍTULO 15..................... 716  Acceder a los datos ............................................................................ 720 PARTE 4..........................

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

............. 909  Cambiar foto ................ 839  Controlar los errores en una página ASP.............................................. 888  Obtener acceso al servicio web ............. 909  .............. 838  Actualizar y eliminar filas en la base de datos ....................... 835  Generar la consulta Select mediante código .............................................................................................. SERVICIOS WEB ................................................. 882  Implementar un cliente WCF ............... 852  Actualizar y eliminar filas en la base de datos ......................................................... 852  Controlar los errores en una página ASP....................................... 841  Insertar filas en la base de datos ............................................................. 895  Crear la base de datos...................................................................................................................................... 871  Integrar un servicio web en una aplicación .......................................... 897  Cliente WCF ................... 855  Capa de la lógica de negocio... 894  Arquitectura de N capas lógicas y N niveles físicos ......................... 847  Realizar cambios en los datos .................. 890  Seguridad en WCF ............................................................................................................................................ 828  Control EntityDataSource ................................................. ordenación y filtrado ...................................................... 904  Llenar la lista............................................................................................................... 888  Ejecución asíncrona ............................................................................................... 822  Responder a los eventos ................................ 872  SERVICIOS WCF .................. 829  Responder a los eventos .........................................................................................NET .................................................................................. 896  Crear el servicio WCF.............................................................................................. 826  LINQ y desarrollo web ..............................................................................................NET ..................................................................... 863  EJERCICIOS PROPUESTOS......................................................................................... 820  Control SqlDataSource .................................... 884  Configuración del cliente WCF ......................................................................... 876  Configuración del servicio WCF ......................................................................XX ENCICLOPEDIA DE MICROSOFT VISUAL BASIC SQL y desarrollo web .................................................................. 907  Mostrar datos ............................. 893  SERVICIOS WEB Y LINQ ................................ 908  Actualizar datos ............ 869 CAPÍTULO 17....................................................................................................... 874  Implementar un servicio WCF ....................................................................................... 860  Paginación.....NET .................................................................................................................................................... 875  Definir un contrato ................... 855  Insertar filas en la base de datos .................................................. 836  Realizar cambios en los datos ............................................................... 841  MODELO DE ENLACE DE ASP............................................................................................................................................................................................................................................................. 873  MODELO DE PROGRAMACIÓN DE WCF ...........................................................

.............................. 930  SUPLANTACIÓN DE IDENTIDAD ........................................ 963  Certificado de cliente rechazado .......................... 933  CONTROLES PARA INICIO DE SESIÓN ...................................... 910  Borrar datos...................... 968 CAPÍTULO 19.................................. 1015  ................................................................................................................................................................................................................................................................... 1014  Fichero JavaScript ................................................................... 1004  AJAX con ASP.... 921  GRUPOS DE APLICACIONES EN IIS ...................... 959  AUTENTICACIÓN USANDO CERTIFICADOS ........................................................ SEGURIDAD DE APLICACIONES ASP........................................ 919  ARQUITECTURA ASP................................................................ 961  Instalar un certificado SSL en IIS 7.... 979  Temas y máscaras en ASP..... 938  SERVICIO DE SUSCRIPCIONES................................. 911  Errores inesperados ..................... 980  Perfiles .....................NET .............................. 959  Criptografía asimétrica ............................................................... 920  CICLO DE VIDA DE UNA APLICACIÓN ASP................................................ 969  ESTRUCTURA DE UNA PÁGINA MAESTRA ......................... 983  EJERCICIOS RESUELTOS ......................................................... 1001  FUNDAMENTOS DE AJAX ..............................................0 o superior ...... 912 CAPÍTULO 18............................................................................................................................................................................................................................................................. 969  Controles de usuario web ..........................................NET ........ 932  AUTENTICACIÓN MEDIANTE FORMULARIOS ..............................................NET ......................................................................................... 911  EJERCICIOS PROPUESTOS. AJAX ............................................................. PÁGINAS MAESTRAS .............................................................................................................................................................................................................................................................................................................. CONTENIDO XXI Agregar datos ............................................................ 974  Mejorar el aspecto de la interfaz ....................... 987  Base de datos .......................................................................................................................NET .........................NET.......................................................... 922  AUTENTICACIÓN DE WINDOWS ..................................... 988  Cliente web .............................................................................................................................................................................................. 958  Criptografía simétrica. 951  SEGURIDAD EN LA TRANSMISIÓN DE DATOS ............................. 992 CAPÍTULO 20.................................. 1003  XMLHttpRequest ................... 1012  GENERACIÓN DE CÓDIGO JAVASCRIPT ............... 923  AUTORIZACIÓN .............................

......... 1093  ...................................................................................... 1034  Métodos de página ................................................................................................................................................................................................................................................. XXII ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Vincular un evento con una función JavaScript ...............NET AJAX ............................................................................................................................................................................................................................................... 1034  Servicios web ...................................... 1040 PARTE 5..................................... 1033  Clase Timer ............... 1103  ÍNDICE ............................ 1028  Clase AsyncPostBackTrigger............................ 1031  Cancelar una llamada asíncrona ............. 1028  Clase UpdatePanel .................................................................................. 1061  INTERNACIONALIZACIÓN ................. 1105 ................................................................................................................................. 1018  Crear un sitio web ASP............................................... ACERCA DEL MATERIAL ADICIONAL Y DE LOS APÉNDICES .................... 1015  Inyectar código JavaScript desde el lado del servidor ...................................................................... 1043 HERRAMIENTAS DE DESARROLLO................................................................................................ 1045  PÁGINAS WEB ...................................................................NET AJAX ....................................................................................... 1019  Clase ScriptManager .................................................................. 1020  Clases ScriptManager y ScriptManagerProxy ........... 1038  EJERCICIOS RESUELTOS ................................................NET PARA LINUX ........... 1030  Clase UpdateProgress............. 1017  ASP..........................................................

Desde que Microsoft liberó Visual Basic 1. Visual Basic 1.NET que vino a revolucionar el mundo de las comunicaciones permitiendo escribir aplicaciones escalables para Internet. la versión 3. Visual Basic . lo que obligará al desarrollador a programar de forma ordenada.0 que abrió la puerta al desarrollo de aplicaciones de 32 bits y a la creación de DLL. 2008. Visual Basic ha continuado proporcionando nuevas características que facilitaron la creación de aplicaciones para Windows cada vez más potentes. desmitificó el proceso de desarrollo de aplicaciones con interfaz gráfica de usua- rio y abrió este tipo de programación a las masas. PRÓLOGO Visual Basic es hoy el lenguaje de programación más popular del mundo.NET. 2008. Microsoft liberó Visual Basic 4.0 revolucionó la forma de desarrollar software para Windows. después Visual Basic 2005.NET Framework. Siguie- ron Visual Basic 2005. una evolución del lenguaje Visual Basic. que se diseñó para generar aplicaciones con seguridad de tipos y orientadas a objetos de manera productiva.0 mejoró y potenció este acceso con los objetos DAO. La versión 5.0 en 1991 han tenido lugar muchos cambios. C# o Java por citar algunos de los más utilizados. . Ahora se re- quiere una programación orientada a objetos. 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 .0 nos introdujo en la pro- gramación de Internet con las aplicaciones DHTML y el objeto WebClass. En sus posteriores versiones. Posteriormente la versión 6.0 introdujo el control de datos para facilitar el acceso a bases de datos.0 mejo- ró la productividad con la incorporación de la ayuda inteligente y la introducción de los controles ActiveX. con unas reglas metodológicas de programación análogas a las de otros lenguajes de programación orientados a objetos como C++. por ejemplo. Con la apari- ción de Windows 95. Des- pués dispusimos de Visual Basic . cambian la idea de programar de las versiones iniciales. 2010 y ahora Visual Basic 2012. y la versión 4. 2010 y ahora Visual Basic 2012.

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. Y “NET” hace refe- rencia al ámbito donde operarán nuestras aplicaciones web (Network . . desde el lado del diseño. al aspecto gráfico que toman los objetos cuando se ejecuta el código que los crea. 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. C#. Resumiendo.NET Framework (que incluye entre otras cosas la biblioteca básica de .NET. etc. como ASP.. Estos requisitos son materia de mis otros libros Microsoft Vi- sual Basic . no vamos a enseñar a programar aquí. resolviendo cada uno de los ejemplos que en ellos se detallan. por eso es necesario tener algún tipo de experiencia con un lenguaje de programación orientado a obje- tos (Visual Basic. ¿qué debe hacer el lector? Pues simplemente leer ordenadamente los capítulos del libro. . son lenguajes orientados a objetos). ambos editados también por RA-MA y Alfaomega Grupo Editor.NET (formularios web y servicios web) y ADO.NET y el compilador Visual Ba- sic) junto con otros componentes de desarrollo. Haber pro- gramado en . objetos que formarán la interfaz gráfica que el usuario de la aplicación utiliza para acceder a los servicios que ésta ofrece. Java. así como tener conocimientos de HTML y XML.red). depurador integra- do y muchas otras utilidades para facilitar un desarrollo rápido de aplicaciones. 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 . aplicaciones para acce- so a bases de datos y para Internet (páginas web). 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.NET y con Visual Basic sería lo ideal. La palabra “Basic” hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic Instruction Code). este paquete proporciona un editor de códi- go avanzado. 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.XXIV ENCICLOPEDIA DE MICROSOFT VISUAL BASIC La palabra “Visual” hace referencia.Curso de pro- gramación. un lenguaje utilizado por más programadores que ningún otro lenguaje en la historia de la informática. Evidentemente.Lenguaje y aplicaciones y Microsoft Visual Basic . Para ello.NET Framework. diseñadores de interfaces de usuario apropiados.

LINQ CAPÍTULO 15. Los capítulos 3 al 11 nos enseñan a desarrollar apli- caciones de escritorio que muestran una interfaz de ventanas al usuario. algoritmos de uso común. etc. Puede ver más detalles de cada uno de ellos en mi web: www. clases derivadas.NET PARA LINUX .NET CAPÍTULO 19. después. CAPÍTULO 1. matrices. Éste sí que es un libro de programación con Visual Basic en to- da su extensión.Lenguaje y aplicaciones se centra en la programa- ción básica: tipos. interfaces. excepciones.NET). a las bases de datos y a las aplicaciones para Internet.. INTRODUCCIÓN A MICROSOFT . DIBUJAR Y PINTAR CAPÍTULO 9. y hace una intro- ducción a las interfaces gráficas. INTERFAZ PARA MÚLTIPLES DOCUMENTOS CAPÍTULO 10. INTERNACIONALIZACIÓN APÉNDICE D. TABLAS Y ÁRBOLES CAPÍTULO 8. HERRAMIENTAS DE DESARROLLO APÉNDICE B. APLICACIÓN WINDOWS FORMS CAPÍTULO 4.NET y en el desarrollo de aplicaciones de escritorio. etc. ASP. ACCESO A UNA BASE DE DATOS CAPÍTULO 14.es. ENLACE DE DATOS EN WINDOWS FORMS CAPÍTULO 13.fjceballos.. Los capítulos 1 y 2 nos introducen en . PROGRAMACIÓN CON HILOS CAPÍTULO 12. INTRODUCCIÓN A WINDOWS FORMS CAPÍTULO 5. CONTROLES Y CAJAS DE DIÁLOGO CAPÍTULO 7. espacios de nombres. MENÚS Y BARRAS DE HERRAMIENTAS CAPÍTULO 6. Y los capítulos 15 al 20 nos enseñan cómo desarrollar aplicaciones para Internet (ASP. MI PRIMERA APLICACIÓN CAPÍTULO 3. PRÓLOGO XXV Microsoft Visual Basic .NET CAPÍTULO 2. . ficheros. utilizando la POO.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. PÁGINAS WEB APÉNDICE C. etc. SERVICIOS WEB CAPÍTULO 18. añade otros temas co- mo estructuras dinámicas de datos.NET) a base de formularios web. Los capí- tulos 12 al 14 cubren el enlace a datos. el acceso a bases de datos (ADO. hilos (programación concurrente). servicios web WCF y AJAX. AJAX APÉNDICE A. métodos.NET CAPÍTULO 16. el lenguaje de consultas integrado (LINQ) y el acceso a bases de datos con Entity Framework. CONSTRUCCIÓN DE CONTROLES CAPÍTULO 11. 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. SEGURIDAD DE APLICACIONES ASP. FORMULARIOS WEB CAPÍTULO 17. y Microsoft Visual Basic . PÁGINAS MAESTRAS CAPÍTULO 20. sentencias.

construir.NET Framework Softwa- re Development Kit (SDK) versión 4. caso del autor). por ello. 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). en general.5 que forma parte del entorno de desarrollo Microsoft Visual Studio 2012 que incluye todo lo necesario para escribir. Esto tiene que ha- cerlo antes de instalar Microsoft Visual Studio 2012 o Visual Studio Express 2012 for Web. les estoy francamente agradecido. y de todos los lec- tores. de la web www. Agradecimientos He recibido ayuda de algunas personas durante la preparación de este libro y. Por lo tanto. También deseo expresar mi agradecimien- to a Microsoft Ibérica por poner a mi disposición.XXVI ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Qué se necesita para utilizar este libro Este libro ha sido escrito utilizando el paquete Microsoft .ra-ma. basta con que instale en su má- quina Microsoft Visual Studio 2012. en cualquiera de sus versiones o. Francisco Javier Ceballos Sierra http://www.NET. Sobre los ejemplos del libro El código fuente de todos los ejemplos del libro podrá descargarse. verificar y ejecutar aplicaciones .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.fjceballos.microsoft. el software que el estudio de esta obra requiere. o superior. en particular.es desde la página web correspondiente al libro. como alternativa.es/ . según se indi- ca en los apéndices. descargue desde http://www.

PARTE     Introducción  Introducción a Microsoft .NET  Mi primera aplicación .

.

PARTE     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 .

.

PARTE     Acceso a datos  Enlace de datos en Windows Forms  Acceso a una base de datos  LINQ .

.

PARTE     Aplicaciones para Internet  ASP.NET  Formularios web  Servicios web  Seguridad de aplicaciones ASP.NET  Páginas maestras  AJAX .

PARTE

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

 

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

Acerca del material adicional
y de los apéndices
 Herramientas de desarrollo
 Páginas web
 Internacionalización
 .NET para Linux
 Índice

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.  Visual Studio Express for Windows 8.Ceballos/RA-MA HERRAMIENTAS DE DESARROLLO Cuando se utiliza un entorno de desarrollo integrado (EDI). Por ejemplo. Si no es así. http://www.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. lo primero que hay que hacer una vez instalado es asegurarse de que las rutas donde se localizan las herramientas. . Este proceso normalmente se ejecuta automáticamente durante el proceso de ins- talación de dicho entorno. algunos EDI sólo requieren la ruta donde se instaló el compilador. la documentación y los ficheros fuente hayan sido establecidos.J. el entorno proporcionará algún menú con las órdenes apropiadas para realizar dicho proceso. APÉNDICE A  F. las bibliotecas. 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.microsoft. entusiastas y apren- dices que quieren crear sitios Web y aplicaciones para Windows.

Veamos un ejemplo a continuación utilizando cualquiera de las ediciones de Visual Studio. basadas en Windows o para la Web. APLICACIÓN DE CONSOLA En el capítulo 2 vimos una introducción al desarrollo de aplicaciones con interfaz gráfica de usuario.. soluciones sobre Microsoft Office Sys- tem utilizando Excel.  Visual Studio Express for Windows Phone. Esta acción hará que se visualice una ven- tana que mostrará los tipos de plantillas que puede utilizar. Ediciones de Visual Studio para profesionales Visual Studio en sus versiones professional. Word e InfoPath. La figura si- guiente muestra esta ventana: . hacemos clic en Nuevo proyecto. y con herramientas de software de ciclo de vida productivas. 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. o bien ejecutamos la orden Archivo > Nuevo proyecto. La utilización de estas versiones requiere comprar una licencia.  Visual Studio Team Foundation Server Express. Para editar y ejecutar el programa HolaMundo utilizando cualquiera de las ediciones de Visual Studio. los pasos a seguir son los siguientes: 1. premium y ultimate. para crear un proyecto nuevo. integradas y extensibles que permiten a las empresas reducir la complejidad en la creación de soluciones orientadas a servicios. la elección de una u otra dependerá del tipo de aplicación que deseemos construir.. Partiendo de la página de inicio de MS Visual Visual Basic Express.1046 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC  Visual Studio Express for Windows Desktop. pero no abordamos el desarrollo de aplicaciones de consola que en ocasiones puede ser útil.

hace- mos clic sobre Module1. observe que el proyecto será creado en una carpeta con el mismo nombre. 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. especificamos el nombre del proyecto y su ubicación.vb. 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. elegimos la plantilla “Aplicación de consola”. Después. la opción “Guardar nuevos proyec- tos al crearlos”. A continuación pulsamos el botón Aceptar y obtendremos el esqueleto del proyecto de acuerdo con la plantilla seleccionada. seleccio- . si no lo está.vb y utilizando el botón derecho del ratón. Para cambiar el nombre asignado al fichero .

1048 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC namos del menú contextual que se visualiza la orden Cambiar nombre. antes de compilar la aplicación. . Si necesitáramos añadir un fichero nuevo a este proyecto. A continuación editamos el código que compone el programa. podemos verificar que se trata de una aplicación de consola: Proyecto > Propiedades de HolaMundo > Aplicación > Tipo de re- sultado > Aplicación de consola. haríamos clic con el botón derecho del ratón sobre el nombre del proyecto y seleccionaríamos Agregar > Nuevo elemento. finalmente. haríamos clic en el botón Agregar. elegiríamos el tipo de elemento que deseamos añadir y. 2. Después. Después. tam- bién podemos hacer este cambio a través de la ventana de propiedades.

ponga el puntero del ra- tón sobre cada uno de ellos). APÉNDICE A: ENTORNOS DE DESARROLLO 1049 3. . o bien pulsamos las teclas Ctrl+F5. Por ejemplo. ejecutamos la orden Generar HolaMundo del me- nú Generar. así como los resultados intermedios que se van sucediendo. Para compilar el programa. indistintamente por sentencias o por métodos. Los resultados de la compilación se muestran en la ventana Resultados. También puede ejecutar el programa seleccionando la orden Iniciar depura- ción del menú Depurar. Finalmente. o bien pulsando la tecla F5. con el fin de observar el flujo seguido durante su ejecución. El proceso de depuración consiste en ejecutar la aplicación paso a paso. La acción de ejecutar el programa acarrea también su compilación si fuera necesario. 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. para depurar una aplicación utilizando el depurador del entorno de desarrollo de Visual Studio. con la finalidad de detectar las anomalías que producen un resultado final erróneo. 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é. para ejecutar el programa seleccionamos la orden Iniciar sin depurar del menú Depurar.

 Paso a paso para salir o Mayús+F11.  Inspección rápida o Ctrl+Alt+Q. 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. Ejecuta la aplicación paso a paso.  Ejecutar hasta el cursor o Ctrl+F10.  Alternar puntos de interrupción o F9. 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. Visualiza el valor de la variable que está ba- jo el punto de inserción o el valor de la expresión seleccionada (sombreada). dicho método también se ejecutará paso a paso. Si la línea a ejecutar coincide con una llamada a un método definido por el usua- rio. Cuando un método definido por el usuario ha sido invocado para ejecutarse paso a paso. Ejecuta la aplicación paso a paso. Para ejecutar la aplicación en un solo paso. Además de la barra de herramientas Depurar. seleccione la orden Iniciar sin de- purar (Ctrl+F5) del menú Depurar. Compila la aplicación y genera el fichero ejecutable co- rrespondiente. utilizando esta orden se puede finalizar su ejecución en un solo paso. dicho método no se ejecutará paso a paso. Pone o quita un punto de parada en la línea sobre la que está el punto de inserción.  Paso a paso por procedimientos o F10. 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.  Paso a paso por instrucciones o F11. las órdenes disponibles para depurar una aplicación son las siguientes:  Iniciar o F5. Detiene el proceso de depuración. sino de una sola vez. . Si la línea a ejecutar coincide con una llamada a un método definido por el usuario.  Detener depuración o Mayús+F5.1050 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC De forma resumida.

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

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 utilidad
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

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
que cada orden va precedida por dos puntos (:).

etc.com/es-es/downloads Esta aplicación presenta una interfaz gráfica.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. Por tal motivo. para realizar tareas típicas como crear bases de datos.exe. 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. le será mostra- da la ventana de la figura siguiente. 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án solicitados el nombre del servidor de bases de datos. Seleccione en la lista del panel de la izquierda la base de datos con la que desea trabajar.microsoft. crear usuarios. muy sencilla de utilizar. 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. habrá comprobado que no dispone de una herramienta de administración de bases de datos. haga clic en el botón Nueva consulta de . que ha quedado obsoleta. Cuando inicie SQL Server Management Studio Express. los procedimientos almacenados. SQL SERVER MANAGEMENT STUDIO EXPRESS Si instaló SQL Server. gestionar las tablas de la base.

entonces es posible añadir al proyecto elementos nuevos de tipo base . haga clic en Cance- lar para crear y agregar la base de datos vacía al proyecto. después. Haga clic con el bo- tón secundario del ratón sobre el nombre del proyecto para agregar un nuevo ele- mento y seleccione Base de datos basada en servicio. Para ejecutar una sentencia SQL haga clic en el botón Ejecutar de la barra de herramientas. etc. escriba en el mismo las sentencias SQL que desee ejecutar. como no hay ningún objeto de base de datos disponible porque la base de datos es nueva. 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. Puede ver un ejemplo en el apartado Ejercicios resueltos del capítulo Acceso a una base de datos. APÉNDICE A: ENTORNOS DE DESARROLLO 1055 la barra de herramientas y. las relaciones entre las ta- blas. A continuación puede continuar añadiendo las tablas. Si instaló SQL Server 2012 Express (nombre predeterminado del servidor: sqlexpress). los datos de las tablas. A continuación se abrirá el asistente para la configuración de orígenes de datos y.

Elija como origen de datos Microsoft SQL Server. Se visualizará el mensaje La base de datos ‘bd_telefonos’ no existe. abra el Explorador de bases de datos (Ver > Otras ventanas > Explorador de bases de datos). Para ello. ¿Desea intentar crearla?: Haga clic en Sí. . Observará en el explorador de bases de datos que bd_telefonos ha sido creada.1056 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC de datos utilizando el 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. Se vi- sualizará la ventana siguiente: Escriba el nombre de la base de datos y haga clic en Aceptar.

NET.NET.NET en IIS. en su defecto.x. Ahora bien. INSTALACIÓN DE ASP. Puede ver un ejemplo de este proceso en el apartado Ejercicios resueltos del capítulo Acceso a una base de datos.xxxxx y ejecute: aspnet_regiis.NET en IIS. etc. que instala las secuencias de órdenes del cliente de esta versión en el subdirectorio aspnet_client de todos los directorios de sitios IIS.NET\Framework\vx. para crear y ejecutar aplica- ciones para Internet necesitará un servidor de aplicaciones.NET en IIS Para registrar manualmente ASP. haga clic con el botón secundario del ratón sobre el nodo Tablas y agregue una nueva tabla. amsx.NET EN WINDOWS ASP.exe -i -enable Esto habilitará IIS para la ejecución de ASP.) y ya podremos empezar a trabajar con ASP.exe -help) podrá observar algunas muy interesantes. la solución es registrar manualmente ASP. Registro manual de ASP. La instalación de IIS debe ser anterior a la de . en el caso de la plata- forma Windows éste es IIS (Internet Information Server). asax.NET (aspx. Si no se hizo así. registrará las extensiones de ASP. APÉNDICE A: ENTORNOS DE DESARROLLO 1057 El paso siguiente es añadir las tablas. Después complete el proceso de creación de la misma. ASP.NET Framework. abra una ventana de consola.NET no estará habilitado en IIS y no podremos realizar aplicaciones ASP.NET queda instalado automáticamente cuando instaló Visual Studio o.NET. como -c. . Despliegue el árbol correspondiente a la nueva conexión. En este caso. Visual Studio Express for Web. Si echa una ojeada a todas las opciones disponibles (aspnet_regiis. sitúese en la carpeta C:\WINDOWS\Microsoft.

Para poder depurar código JavaScript.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. contexto) { debugger. var elementos = . seleccione Herramientas > Op- ciones de Internet > Opciones avanzadas y asegúrese de que no esté seleccionada la opción “Deshabilitar la depuración de scripts”: Cumplido el requisito anterior. el primer paso es habilitar esta opción en el navegador. la ejecución se detendrá y podrá continuarla paso a paso. Si esto tampoco soluciona- ra el problema. sólo queda desinstalar el producto y volverlo a instalar. pruebe a reparar la instala- ción actual a partir del material adicional del producto. sólo queda poner en el código JavaScript a de- purar la sentencia debugger. DEPURAR CÓDIGO JAVASCRIPT En una aplicación ASP.1058 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Si la operación anterior no solucionó el problema. function CargarTabla(resultado. cuando inicie la depuración de la aplicación y el flujo de ejecución pase por esta sentencia. En el caso de Internet Explorer. De esta forma.

. APÉNDICE A: ENTORNOS DE DESARROLLO 1059 LoadXmlFromString(resultado). por ejemplo el patrón de arquitectura de software Model- View-ViewModel (MVVM) utilizado por WPF y Silverlight. el . lo que simplifica el desarrollo. lo habitual es crear un modelo de clases si- guiendo algún patrón. Además.  La vista. o tener más de una actuando sobre los mismos datos. En el caso de las aplicaciones Silverlight. comprensión y la realización de pruebas del código fuen- te. nacido del entorno Smalltalk a finales de los años 70. if (TablaResultados != null) { // . Es el responsable de los datos y de la lógica de negocio de la apli- cación. 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.. es fácil remplazar las vistas. que es un sucesor del ampliamente conocido Model-View-Controller (MVC) utilizado por ASP. Es el responsable de mostrar los datos al usuario y de permitir su ma- nipulación desde y hacia el modelo.getElementById("TablaDeResultados"). TablaResultados = document.getElementsByTagName("string").  El controlador.NET MVC. DESARROLLO Para el desarrollo de una aplicación. por lo que el controlador solo es responsable de imple- . Con el modelo MVC cada tipo de objeto es responsable de una cosa. 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.NET Framework dispone de la capacidad de usar enlaces (bindings) para transferir directamente datos desde el controlador hacia la vista.

. 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.  La vista. dando origen al patrón MVVM donde:  El modelo. 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. Por lo tanto MVVM comparte todos los beneficios de MVC. se puede pensar en este tipo de objetos como una abstracción de la vista.  El modelo-vista. ratón u otros elementos en forma de controles desde la interfaz gráfica. teclado. el controlador se denomina mo- delo de vista (view model). En este caso. transformando los datos reci- bidos del modelo en datos aptos para la vista y viceversa. Debe encontrarse comple- tamente aislado de la interfaz de usuario. 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. Objeto que separa y aísla completamente a la vista del mode- lo.1060 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC mentar el comportamiento de esta. que además hace las funciones de intermediario.

inter-red.Ceballos/RA-MA PÁGINAS WEB ¿Quién no ha oído hablar de Internet? La respuesta es evidente. 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. dos redes independientes. Esta red crece y a principios de los años 80 se conecta con CSNet y MILNet. APÉNDICE B  F. aunque en sus inicios no fue ésta la in- tención. 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.J. El resultado fue ARPANet (1969). ¿qué servicios ofrece? ¿QUÉ ES INTERNET? Internet. ¿qué es Internet?. Pero. Hay muchas empresas que le proporcionan conexión las 24 horas del día por un precio asequible. lo que se considera como el nacimiento de Internet (Inter- . porque donde quiera que esté oirá hablar de Internet. es decir. ¿Por qué? Porque hoy en día forma parte del mundo de los negocios y del comercio.

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. Internet no es una simple red. las funciones de una red se pueden agrupar en capas de servicios de la red. entendiendo por protocolo un conjunto de normas que regulan la comunicación entre los distintos dispositivos de una red. esto es. el protocolo TCP/IP visto desde este punto de vista puede imaginárselo de forma resumida así: . cuando se trata de flujos de información multimedia. Intranet Una intranet no es más que una red local que utiliza los mismos protocolos que Internet. Desde el punto de vista del usuario. Internet es una red pública que interconecta universidades. Por ejem- plo. Esto ha dado lugar a dos subpoblaciones dentro de Internet: in- tranets y extranets. lo que posibilita una comunicación muy fluida. 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. También forman parte de esta red NSI (NASA Science Internet) y NSFNet (National Science Foundation Net). 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.Protocolo de Control de Transmisiones/Pro- tocolo Internet).1062 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC national Network of computers). incluso. ¿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. Sólo recientemente ha comenzado a formar parte de los negocios y de nuestra vida cotidiana. servicios gubernamentales y empresas. una intranet suele estar dotada de una velocidad bastante mayor que la habitual en In- ternet. independientemente de que esté o no conectada a Internet. 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. centros de investigación. Terminología Internet Desde el punto de vista físico. lo que redunda en un ahorro de formación. sino miles de redes informáticas que trabajan conjuntamente bajo los protocolos TCP/IP (Transmision Control Protocol/Internet Protocol . Por otra parte.

¿Cómo se identifican estos luga- res? La respuesta es con direcciones de Internet que permitan identificar tanto el ordenador como el usuario.dominio Por ejemplo: uni.. Telnet.es En este ejemplo.[subdominio]. es es el dominio. y uni un subdominio de alcala. como la API de Windows Sockets. Utilizar una interfaz de programación.[. ya que un mismo ordenador puede tener dados de alta diferentes usuarios. 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. APÉNDICE B: PÁGINAS WEB 1063 Aplicación (FTP. Word Wide Web) API de Windows Sockets Transporte (TCP y UDP) Red (IP) Enlace (controlador de dispositivo. 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.]. tarjeta de red. 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 . alcala es un subdominio de es. li- bera al programador de tratar con detalles de cómo se pasan los paquetes de in- formación entre las capas inferiores.. Gopher.alcala. Un DNS tiene el formato siguiente: [subdominio]. Estas direcciones son especificadas según un convenio de sis- tema de nombres de dominio (DNS).

82. cuando llega una solicitud de infor- mación sobre la zona de la que es responsable un determinado servidor.[.]. Protocolo que permite buscar y recuperar documentos mediante un sistema de menús. y UDP es similar.1064 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Cada nombre de dominio se corresponde con una única dirección de Internet o dirección IP. A continuación.dominio Los programas que gestionan los nombres de dominio se denominan servido- res de nombres. Los servidores DNS constituyen la base de datos distribuida de nombres de Internet. se indican algunos bastante conocidos:  FTP (File Transfer Protocol . En esta capa se emplean dos protocolos diferentes: TCP y UDP. el servidor de nombres se pone en contac- to con el servidor de esa zona. Protocolo pa- ra gestionar el correo electrónico.  Gopher. Por ejemplo: 130. entre el usuario y su servidor de correo. La capa de aplicación proporciona una interfaz a la aplicación que ejecuta un usuario. la sintaxis empleada es: usuario@[subdominio]. La capa de transporte es responsable de la entrega fiable de los datos. Cada servidor de nombres posee información completa de una determinada zona (subconjunto de un dominio) y de otros servidores de nombres responsables de otras zonas.. solicitando acuse de recibo. en base a su recepción y envío posterior. Copia ficheros de una máquina a otra.[subdominio]. Con este fin son empleados también los protocolos IMAP (Internet Message Access Protocol) y HTTP (correo web). cuando llega una solicitud de información para una zona diferente.206. salvo en que no solicita acuse de recibo de los datos.7 Para referirse a un usuario perteneciente a un determinado dominio.Protocolo de transferencia de ficheros). TCP toma mensajes de usuario de longitud variable y los pasa al nivel de red.Protocolo de oficina de correos). Existen muchos protocolos en TCP/IP. Sin embargo. .. proporciona el conjunto de órdenes que el usuario utiliza para comunicarse con otros ordenadores de la red. éste sen- cillamente proporciona la información. Una dirección IP es un valor de 32 bits dividida en cuatro campos de 8 bits. De esta forma. Dicho de otra forma.  POP 3 (Post Office Protocol .

etc. Se trata de un sistema avanzado para la búsqueda de información en Internet basado en hipertexto y multimedia. El correo electrónico (correo-e o e-mail) es uno de los servicios más utiliza- dos en todo el mundo. tiene como finalidad permitir en- viar y recibir mensajes. y su manejo. Protocolo utilizado para establecer conexiones entre terminales remotos. Programas que facilitan estos servicios hay muchos. Protocolo para controlar el intercambio de correo electrónico entre dos servi- dores de correo en Internet. Un ejemplo de aplicación que proporciona este servicio es Microsoft Outlook Express.  HTTP (HyperText Transfer Protocol). la conexión remota.Protocolo de telecomunica- ciones de red). APÉNDICE B: PÁGINAS WEB 1065  SMTP (Simple Mail Transfer Protocol . Nombre con el que se denomina al conjunto de los grupos de discu- sión y noticias. inde- pendientemente de los que se utilicen en los ejemplos. también llamados navegadores.La telaraña mundial). El software utilizado consiste en exploradores (browsers). lo que le permite ejecutar órdenes como si estuviera conectado localmente. transfe- rencia de ficheros. tenga presente que sólo podrá acceder a Internet si además de un ordenador y un módem (un módem es un dispositivo que conecta un orde- nador a una línea telefónica). Como su nombre indica. ha contratado dicho servicio con un proveedor de Internet. es similar. SERVICIOS EN INTERNET Los servicios más comunes son el correo electrónico.  USENet. Permite establecer conexiones entre máquinas con diferentes siste- mas operativos. La idea de USENet es servir como tablón electrónico de anuncios. usted puede emplear los suyos de forma análoga. En cualquier caso.  Telnet (Telecomunications NetWork Protocol .Protocolo de transferencia de correo). Por eso. además de sencillo. o bien si su ordenador forma parte de una red que le ofrece acceso a In- ternet. grupos de noticias y la WWW. . establecidos en Internet. La orden telnet (de Windows. Unix. Protocolo de transferencia de hipertex- to utilizado por WWW (World Wide Web . con una interfaz gráfica.) proporciona la capacidad de mante- ner sesiones como un terminal del ordenador remoto.

ya que es fácil equivocarse al es- cribir la orden. Una interfaz de línea de órdenes proporciona un acceso pleno a las facilidades de ftp. Los grupos de noticias. netnews o simplemente news. open Inicia una conexión ftp con el ordenador remoto especificado. mget Obtiene un grupo de ficheros que pueden haberse especificado uti- lizando algún comodín. imágenes llenas de color. close Finaliza la sesión ftp. get Obtiene un fichero del ordenador remoto. Los artículos de noticias de USENET se clasifican en grupos de noticias por temas (ordenadores. binary Establece el modo binario para la transferencia de ficheros. alpinismo. cd Cambia de directorio de trabajo en el ordenador remoto. vídeo y enlaces a otras pági- nas distribuidas por todo el mundo. Puede acceder a esas otras páginas . son foros de discusión en línea. Suele utilizarse para seleccio- nar los directorios a los que irán a parar los ficheros transferidos. también conocida por WWW o simplemente Web. La World Wide Web. es uno de los logros más interesantes en Internet. bye Finaliza la sesión ftp y sale. Afortunadamente existen varias interfaces gráficas de usuario que eliminan la posibilidad de error a la que hacíamos mención anteriormente. La Web es un sistema hipermedia inter- activo que permite conectarse a grandes cantidades de información en Internet. aplicaciones. Las órdenes ftp utilizadas con mayor frecuencia son las siguientes: Orden ftp Significado ascii Establece el modo ASCII para la transferencia de ficheros. noticias USENET. ftp Inicia una sesión ftp. pero el riesgo de cometer errores es alto. Un sistema hipermedia está compuesto por páginas que contienen texto cuidadosa- mente formateado.1066 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC El protocolo de transferencia de ficheros (ftp) es un método sencillo y efecti- vo de transferir ficheros ASCII y binarios entre ordenadores conectados a una red TCP/IP. lcd Cambia al directorio local de trabajo. etc. ls Lista el contenido de un directorio remoto. mput Envía un grupo de ficheros que pueden haberse especificado utili- zando algún comodín.). help Proporciona las órdenes ftp disponibles o información relativa a la orden especificada. sonido. put Envía un fichero al ordenador remoto.

. si ini- cia la aplicación Microsoft Internet Explorer. inicie uno de los programas de los muchos que hay para navegar por este sistema de información. y automáticamente le mostrará una pantalla de información que le conducirá a muchas otras. Por ejemplo. sonido y gráficos. La información se recupera auto- máticamente sin necesidad de saber dónde está. APÉNDICE B: PÁGINAS WEB 1067 simplemente seleccionando uno de los enlaces. El botón Detener detiene una página que se está cargando actualmente. Suponiendo que física- mente está conectado a Internet. La forma de establecer una conexión es muy sencilla. Esto se debe fundamentalmente a que soporta información de todo tipo: texto. que fue iniciado en el Centro Europeo de Investigación Nu- clear (European Center for Nuclear Research). Los botones Atrás y Adelante le permiten moverse a través de las páginas que usted ya ha visitado. se visualizará una ventana similar a la siguiente: La ventana del explorador (también llamado navegador) tiene una barra de menús donde están todas las órdenes que puede utilizar y una barra de herramien- tas correspondientes a las órdenes más utilizadas para navegar por la Web. ha crecido a una velocidad impre- sionante. El proyecto Web. quizás porque usted ha cambiado de opinión una vez que ha visto parte de la página.

Lenguaje para hipertexto). antes debe conocer básicamente lo que es HTML (HyperText Markup Language . Si desea buscar información adicional rápidamente. Este panel le pro- porciona acceso a diversos servicios de búsqueda que ofrecen diferentes clases de capacidades de búsqueda. por ejemplo.1068 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC El botón Actualizar vuelve a cargar la página que se esté visualizando en ese momento. A di- ferencia de los lenguajes convencionales. haga clic en la pestaña General y después en Usar actual. Qué es HTML HTML es un lenguaje utilizado para desarrollar páginas y documentos web. Para iniciar la búsqueda. en la barra de direcciones (espacio en el que puede escribir y mostrar la dirección de una página web). habrá visto muchas páginas con magníficos gráficos. El botón Inicio le permite volver a la página de inicio. Para ello. vaya a la página que desea que aparezca cuando arranque por primera vez el explorador. esto es necesario debido a fallos en la red. Para cambiar su página de inicio. Pero. aparece el panel de búsqueda del navegador a la izquierda de la ventana. haga clic en Buscar en esta página del menú Edición. Dichas etiquetas serán posteriormente interpretadas por los exploradores encargados de visualizar la página o el documento web con el fin de establecer el formato. puede buscar un texto específico en di- cha página. ejecute la orden Opciones de Internet del menú Herramientas. formularios y otros elementos muy atractivos. listas. También puede utilizar buscadores como Google. A veces. el lenguaje utilizado para construir páginas web. Internet Explorer inicia- rá inmediatamente una búsqueda mediante el servicio de búsqueda predetermina- do. HTML utiliza una serie de etiquetas es- peciales intercaladas en un documento de texto sin formato. si ya lo ha hecho. find o ? seguido de una palabra o una frase. PÁGINAS WEB Anteriormente ha aprendido cómo acceder a la Web. Pruebe los distintos servicios de búsqueda para ver las clases de información que proporcionan. Una vez que esté en una página web. Cuando hace clic en el botón Búsqueda de la barra de herramientas. puede escribir go. ¿cómo se puede crear una página web de estas característi- cas a la que otros usuarios puedan acceder? Hay muchas herramientas que le per- mitirán realizarlo. .

La etiqueta de apertura incluye el atributo size (tamaño) al que se asigna el valor 10. La etiqueta head contiene etiquetas que afectan a la página web completa. Para ver una página HTML no necesita una conexión a la red. cualquier explorador web debe permi- tirle hacerlo trabajando en local. la siguiente lí- nea de código muestra cómo utilizar atributos y valores con la etiqueta font. <font size="10">Usuario:</font> Todas las etiquetas de una página web se colocan dentro de la etiqueta html. Etiquetas básicas HTML Las etiquetas indican a los exploradores web cómo tienen que mostrar el texto y los gráficos. No obstante. las páginas deben ser colocadas en un servidor web para que otros usuarios puedan acceder a ellas. Posteriormente. Por ejemplo. y la etiqueta body contiene el resto de las etiquetas que definen el contenido de la página web. diríjase a la carpeta donde lo ha guardado y haga doble clic sobre el nombre del fichero. HTML no es sensible a las minúsculas y mayúsculas.html. Según lo expuesto. la cual define dos secciones: head (cabecera) y body (cuerpo). después aparece el texto que se desea mostrar con el tamaño especificado. imágenes. Muchas etiquetas incluyen dis- tintos atributos que detallan la forma de mostrar el texto que aparece entre ellas. A continuación. el esqueleto de una página web puede ser el si- guiente: <html> <head> <title>Título del documento</title> </head> <body> Cuerpo del documento: texto. y a continuación la etiqueta de cierre. todo lo que nece- sita es un editor de texto sin formato y un explorador web. El resultado será el siguiente: . existen otras herramientas como FrontPage que facilitan la generación de páginas HTML. Normalmente se escriben entre los símbolos < y >. sonido y órdenes HTML </body> </html> Guarde ahora estas líneas en un fichero de texto ASCII con el nombre esque- leto. APÉNDICE B: PÁGINAS WEB 1069 Para editar una página HTML y posteriormente visualizarla. por ejemplo title (título). y suele haber una etiqueta de comienzo (<texto etiqueta>) y otra de fin (</texto etiqueta>) para en- marcar el texto que va a ser formateado por ellas.

puede hacerlo con la etiqueta hr (horizontal rule . .html): <html> <head> <title>Título del documento</title> </head> <body> <h1>Ejemplo de un documento HTML</h1> <hr> <h3>El cuerpo del documento puede contener:</h3> <h4>Texto. El ta- maño del texto es mayor cuanto mayor es el nivel (el nivel más alto es el 1). Para introducir un párrafo. utilice la etiqueta p o nada. por lo tanto.raya horizontal). donde n es un valor de 1 a 6. El siguiente ejemplo clarifica lo expuesto hasta ahora (está localizado en el fi- chero Cap15\HTML\texto. las páginas HTML pueden tener cabeceras. HTML utiliza una serie de etiquetas especiales intercaladas en un documento de texto sin formato.1070 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Etiquetas de formato de texto Igual que en un documento Word. <p> A diferencia de los lenguajes convencionales. Los niveles no tienen por qué emplearse consecutivamente. imágenes. Los retornos de carro en el texto son ignorados. una raya horizontal. Un párrafo va precedi- do automáticamente por una línea en blanco. cuando quiera introducir uno utilice la etiqueta br. Si desea insertar algún tipo de separador. Las cabeceras son insertadas con la etiqueta hn. por ejemplo. sonido y órdenes HTML</h4> <p> HTML es un lenguaje utilizado para desarrollar páginas y documentos web.

A HTML no le importa que las etique- tas estén al final de la línea o en cualquier otra parte. La etiqueta code visualiza un texto monoespaciado. con el fin de establecer el formato. El texto se ajustará en todo momento al tamaño de la ventana. Los exploradores web ignoran dónde terminan las líneas de texto. tamaño 2. También hay etiquetas que no requieren poner la etiqueta final. Por ejemplo. por ejemplo hr. el tamaño y el color del tipo de letra a utilizar. la etiqueta b indica negrita y la i itálica. p o br. </p><hr> </body> </html> Observe la colocación de las etiquetas. El resultado del código HTML anterior es el siguiente: HTML también proporciona un número de etiquetas para dar formato a las palabras y a los caracteres. <b>negrita</b> y <i>cursiva</i> </font> . APÉNDICE B: PÁGINAS WEB 1071 <br> Dichas etiquetas serán posteriormente interpretadas por los exploradores encargados de visualizar la página o el documento web. La etiqueta font permite es- pecificar el nombre. Por ejemplo: <font size=2 face="Arial"> Tipo de fuente Arial.

Un URL añade. Por ejemplo.microsoft. Por ejemplo. Por ejemplo: http://msdn. la lista anterior se presentaría numerada. telnet.com/library/spa/default. <ol><li>Texto <li>Imágenes <li>Sonido <li>Órdenes HTML</ol> El resultado será (ejemplo localizado en el fichero Cap15\HTML\listas. obtendrá esta información en forma de lista en lugar de en línea. si en la página anterior introduce la siguiente modificación.Localizador uniforme de recursos). además.asp .html): URL A los recursos de la Web se accede por medio de una dirección descriptiva cono- cida como URL (Uniform Resource Locator . etc. <li>Texto <li>Imágenes <li>Sonido <li>Órdenes HTML La lista puede numerarse utilizando la etiqueta ol. news.). Los URL son básicamente una extensión de la ruta que define a un fichero (path). gopher. Finalmente aparece la ruta de acceso al fichero. con la si- guiente línea. ftp.1072 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC La información también se puede organizar en listas empleando la etiqueta li. así como un nombre de dominio o dirección IP que indica el servidor que almace- na la información. un prefijo que identifica el método de recupera- ción de la información que ha de emplearse (http. Todo aquello a lo que se puede acceder en la Web tiene un URL.

APÉNDICE B: PÁGINAS WEB 1073 Enlaces entre páginas Hemos dicho que la World Wide Web es un servicio de información basado en hi- pertexto. Para definir un enlace. Esta etiqueta delimita el texto que se quiere utilizar para enlazar con otra página. en documentos largos. el siguiente código implementa estas dos facilidades (ejemplo localizado en Cap15/HTML/enlaces. saltos o accesos directos. Por ejemplo.html): <html> <head> <title> Título del documento </title> </head> <body> <h1>Ejemplo de un documento HTML</h1> <hr> <h3>El cuerpo del documento puede contener:</h3> <h4> <ol><li>Texto <li>Imágenes <li>Sonido <li>Órdenes HTML</ol> </h4> <p> <a name="Definición">HTML</a> es un lenguaje utilizado para desarrollar páginas y documentos web. se utiliza la etiqueta a (anchor o ancla). HTML utiliza una serie de etiquetas ASCII especiales intercaladas en un documento escrito en ASCII. <p> . fo- cos. con el fin de establecer el formato. de forma que cuando un usuario haga clic en esa palabra o imagen. el sistema lo transporta desde el lugar actual a otro lugar del mismo o de otro documento. Este texto aparecerá subrayado para el usuario. Se denomina hipertexto a la capacidad de asociar a una palabra o imagen de un documento un código oculto. incluya en la etiqueta de apertura a el atributo href y es- criba a continuación el URL de la página que se quiere recuperar. se puede utilizar el atributo name para asig- nar un nombre a un enlace y después utilizar href en otro lugar dentro de la mis- ma página para saltar a ese enlace. También. Para indicar al explorador la página que tiene que recuperar cuando el usuario haga clic en un enlace. <br> Dichas etiquetas serán posteriormente interpretadas por los exploradores encargados de visualizar la página o el documento web. Estos códigos especiales se denominan enlaces. <p> A diferencia de los lenguajes convencionales.

<hr> Haga clic <a href="http://www. todo lo que necesita es un editor de texto ASCII y un explorador web. Por ejemplo: <html> .html"> aquí</a> para ir a la página de inicio </body> </html> El resultado puede verlo en la figura siguiente: Gráficos Una forma de insertar imágenes en un documento HTML es utilizando la etiqueta img y sus atributos src..jpeg). Para contemplar esta posibilidad. y align.jpeg" align=bottom alt=" [Foto del profesor Ceballos]"> </center> <hr> Haga clic <a href="http://www.gif o . que permite especificar el nombre del fichero que contie- ne la imagen (habitualmente . Cuando diseñe una página web.sitio_web/ini/inicio..html"> . utilizaremos el atributo alt que permite especificar un texto en el lugar de la imagen cuando el explorador no pueda mostrarla. middle o bottom).sitio_web/ini/inicio. <hr> <center> El profesor Ceballos resolviendo dudas a sus alumnos.1074 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Para editar una página <a href="#Definición">HTML</a> y posteriormente visualizarla. piense que puede haber exploradores que no soportan gráficos. <img src="ceballos. que permite indicar cómo el ex- plorador debe alinear la imagen con cualquier texto que esté cerca de ella (top.

width y height.html. APÉNDICE B: PÁGINAS WEB 1075 aquí</a> para ir a la página de inicio </body> </html> La etiqueta center centra la imagen y el título de la imagen.jpg.html" width=650 height=300></iframe> </center> . Igual que utilizamos una palabra para enlazar con otro lugar. esto es. Por ejemplo: Haga clic <a href="ceballos. Por ejemplo: <center> <a href="enlaces. Sin embargo.html cuando el usua- rio haga clic sobre la imagen ceballos.jpg" align=bottom alt="Foto del profesor Ceballos"> </a> </center> El código anterior realizará un salto a la página enlaces. Una forma de insertar un marco flotante en una página es utilizando la etique- ta iframe con los atributos src. Por ejemplo: <center> El autor:<br> <iframe src="ceballos. El atributo src especifica el URL del documento que se quiere visualizar. un clic sobre una imagen gráfica le puede conducir a otro lu- gar. Marcos Las páginas HTML que hemos escrito en los apartados anteriores ocupan toda la ventana del explorador. También desde un documento puede saltar a otro. el cursor se transforma en una mano y aparece una etiqueta que visualiza “Foto del profesor Ceballos”. utilizando marcos es posible visualizar múl- tiples documentos en una misma página. Cuando ejecute este código.html"> aquí</a> para ir a la biografía de Ceballos. podemos utilizar una imagen. se cargará un nuevo documento HTML guardado como ceballos. observe que al pasar el ratón por encima de la imagen. y width y height indican la anchura y la altura del marco.html"> <img src="ceballos. El ejemplo anterior indica que cuando el usuario haga clic en la palabra “aquí”.

com" width=650 height=300></iframe> La figura siguiente muestra un marco dentro de una página. Por ejemplo. casillas de verificación.1076 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC El código anterior crea un marco para visualizar el documento ceballos. Para crear un formulario. El código puede verlo en el fichero marco. tablas. el segmento de código siguiente muestra cómo es el esqueleto de un formulario HTML: <form method={get|post} action="fichero para procesar los datos"> Controles que forman el formulario </form> .html. botones de opción. Esto es. Al atributo src se le puede asignar también una dirección URL de cualquier página de cualquier servidor. Formularios Los formularios permiten crear interfaces gráficas de usuario en el seno de una página web. denominados también contro- les. serán cajas de texto. Los componentes de estas interfaces. se utiliza la etiqueta form.microsoft. etc. botones de pulsación. cajas para clave de acceso. menús. <iframe src="http://www. listas desplegables.html de la carpeta Cap15\HTML del material adicional.

En los siguientes apartados se indica cómo crear cada uno de estos contro- les. Se utiliza para solicitar a un usuario que introduzca un dato. Otros atributos que se pueden utilizar son value para especificar un valor inicial. truncándose la información en exceso. Caja de texto Una caja de texto es un control de entrada de tipo text. en este caso. se envía uno por omisión). La cantidad de datos que se puede concatenar al URL está limitada. readonly (que no lleva asociado ningún valor) para indicar que la caja es de sólo lectura y maxlen- gth para especificar el número máximo de caracteres que un usuario puede escri- bir. Entrada básica de datos Existe una amplia variedad de controles de entrada de datos. . por cada control se envía al servidor su nombre y su contenido o valor especificado (si no se especifica un valor. la siguiente línea de código muestra una caja de texto para solicitar un nombre. Para crearlos. APÉNDICE B: PÁGINAS WEB 1077 El atributo method es opcional y su valor por omisión es get indicando así al navegador que debe agregar los nombres de los campos del formulario y sus datos al URL especificado por action (acción a tomar cuando se pulse el botón enviar). se uti- liza la etiqueta input y los atributos type y name: <input type = {text|password|checkbox|radio|hidden|image|submit|reset} name = "Variable que toma el valor" > El valor del atributo type especifica el tipo de control que se creará. Por ejemplo. En general. Esto no ocurre si el valor para este atributo es post. El tamaño de la caja es 35 y el valor será almacenado en la variable nombre: Nombre: <input type="text" name="nombre" size="35"> El valor del atributo size especifica el tamaño de la caja. Los controles que forman parte del formulario se definen dentro de la etiqueta form. se transmite un fichero con los datos del formulario que será recibido en el servidor en la entrada estándar del componente de procesamiento. y el del atributo name el nombre de la variable que almacenará el dato.

Por ejemplo. Cuando se envíen los datos del formulario. El tamaño de caja es 25. cuando selecciona una.1078 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Caja de clave de acceso Una caja de clave de acceso es un control de entrada de tipo password. la que estaba seleccionada dejará de es- tarlo. Dicho estado. todos los botones de opción tendrán el mis- mo atributo name y con un valor distinto del atributo value. las siguientes líneas de código muestran tres botones de op- ción. se puede especificar el mismo nombre para todas). Se trata de una caja de texto en la que los caracteres escritos son reemplazados por asteris- cos. También será enviado el valor indicado por value o nulo si no se especificó. se enviarán el nombre de la va- riable y el valor que indique su estado. Por ejemplo. el valor será almacenado en la variable clave y el número máximo de caracteres que admite es 20: Clave de acceso: <input type="password" name="clave" size="25" maxlength="20"> Casilla de verificación Una casilla de verificación es un control de entrada de tipo checkbox. Se trata de un botón que puede presentar dos estados: seleccionado y no seleccionado. El atributo checked permite iniciar el estado de una casilla a seleccionado. El segundo se mostrará seleccionado: <input type="radio" name="opcion" value="1"> Opción 1 <br> <input type="radio" name="opcion" value="2" checked> Opción 2 <br> <input type="radio" name="opcion" value="3"> Opción 3 <br> Para el comportamiento descrito. Se utilizan para mostrar y registrar una opción que un usuario puede elegir entre varias. Botón de opción Un botón de opción es un control de entrada de tipo radio. La primera se mostrará seleccionada: <input type="checkbox" name="cv1" value="1" checked> Opción 1 <br> <input type="checkbox" name="cv2" value="2"> Opción 2 <br> <input type="checkbox" name="cv3" value="3"> Opción 3 <br> Se debe especificar el atributo name (como caso especial. Se utilizan para mostrar y registrar opciones que un usuario puede elegir. la siguiente línea de código muestra una caja de texto para soli- citar una clave de acceso. El valor enviado será . puede presentar dos estados: seleccionado y no se- leccionado. las siguientes líneas de código muestran tres casillas de verificación. puede se- leccionar varias de un grupo de ellas. es almacenado por el atributo name. on u off. Por ejemplo. Igual que ocurre con la casilla de verificación.

Los datos del formulario se enviarán al hacer clic sobre la imagen . <input type="submit" name="enviar" value="Enviar"> <input type="submit" name="buscar" value="Buscar"> Borrar los datos de un formulario Un botón borrar es un control de entrada de tipo reset. será enviada la variable con el valor de value. Todo formulario debe tener un botón submit. <input type="hidden" name="variable" value="valor"> Se suelen utilizar para mantener datos durante una sesión. Se utiliza para enviar los datos del formulario. Su finalidad es análoga al botón submit. APÉNDICE B: PÁGINAS WEB 1079 el correspondiente al botón seleccionado.gif. Lo normal es que este control no envíe datos. <input type="reset" value="Borrar datos"> Imágenes Una imagen es un control de entrada de tipo image. pero si se incluye el atributo name con un nombre de variable. a menos que incluya una caja de texto. Se utiliza para restable- cer los valores iniciales de los controles del formulario.jpg o . pasando el control al programa indicado por el atributo action del formulario. pero en este caso se presenta una imagen en lugar de un botón. <input type="image" src="fichero. Parámetros ocultos Un parámetro oculto es un control de entrada de tipo hidden. El atributo checked permitirá seleccio- nar por omisión uno de los botones de un grupo. En este caso no se muestra ningún campo de entrada de datos al usuario. Enviar datos Un botón enviar es un control de entrada de tipo submit. Esto puede ser útil para distinguir cuál fue el botón pulsado cuando se in- cluyan varios. <input type="submit" value="Enviar datos"> El atributo value especifica una etiqueta no editable que se mostrará como títu- lo del botón. pero el par variable valor especificado es enviado junto con el formulario.jpg"> .

por ejemplo. En este caso. un mensaje. de las cuales aparecerá seleccionada inicialmente la segunda: <select name="opcion"> <option value="1"> Opción 1 <option selected value="2"> Opción 2 <option value="3"> Opción 3 </select> . Las opciones de la lista se especifican utilizando la etiqueta option.. o bien por el atributo tabindex. El control que se seleccionará en primer lugar es el 1. Es la mejor al- ternativa para añadir menús a una interfaz gráfica. El atributo wrap. La etiqueta que permite crear un control de este tipo es select. 2. Caja de texto multilínea En ocasiones es necesario permitir al usuario escribir varias líneas de texto libre.. que no lleva asociado ningún valor. Listas desplegables Una lista desplegable permite seleccionar una opción entre varias. indica que se saltará automáticamente a la línea si- guiente cuando se complete la línea en la que se escribe. 3. el orden en el que los controles serán recorridos queda de- terminado por su orden de aparición en el formulario.) que corresponde al orden en el que se seleccionará un control cuando el usuario pulse la tecla tab. Por ejemplo: <input type="text" name="nombre" size="30" tabindex="1"> El valor de tabindex es un número (1. Por ejemplo. el usuario puede utilizar la te- cla tab. Para esto se utiliza un control denominado área de texto (textarea) que incluye una barra de desplazamiento vertical: Mensaje: <br><textarea name="mensaje" rows="5" cols="20" wrap> </textarea> El valor del atributo rows especifica el número de filas que visualizará el área de texto a la vez y cols el número de caracteres por fila. el siguiente código mostrará una lista desplegable con tres opciones.1080 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Orden de tabulación Para trasladarse de un control a otro del formulario.

si se omite este atributo. que permita a un alumno concertar una tu- toría con su profesor. co- mo el que muestra la figura siguiente. APÉNDICE B: PÁGINAS WEB 1081 El atributo value de option indica el valor asociado con la opción especifica- da. el valor que se toma es el texto especificado para la opción. Para permitir realizar selecciones múltiples utilizando las teclas Ctrl o Alt. . cada grupo será identificado con una etiqueta especificada por el atributo label. vamos a diseñar un formulario. en este caso se mostrará una lista desplegada. Por ejemplo: <select name="opcion" multiple> <option value="1"> Opción 1 <option selected value="2"> Opción 2 <option value="3"> Opción 3 </select> Utilizando la etiqueta optgroup. La etiqueta option que contenga el atributo selected será considerada la opción por omisión. Se puede también especificar el atributo size para indicar el número de opciones que la lista visualizará a la vez. se pueden agrupar las opciones (como si de un submenú se tratara). hay que añadir el atributo multiple. Por ejemplo: <select name="opcion"> <optgroup label="grupo 1"> <option value="1"> Opción 1 <option value="2"> Opción 2 <option value="3"> Opción 3 </optgroup> <optgroup label="grupo 2"> <option value="4"> Opción 4 <option value="5"> Opción 5 </optgroup> </select> Aplicando la teoría expuesta hasta ahora. en caso de que no se especifique ninguna se considerará la primera de las opciones.

<html> <head> <title>Concertar una tutoría</title> </head> <body> <h1 align="center">CONCERTAR UNA TUTORÍA</h1> <form action="http:\\localhost:8080/miap/tutorias" method=post> Alumno:<br><input type="text" name="alumno" size="60"> <br><br>Con el profesor: <br><input type="text" name="profesor" size="60"> <br><br>Día:<br> <select name="día"> <option>lunes <option>miércoles <option>jueves </select> <br><br>Hora: &nbsp.16<input type="radio" name="hora" value="16"> &nbsp.1082 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC El código HTML que da lugar a este formulario puede ser el siguiente (la ex- presión &nbsp indica un espacio en blanco).html del material adicional.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.18<input type="radio" name="hora" value="18"> .&nbsp.10<input type="radio" name="hora" value="10" checked> &nbsp. El código puede obtenerlo del fiche- ro Cap15\HTML\tutorias.12<input type="radio" name="hora" value="12"> &nbsp.&nbsp.

respectivamente.<input type="reset"> </form> </body> </html> Tablas Para crear una tabla. Por ejemplo: <table border="1"> <tr> <th>Nombre</th> <th>Nota</th> </tr> <tr> <td width=200>Javier Ceballos Fernández</td> <td width=30 align=right>10.&nbsp. se utilizan las etiquetas table. La etiqueta table define el cuerpo de la tabla. APÉNDICE B: PÁGINAS WEB 1083 <br><br>Asunto:<br><textarea name="asunto" rows="5" cols="40" wrap></textarea> <br><br><input type="submit" value="Enviar datos"> &nbsp. tr define una fila de la tabla. Los atributos width y align de td (o de th) per- miten definir.00</td> </tr> <tr> <td width=200>Elena Ortiz Fuentes</td> <td width=30 align=right>7.50</td> </tr> </table> El atributo border de table permite añadir un borde a la tabla de ancho igual al valor especificado en píxeles. th y td. tr. th define una celda de cabecera y td define una celda de datos. Otras operaciones que se pueden hacer a la hora de diseñar una tabla son:  Extender una celda en múltiples columnas: <th colspan=2> cabecera 1</th>  Extender una celda en múltiples filas: <th rowspan=2> cabecera 1</th>  Modificar el ancho y el alto de la tabla en valor absoluto o respecto al tamaño de la ventana del navegador: <table width=60% height=80%> . el ancho de la celda y el tipo de ajuste del dato en la celda.

con las hojas de estilo también podremos indicar que su texto sea azul. margin-left: 20. Esta etiqueta sólo puede utilizarse en la cabecera de la página. Puede ver un resumen de los atributos CSS en la carpe- ta docs del material adicional que acompaña al libro. o bien dentro de la etiqueta de cabecera del elemento. el tipo de- berá ser “text/css”. intentan separar el con- tenido de la forma de presentarlo. para introducir un nuevo párrafo en una página web. Tenga presente que CSS es sensible a las mayúsculas y minúsculas. También observamos que los atributos se especifican a conti- nuación del elemento HTML que se quiere personalizar. En el caso de las hojas de estilo en cascada. utilizamos la etiqueta <p>. border: solid. En el ejemplo. encerrados entre llaves. son cuatro: el color (en el formato habitual). Esto se codificaría de la forma siguiente: <style type="text/css"> p {color: blue.CSS). Pues bien. el margen izquierdo en píxeles y el tipo y el ancho del borde. Por ejemplo. .1084 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC  Modificar el tamaño de una celda: <td width=200 height=50>  Alinear el contenido de una celda: <td valign=top align=left>  Modificar el color de fondo de una celda: <td bgcolor="green">  Modificar el espacio y el margen de las celdas: <table border cellspacing="8" cellpadding="8">  Controlar los saltos de línea en una celda: <td nowrap> HOJAS DE ESTILO Es evidente que el lenguaje HTML está limitado a la hora de organizar la presen- tación de los elementos de una página web. Pues bien. Éstas no sólo permiten organizar la presentación de una página. para cubrir esta deficiencia surgen las hojas de estilo (Cascade Style Sheets . y su parámetro type indica la sintaxis utilizada para definir esos atributos. sino que además. que tenga un margen izquierdo de 20 píxeles y que tenga un borde de ancho 2. border-width: 2} </style> En este ejemplo se puede observar que la declaración de los atributos que defi- nen un determinado elemento de la página queda limitada por la etiqueta style.

margin-left: 20. sin style). border: solid. serán visualiza- dos con los atributos definidos. <p>. en este ejemplo. margin-left: 20. APÉNDICE B: PÁGINAS WEB 1085 El siguiente ejemplo muestra una página HTML con estilo: <html> <head> <title>Título del documento</title> <style type="text/css"> p {color: blue. podemos colocar la hoja de estilo en un fichero (sólo los estilos. el contenido no está separado de la forma de presentarlo. border-width: 2} Una vez definida una hoja de estilos. Para separarlo. por ejemplo. podemos incorporarla a una página HTML utilizando la etiqueta link que tiene la siguiente sintaxis: <link rel="stylesheet" href="estilo. border-width: 2} </style> </head> <body> <h1>Ejemplo de un documento HTML</h1> <hr> <h3>El cuerpo del documento puede contener:</h3> <h4>Texto.css" type="text/css"> Según lo explicado.css: /* estilo. los dos párrafos. el ejemplo anterior quedaría como se indica a continua- ción. imágenes. Ahora bien. con el fin de establecer el formato. sonido y órdenes HTML</h4> <p> HTML es un lenguaje utilizado para desarrollar páginas y documentos web. <br> Dichas etiquetas serán posteriormente interpretadas por los exploradores encargados de visualizar la página o el documento web. Observe que la etiqueta link está incluida dentro de la cabecera: <html> <head> . HTML utiliza una serie de etiquetas especiales intercaladas en un documento de texto sin formato. <p> A diferencia de los lenguajes convencionales. <hr> </body> </html> Cuando se muestre la página anterior.css */ p {color: blue. border: solid. en estilo.

o bien verde sin borde y centrado: /* estilo. en nuestro caso. Cuando apliquemos estos estilos a una página. HTML utiliza una serie de etiquetas especiales intercaladas en un documento de texto sin formato.verde {color: green. Por ejemplo. margin-left: 20. distintas clases de párrafos. <br> .. las cuales difieren en el color: azul con borde y ajustado a la izquierda. para lo cual utilizaremos el atributo class. la siguiente hoja de estilos permite personalizar un párrafo de dos for- mas.azul {color: blue.css */ p.1086 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC <title>Título del documento</title> <link rel="stylesheet" href="estilo. <p class="azul"> A diferencia de los lenguajes convencionales.. imágenes.verde).css" type="text/css"> </head> <body> . los párrafos definidos con la cabecera <p class="azul"> serán azules y los definidos como <p class="verde"> serán verdes.azul) y el verde (p. text-align: center} Este código define dos clases de párrafos: el párrafo azul (p. border: solid. sonido y órdenes HTML</h4> <p class="verde"> HTML es un lenguaje utilizado para desarrollar páginas y documentos web. border-width: 2} p.css" type="text/css"> </head> <body> <h1>Ejemplo de un documento HTML</h1> <hr> <h3>El cuerpo del documento puede contener:</h3> <h4>Texto. definiendo distintas clases. margin-left: 20. Pero supongamos que sólo queremos personalizar al- gunos de ellos. serán visualizados con los atributos definidos. todos sus párrafos. </body> </html> Clases Cuando se muestre la página anterior. ¿Cómo lo hacemos? Pues. Por ejemplo: <html> <head> <title>Título del documento</title> <link rel="stylesheet" href="estilo. <p>.

al contrario que con las clases reales.css */ p {color: blue. los párrafos definidos con la cabecera <p> serán azules y los definidos como <p id="verde"> serán verdes. el siguiente código utiliza las pseudoclases link y visited con el elemento <a> para definir el color azul para el enlace normal y el color magenta para el enlace visitado. Los exploradores agregan también varias clases. <hr> </body> </html> Otro caso puede ser que queramos que la mayoría de todos los párrafos sean azules y unos pocos verdes. border: solid. podemos apli- car estilo a los enlaces para que muestren colores diferentes en función de que aún no hayan sido visitados o sí lo hayan sido. pero hay una forma mejor: usar el parámetro id. Observe la sintaxis. CSS define las pseudoclases:  Enlaces normales: a:link {atributos}  Enlaces visitados: a:visited {atributos}  Enlaces activos: a:active {atributos} Por ejemplo. . Por ejemplo: /* estilo. ahora se utilizan dos puntos (:). pero con el resto de las características iguales. margin-left: 20. APÉNDICE B: PÁGINAS WEB 1087 Dichas etiquetas serán posteriormente interpretadas por los exploradores encargados de visualizar la página o el documento web. border-width: 2} #verde {color: green} Cuando apliquemos estos estilos a una página. no queramos modificar el comportamiento de un elemento. Para ello. Por ejemplo. En este caso. también podríamos definir dos clases distintas. a:link {color: blue} a:visited {color: magenta} Etiquetas <span> y <div> Puede que. que definen varios usos para un mismo elemento. conocidas como pseudocla- ses. sino aplicar un estilo completo a una determinada sección de una página. Esto po- dremos hacerlo utilizando las etiquetas <span> y <div>. con el fin de establecer el formato. a veces.

z-index.</p> <p>Es necesario especificar la etiqueta de cierre</p> </div> La etiqueta div es ideal también para definir capas.</p> <p>Definir un bloque. o visibility. Admite los atributos style. lo que hace a esta etiqueta ideal para definir distintas secciones en un documento (capítulo. para indicar si la capa se puede ver en la pági- na o permanece oculta al usuario. a su vez. id y class. font-style:italic"> HTML utiliza una serie de etiquetas especiales intercaladas en un documento de texto sin formato. posición ab- soluta en la página.). class. distancia desde los bordes izquierdo y superior de la página. párrafos. clip. una sección de una página que. Por ejemplo: <div class=notas> <h1>Divisiones</h1> <p>El elemento div permite utilizar los atributos align. Este ejemplo se ha construido en base a dos bloques con el mismo contenido: uno para visualizar el título en color azul y otro para visualizar la som- bra en color negro (se trata del mismo título. esto es. </span> </p> La etiqueta div es similar a span. es útil para construir diferentes secciones en un documento. notas. id y otros muchos. tablas. width y height. . pero desplazado un píxel respecto del anterior). etc. para recortar una capa y hacer que no sean visibles partes de ella.1088 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Para definir estilos en secciones reducidas de una página se utiliza la etiqueta span. left y top. puede contener cabeceras. Algunos atributos típicos utilizables con capas son: position. El siguien- te párrafo visualizará determinadas palabras en color azul y en cursiva: <p> A diferencia de los lenguajes convencionales. entendiendo por capa una sección de un documento para la que se ha definido un comportamiento indepen- diente. Lo vemos con un ejemplo. para indicar qué capas se ven encima de qué otras. style. <span style="color:blue. A continuación mostramos un ejemplo sencillo: poner un título con el efecto de sombra. resumen. e incluso otras divisiones. anchura y altura de la capa. con la diferencia de que div define un ele- mento a nivel de bloque.

la etiqueta de párrafo no describe que el dato es la fecha de na- cimiento.lenguaje extensible para análisis de docu- mentos) está convirtiéndose rápidamente en el estándar para el intercambio de da- tos en la Web. font-size: 32. margin-top: 20. Como en el caso de HTML. los datos se identifican utilizando etiquetas. font-weight: bolder} . margin-left: 20. font-weight: bolder} Y una página ejemplo que utilice este fichero de estilos puede ser la siguiente: <html> <head> <title>Capas</title> <link rel="stylesheet" href="estilos. título y sombra. position:absolute. y a diferencia de HTML las etiquetas indican lo que los datos significan en lugar de cómo visualizar los datos.css" type="text/css"> </head> <body> <div class="sombra"> TÍTULO DE LA PÁGINA </div> <div class="titulo"> TÍTULO DE LA PÁGINA </div> </body> </html> XML XML (Extensible Markup Language . APÉNDICE B: PÁGINAS WEB 1089 El fichero de estilos que vamos a utilizar incluye dos clases. el dato sí queda descrito en una línea como la siguiente: <FechaNacimiento>01/01/2004</FechaNacimiento> .titulo {color: blue. Obsérvese que delante del nombre de la clase ponemos solamente un punto. ya que en este caso no se trata de una clase definida para un determinado elemento: /* estilos. font-size: 32. margin-top: 21.sombra {color: black. Simplemente indica al navegador que el texto que aparece entre las eti- quetas se debe mostrar en un párrafo. margin-left: 21. Por ejemplo. En cambio.css */ . la fecha de nacimiento de una persona se puede colocar en un párrafo HTML así: <p>01/01/2004</p> Sin embargo. position:absolute.

Estas etiquetas son similares a las etiquetas HTML. Haciendo un poco de historia. etc.jpg">Profesor Ceballos</foto> La realidad es que un navegador no puede leer y mostrar un documento XML. es sensible a mayúsculas y mi- núsculas. enten- diendo por página dinámica una página que actualiza su contenido mientras se vi- sualiza. podríamos utilizar XML para describir una persona: fecha de nacimiento. Entonces. etc. El esquema se puede considerar como un diccionario que define las etiquetas que se utilizan para describir los elementos de un documento. imágenes. Utiliza prácticamente todos los elementos de HTML. PÁGINAS WEB DINÁMICAS El lenguaje HTML que hemos visto en los apartados anteriores es suficiente para visualizar documentos. XHTML XHTML (Extensible HyperText Markup Language . color. toda etiqueta de apertura tiene que tener una etiqueta de cierre. sexo.1090 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC El lenguaje XML es un lenguaje que se utiliza para crear otros lenguajes que definen los componentes de un documento. Esta interfaz permite escribir pequeños programas que se ejecutan en el servi- dor para aportar un contenido dinámico. Por ejemplo: <foto origen="ceballos. sonidos y otros elementos multimedia. por ejemplo. pero el resultado es siempre una página estática. Por ejemplo. peso. pero impone nuevas reglas.lenguaje mejorado para la escritura de páginas web) es la siguiente generación de HTML que incorpora mu- chas de las características de XML. La creación de un documento XML tiene dos partes: crear un esquema XML y crear el documento utilizando los elementos definidos en el esquema. una de las primeras formas que se encontraron para dar dinamismo a las páginas HTML fue la CGI (Common Gateway Interfa- ce). El resultado es un código HTML. que se . Pero sí puede convertir un documento XML en un documento HTML mediante una hoja de estilos XSTL (Extensible Stylesheet Language Transformation). altura. ¿qué podemos hacer para construir una página dinámica?. pero con la diferencia de que quien crea el es- quema crea los nombres y los atributos de las etiquetas. Una hoja de estilos se compone de una o más definiciones de plantillas que procesa un procesador XSLT cuando la etiqueta de la plantilla corresponde a un componente del documento XML.

genera un resultado consistente en código HTML estándar que susti- tuirá a las rutinas VBScript o JScript correspondientes de la página ASP. Con tal combinación se pueden conseguir de una forma muy sencilla páginas di- námicas y aplicaciones para la Web muy potentes. los componentes Acti- veX no están disponibles para plataformas que no sean Microsoft Windows. Posteriormente. si el número de usuarios es elevado. También es cierto que hay herramientas que permiten utilizar ASP sobre un servidor Apache en plataformas Unix. el servidor envía al cliente el contenido de la misma en HTML estándar. dicho de una forma sencilla. Una vez procesada la página. lo que ocasiona un tiempo de espera elevado. Esta diferencia hace que ISAPI sea un sistema más rápido. es un fichero .Página activa del servidor o activada en el ser- vidor).asp que pue- de contener: texto. Cuando un cliente solicita una ASP. Una alternativa a la CGI fue ISAPI (Internet Server Application Program- ming Interface). Microsoft lanza una nueva tecnología. el servidor la intenta localizar dentro del directorio solicitado. Un inconveniente de esta tec- nología es que su propietaria es Microsoft y solamente está disponible para el servidor IIS (Internet Information Server) que se ejecuta sobre plataformas Win- dows. Apoyándose en la técnica anterior y en un intento de potenciar la inclusión de contenido dinámico en páginas web. ISAPI trabaja sobre DLL. secuencias de órdenes y componentes ActiveX. Los lenguajes más comunes para la escritu- ra de secuencias de órdenes son JavaScript y VBScript. Esta API proporciona la funcionalidad necesaria para construir una aplicación servidora de Internet. El tratamiento de estas secuencias de órdenes puede hacerse tanto en el servidor web como en el cliente. siendo así accesible desde cualquier navegador. . Si la encuentra. Además. el explorador puede ahora procesar las secuencias de órdenes a medida que carga la página HTML. lo que supone pocos requeri- mientos de memoria. Esto es. en general. Cuando el servidor ejecuta estas rutinas. ejecutará las rutinas VBScript o JScript que contenga. ya que por tratarse de una biblioteca dinámica sólo será cargada una vez y podrá ser compartida por múltiples procesos. ya que todos los procesos se deben poder cargar en memoria y ejecutar. las páginas ASP (Active Server Page . Pese a que la CGI es fácil de utilizar. hoy por hoy. los requerimientos de memoria también serán elevados. A diferencia de CGI que trabaja sobre ejecu- tables. Una página ASP. no es un buen sistema porque cada vez que un cliente solicita una página con algún programa basado en esa interfaz. APÉNDICE B: PÁGINAS WEB 1091 incluye en la página web justo antes de ser enviada al cliente. código HTML. las técnicas anteriores fueron sustituidas por la incorporación de secuencias de órdenes (scripts) ejecutadas directamente en el interior de la pá- gina HTML. igual que sucede con las páginas HTML. en lugar de consultar al servidor acerca de un ejecutable. el programa tiene que ser cargado en memoria para ser ejecutado. pero.

No obstante. asegúrese de que lo tiene instalado. IIS debe instalarse antes de Microsoft . no es necesario trabajar directamente con IIS. que es parte integrante de Microsoft . llegaremos a la conclusión de que es bastante más sencilla y más potente. ASP.NET Framework SDK. . Mientras que los applets incorporaron funcionalidad interactiva a los navegadores. dotándolas de contenido dinámico e interactivo. haga clic en “agregar o quitar componentes Windows” y si no tiene instalado el componente Servicios de Internet Information Server. Los servicios web XML proporcionan acceso al servidor de manera remota. para probar una aplica- ción web.1092 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC También.NET Framework. uno de los aspectos que más llamó la atención fueron los applets: pequeños programas interactivos que son ejecutados por un navegador. si para probar sus aplicaciones prefiere utilizar IIS. cuando Sun Microsystems presentó Java. seleccione “agregar o quitar programas”. Posteriormente. Actualmente. podemos elegir entre formularios web y servicios web XML. los servlets la incorporaron a los servidores. Si comparamos la tecnología ASP o los servlets con la CGI o con la ISAPI.NET. o bien combinarlas.NET es algo más que una nueva versión de ASP. este tipo de aplicaciones son una alternativa más para crear páginas web dinámicas. sino que se puede hacer a través del servidor web integrado en Visual Studio. ya que esta tecnología permite vincular código estándar Ja- va con las páginas HTML que luego utilizaremos como interfaz de usuario. Sin embargo. Sun Microsys- tems introdujo los servlets. abra el panel de control. Todo esto lo estudiaremos en los próximos capítulos. Los formularios web permiten crear páginas web basadas en formularios. Esto supuso una alternativa más para crear pá- ginas web dinámicas. es una plataforma de programación web unificada que propor- ciona todo lo necesario para que podamos crear aplicaciones web. Los servlets es la alternativa de Sun Microsystems para sustituir a la programación CGI. permitiendo el intercambio de datos en escenarios cliente-servidor utilizando es- tándares como HTTP y XML. Al crear una aplicación web. la tecnología ASP ha sido sustituida por ASP. Para ello. Por lo tanto. Las aplicaciones web se ejecutan en un servidor web configurado con los ser- vicios de Internet Information Server (IIS). instálelo.

los modelos de formato de fecha. el país o región. mensajes de error.Ceballos/RA-MA INTERNACIONALIZACIÓN Si pensamos distribuir nuestra aplicación a un público internacional. deberemos tener en cuenta una serie de puntos durante las fases de diseño y desarrollo. Los servicios integrados en . GLOBALIZACIÓN La globalización es el proceso de diseño y desarrollo de una aplicación que per- mite el uso de interfaces de usuario en distintos idiomas. LOCALIZACIÓN Los recursos de la aplicación que requieren una localización tienen que ser inde- pendientes del resto del código de la aplicación. moneda y números. los calendarios utilizados. Preparar una aplicación para su uso mundial tiene dos partes: diseñar la apli- cación para que pueda adaptarse a distintas referencias culturales (globalización) y traducir los recursos para una referencia cultural específica (localización). el código ejecutable se ubicará en el ensamblado principal de la aplicación. APÉNDICE C  F.NET Framework facilitan el desarrollo de aplicaciones que se adaptan a distintas configuraciones de idioma. cuadros de . y el criterio de ordenación de las cadenas. la clase CultureInfo repre- senta una referencia cultural específica. Para ello. Concretamente. mientras que en los ficheros de recursos sólo se ubicarán los recursos: cadenas. incluido el idioma.J. El espacio de nombres System.Globalization contiene clases que definen in- formación relativa a la referencia cultural.

menús o recursos de objetos incrustados. que permite localizar rápidamente formularios Windows para las referencias culturales de destino.WriteLine("{0.CurrencyDecimalSeparator) Console. Finalmente.NET Framework SDK proporciona la herramienta winres.WriteLine() End Sub Para invocar al método anterior.DisplayName) Console.AllCultures) ' Mostrar todas las referencias culturales Console. “en-US” para el inglés de EEUU y “es-ES” para el español de Espa- ña. CLASE CultureInfo La clase CultureInfo especifica un nombre único para cada referencia cultural como una combinación de un código de referencia cultural (dos letras en minús- culas asociado con un idioma).Globalization Public Class CInfoCultura Public Shared Sub Main() Dim info As CultureInfo For Each info In CultureIn- fo. Por ejemplo. info.1094 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC diálogo. info. info.ShortDatePattern)) Console.DisplayName) Next info End Sub End Class Siguiendo con el ejemplo anterior. Public Shared Sub Cultura(ByVal sInfo As String) Dim info As CultureInfo = New CultureInfo(sInfo) Console. _ info.exe (editor de re- cursos de formularios Windows). vamos a añadir a la clase CInfoCultura un método Cultura que muestre información de una cultura específica. el siguiente código muestra todas las referencias culturales por medio del método GetCultures de CultureInfo: Imports System Imports System. se tra- duce la interfaz de usuario a los idiomas de destino. _ DateTime.NumberFormat.DateTimeFormat. y un código de referencia cultural secundaria (dos letras en mayúsculas asociado con un país o región) separados por un guión (-).WriteLine("Separador de decimales: {0}". añada al método Main sentencias análogas a las siguientes: . info.GetCultures(CultureTypes.-12} {1}".Now.WriteLine("Formato de fecha: {0}".WriteLine("{0. .ToString(info. Por ejemplo. entre otros.-12} {1}".

sino que determina los formatos predeterminados para la fecha. se puede utilizar una refe- rencia cultural neutra (por ejemplo.CurrentUICulture La clase ResourceManager utiliza esta propiedad para buscar recursos espe- cíficos de la referencia cultural durante la ejecución. “en”) o específica (por ejemplo.CurrentThread.Thread. la siguiente línea establece la refe- rencia cultural neutra “en” (inglés).CurrentUICulture = New CultureInfo("en") Y esta otra línea establece la referencia cultural específica “en-US” (inglés de Estados Unidos): Thread.Cu- rrentThread.Threading. el criterio de ordenación de texto. o la propiedad InvariantCulture.CurrentThread. moneda y números. Por ejemplo: info = System. las comparaciones de cadenas y la distinción entre mayúsculas y minúsculas.WriteLine("{0. hora. Thread. “en-US”).DisplayName) End Sub También puede utilizar la propiedad CurrentUICulture de Thread.CurrentUICulture = New CultureInfo("en-US") Propiedad CurrentCulture La propiedad CurrentCulture de CultureInfo no es una configuración de idio- ma. Para configurar la propiedad CurrentUICulture.CurrentUICulture Console.Write("Cultura actual: ") Console. Sólo se puede establecer para una refe- . info. -12} {1}". Por ejemplo. APÉNDICE C: INTERNACIONALIZACIÓN 1095 Cultura("en-US") Cultura("es-ES") Propiedad CurrentUICulture La propiedad CurrentUICulture de CultureInfo devuelve la referencia cultural de la interfaz de usuario actual.CurrentThread. Las referencias culturales neutras se asocian a idiomas pero no a regiones. Por ejemplo: Public Shared Sub CulturaActual() Dim info As CultureInfo = Nothing info = CultureInfo. info.

“Opciones” contendrá un submenú “Idioma” con las órdenes “Es- pañol” e “Inglés”. deberá utilizarla únicamente para los procesos que requieran resulta- dos independientes de la referencia cultural. Por ejemplo: Thread. No obstante. La interfaz gráfica de la misma constará de dos formula- rios: el formulario principal y el formulario “Acerca de”.. ade- más. Como podremos comprobar. La propiedad Language asume un valor que hace referencia al lenguaje pre- determinado (Default).CurrentCulture = New CultureInfo("en-US") Propiedad InvariantCulture La propiedad InvariantCulture de CultureInfo no es una referencia cultural neutra ni específica. A continuación. con la ventaja de que este fichero se puede traducir sin modificar el código. el idioma inglés. Se encuentra asociada al idioma inglés pero a ningún país o región. no modificaremos el valor de esta propiedad. Se puede uti- lizar InvariantCulture en cualquier método que requiera una referencia cultural. Generar ficheros de recursos automáticamente Para empezar crearemos una nueva aplicación Windows. será el propio Visual Studio el que se encar- gue de adaptar cada elemento de la interfaz a cada idioma.CurrentThread. con los menús “Archivo”. Por lo tanto. El menú “Archivo” incluirá una orden “Salir”. . Para establecer el valor de es- ta propiedad puede utilizar la propiedad Thread. un botón y una barra de estado.1096 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC rencia cultural específica o para InvariantCulture. De esta forma. APLICACIÓN EJEMPLO Vamos a realizar un ejemplo sencillo que nos enseñe a internacionalizar una apli- cación. en nuestro caso al español. El formulario principal incluirá una barra de menús. Es un tercer tipo que no tiene en cuenta la referencia cultural. Nuestra aplicación utilizará como idioma predeterminado el español y. y el menú “Ayuda” la orden “Acerca de. en principio.. todas las propiedades persistirán en el fichero de recursos.CurrentThread. Se mostrará el formula- rio Form1. una caja de texto.”. “Opciones” y “Ayuda”. asignamos a la propiedad Localizable de Form1 el valor True.

A continuación. APÉNDICE C: INTERNACIONALIZACIÓN 1097 Añadimos al formulario todos los recursos enumerados anteriormente. . etc. etc. El diseñador mos- trará en la pestaña “Form1. Estos recursos se almacenarán en el fichero Form1. Size.resx. que con- tiene los recursos en inglés. modificaremos todos los elementos que deben mostrar su contenido en inglés (menús.). Cuando finalicemos este proceso. le asignamos el valor English. Form1.resx. Obsérvese que podemos cambiar el valor.vb[Diseñar – Inglés]”. podremos observar en el explorador de so- luciones que se ha añadido un nuevo fichero de recursos. en nuestro caso. no sólo de la propie- dad Text. acelerado- res. Location. asignamos a la propiedad Language dicho idioma. Para realizar el diseño en otro idioma.en.). sino de otras muchas propiedades (ShortcutKeys. botones.

Click Close() End Sub Private Sub AyudaAcercaDe_Click(ByVal sender As System. haremos lo mismo con el resto de los formularios de la aplicación. Una vez finalizado el diseño del formulario principal en sus distintos idiomas. _ ByVal e As System. volveremos a la versión en español. Si cambiamos el valor de la propiedad Lan- guage a “Predeterminado .Show() End Sub .Object.1098 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC En este instante (propiedad Language con valor English) estamos visualizan- do el formulario en la versión inglés.Default”. en nuestro ca- so.EventArgs) Handles AyudaAcercaDe.Click Dim dlg As AcercaDe = New AcercaDe() dlg. con el formulario “Acerca de”: Los controladores para las órdenes “Salir” y “Acerca de” serán los siguientes: Private Sub ArchivoSalir_Click(ByVal sender As System.Object.EventArgs) Handles ArchivoSalir. _ ByVal e As System.

La clase ResourceManager pro- porciona acceso a recursos específicos de la referencia cultural en tiempo de eje- cución.Object. al crear- los de nuevo.EventArgs) _ Handles OpcionesIdiomaEspañol.CurrentThread.InitializeComponent() End Sub Obsérvese que antes de invocar al método InitializeComponent eliminamos los controles actuales del formulario (colección Controls).CurrentThread.Clear() Me.CurrentCulture = New CultureInfo("en-US") Thread.Click Thread.Click Thread. porque si no.Threading ' .CurrentThread.CurrentCulture = New CultureInfo("es-ES") Thread. APÉNDICE C: INTERNACIONALIZACIÓN 1099 Mostrar recursos específicos Para mostrar los recursos de la aplicación bajo una referencia cultural determinada utilizaremos el siguiente código: Imports System..CurrentCulture = New CultureInfo("en-US") Thread.CurrentThread. se duplicarían. En nuestro ejemplo. ByVal e As System. Thread.. ya que el gestor de recursos ResourceManager de- terminará qué recursos recuperar en función de la propiedad CultureIn- fo.InitializeComponent() End Sub Private Sub OpcionesIdiomaInglés_Click( _ ByVal sender As System.Object. este proceso tendremos que ejecutarlo desde las órdenes “Español” e “Inglés” del menú “Opciones”: Private Sub OpcionesIdiomaEspañol_Click( _ ByVal sender As System.Controls.CurrentUICulture del subproceso actual.CurrentUICulture = New CultureInfo("en-US") Me.EventArgs) _ Handles OpcionesIdiomaInglés.CurrentThread.Globalization Imports System.CurrentUICulture = New CultureInfo("en-US") La asignación del objeto CultureInfo deberá hacerse antes de invocar al mé- todo InitializeComponent. .CurrentUICulture = New CultureInfo("es-ES") Me. ByVal e As System.Controls.Clear() Me.CurrentThread.

Form1". vamos a añadir los ficheros .resx Nombre del recurso Valor Form1.es-ES.resx con los recursos especifica- dos a continuación: Nombre del fichero . Private Sub btAceptar_Click(ByVal sender As System. En cualquier instante durante el diseño.EventArgs) Handles btAceptar. añada a Form1 el controlador del evento Click del botón y edítelo como se indica a continuación: Imports System.ResourceManager = _ New Resources. Como ejemplo. El nombre del fichero tendrá la sintaxis siguiente: RaízDelNombre. El fichero Form1.resx pueden ser también añadidos y editados ma- nualmente.Resources ' .Assembly) .1100 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Agregar ficheros de recursos de forma manual Ficheros análogos a Form1.resx contendrá recursos que son específicos del espa- ñol hablado en España. Para ello. Seleccionar en el diálogo que se visualiza la plantilla Archivo de re- cursos y escribir un nombre para el fichero .Object.resx.Click Dim rm As Resources.. _ ByVal e As System.es-ES. simplemente hay que hacer clic con el botón secundario del ratón en el nombre del proyecto y seleccionar Agregar nuevo elemento del menú contextual. Para acceder a estos recursos.en-US.en-US. podemos abrir y editar un fichero . Finalizar haciendo clic en el bo- tón Aceptar. y el fichero Form1.resx contendrá recursos que son específicos del inglés hablado en EEUU.en.. _ GetType(Form1).ResourceManager("InfoCulturaWin.resx cad01 Hola Form1.resx haciendo clic con el botón secundario del ratón en el nombre del mismo y seleccionando Ver diseñador en el menú contextual.idioma-region. Se obtendrá acce- so a estos recursos cada vez que la aplicación no pueda encontrar recursos más adecuados para la referencia cultural de la interfaz de usuario.resx cad01 Hello La cadena de caracteres nombrada cad01 será mostrada en la caja de texto de Form1 cuando el usuario haga clic en el botón Aceptar.resx El fichero se agregará al proyecto en el Explorador de soluciones y se abrirá automáticamente el diseñador que le permitirá editar el fichero.

Obsérvese que para el nombre del fichero se ha especificado el espacio de nombres. el objeto ResourceManager distingue entre ma- yúsculas y minúsculas.resx generados au- tomáticamente cuando diseñamos la aplicación? Porque al ser administrados por el diseñador de formularios. APÉNDICE C: INTERNACIONALIZACIÓN 1101 Me.GetString("cad01") End Sub El constructor de ResourceManager toma dos argumentos: raíz del nombre de los recursos. observará que la caja de texto mostrará el recurso cad01 correspondiente al idioma elegido. Como alternativa. y el ensamblado principal. Si ahora compila y ejecuta la aplicación y hace clic en el botón Aceptar de Form1.resx. es decir. el nombre del fichero de recursos sin la referencia cultu- ral ni la extensión . hay que asignar true a la propiedad IgnoreCase de ResourceManager.Text = rm.resx cad01_en Hello Ahora. para acceder a estos recursos. ¿Por qué no hemos añadido estos recursos a los ficheros .resx del proyecto. podríamos añadir estos recursos al fichero Resources. De forma predeterminada. los recursos que introduzcamos serán eliminados la próxima vez que el diseñador modifique esos ficheros.Resources ' ... Si no se desea hacer esta distinción.TextBox1. se invoca al método GetString de ResourceManager.resx Nombre del recurso Valor Resources. pero entonces tendríamos que especificarlos de forma análoga a co- mo se indica a continuación: Nombre del fichero . tendríamos que escribir el controlador del evento Click así: Imports System.resx cad01_es Hola Resources. Para acceder al recurso String cad01 especificado en la referencia cultural ac- tual. .

Text = rm.1102 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Private Sub btAceptar_Click(ByVal sender As System.Name = "es-ES") Then Me.EventArgs) Handles btAceptar.Object.Assembly) If (CultureInfo. _ GetType(Form1).ResourceManager("InfoCulturaWin.TextBox1.ResourceManager = _ New Resources. _ ByVal e As System.TextBox1.GetString("cad01_en") End If End Sub .CurrentUICulture.Resources".GetString("cad01_es") Else Me.Text = rm.Click Dim rm As Resources.

desde el cual podrá descargarse el software correspondiente a Mono para las distintas plataformas anteriormente comentadas. Más tarde. basada en Linux. Mono 3. sobre una máquina Linux con Mono. ¿Qué es Mono? Es un proyecto para construir una plataforma de desarrollo li- bre. Si está interesado en desarrollar sobre una máquina Linux utilizando Mono. Downloads. Para más detalles sobre el futuro de este proyecto visite la página Web http://www. compatible con Microsoft . la compañía norteameri- cana Novell adquirió esta empresa y se constituyó en uno de sus principales pa- trocinadores. para varias compu- tadoras/sistemas operativos). . APÉNDICE D  F. aunque esté escrito en C#.J. así como instrucciones para su utilización. así como otras herramientas de ayuda al desarrollo de aplicaciones multiplataforma (cross-platform.NET.NET gracias al proyecto Mono. no es más que una extensión a esta enciclopedia para que vea cómo puede aplicar todo lo aprendido en la misma. Mac OS X y Windows. puede encontrar información precisa y ejemplos en mi libro Aplicaciones .com. Mono en su versión 3.x. que se mostró interesada en colaborar con el desarrollo de este entorno de programación desde el principio.NET PARA LINUX Los desarrolladores sobre GNU/Linux pueden ahora también desarrollar aplica- ciones multiplataforma basadas en . Durante su desarrollo. incluye un compilador para C# y bibliotecas de eje- cución (runtimes) para Java y Visual Basic.NET multiplataforma (proyecto Mono).x se encuentra disponible para Linux. este libro. ha contado con el apoyo de algunos pesos pesados de la industria informática.mono-project.Ceballos/RA-MA . empresa dirigida por el mejicano Miguel de Icaza. Es el caso de Ximian. sobre todo del mundo Linux. En esta página encontrará también un enlace.

.

 9. 1073  AddHandler. 852  @ Register. 140  agregar datos. 61  abort. 1028  acceso a datos utilizando componentes. 483  Abort. 263  AcceptsTab. 126. 819  AJAX. 364  Acerca de. 504  Add. 977  adaptador. deshabilitar. 63.  acceso anónimo. 398  AddRange. 55. 64  . 63  ActiveMdiChild. 83. 178. 583  Add. 509  AJAX. 221  . 499  a. 328  alisado. 260  administración de sitios web. 346  actualizar las filas. 560  Ajax Control Toolkit. 1010  Access. 1004  AddNew.NET. 63  . 140  AllowFullOpen. 1001. 971  actualizar y eliminar filas. 129  alineación del texto. 5  ActiveForm. 302  acoplar control. 1073  retornan. 354  address. 1077. envío de datos utilizando el método POST. 1010  acceso desconectado a bases de datos. 910  acceso a datos desde un formulario web. 941  AcceptButton. 979  acceso anónimo. 839  @ Page. 8  Activated. 54. 140  AfterSelect.NET Framework. 181. 368  ADO. 127  abrir documento. 559  AJAX. 4. 231. colección. 924  AJAX. EntityDataSource. 1079  Activate. 1074  aceleradores. etiqueta HTML.NET. 162  A  Added. 926  1011  acceso conectado a bases de datos. 502  align. 781. llamadas fuera de dominio. 555. 882  acceder a un nodo. modelo de enlace. 85. 223  .  action. 496  AcceptsReturn. 680  @  actualizar y eliminar filas. ÍNDICE acoplar un control a su contenedor. llamadas que producen errores o que no  accesos directos.

 345  archivo de aplicación de ASP.NET. iniciar. 725. 65  área cliente. 751.1106 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC AllowMerge. 75. 1092  AutoEventWireup. 64  alt. 1092  aspnet_regiis. 903  App_Code. 803  AutoPostBack. 927  App_GlobalResource. 1052  App_Data. 778  autenticación básica con conexión SSL. 774  atributos globales de una aplicación. 1024  Application_Error. 1051  ámbito de sesión. 75  ataques de inyección SQL. 185. 710  aplicaciones web. 513  aplicaciones de consola. 778  autenticación Windows. 11  aplicación. 796  AllowsTransparency. 1074  área de texto. 930. 71. 778  autenticación ASP. eventos. 785  Application. 109  árbol. 841  AutoResetEvent. 744  assembly. 255  B  árbol. 70  aplicación. 848  App_Browsers.NET. 414  ApplicationExit. 749. 926  Appearance. 223.. personalizar. 44. 927. 1018  añadir un nuevo registro. 1092  añadir un control a la barra de estado. 144  authorization. nodos.NET AJAX. 260  AutoValidate. depurar. 206  árboles de expresiones.NET. 256  árbol. 404  árbol. 254  autorización. 1057  aplicación web de IIS. 410. 336  asincrónico.NET. 135  ASP. 258  BackColor.NET cliente de un servicio web. ciclo de vida. 683.NET. 787. 366  Anchor. 264  barra de desplazamiento. 25. 367  ArrayList. 1046  atributos de anotación de datos. 920  añadir una nueva fila a una rejilla. 91  ASP. desarrollo. 778  Attach. 810  argumentos en la línea de órdenes. 1080  ámbito de aplicación. acceso a los recursos. acceder a un nodo.NET. 1091  añadir un botón a la barra de h. 657  añadir texto a una caja de texto. 790  añadir un usuario que tenga una función. 96  árbol. carpetas. 704. 63. 70  App. recorrer. 927  App_Themes.  ASP. 16  AsyncPostBackErrorMessage. 980  autenticación mediante formularios. 778  aplicación ASP. 1021  aplicación. 33  AsyncPostBackTimeout. 203  árbol. 257  ayuda dinámica. 1030  aplicación. 930  árbol. 582  ASP. 50. 778  AttachDBFilename. 82  AsyncPostBackTrigger.NET. 954  ASP. 778  autenticación de IIS. 797  aplicación web. 962  App_LocalResources. 72  autoridad de certificación. 778. 264  árbol. añadir y borrar un nodo. arquitectura. 137  ASP. 927  AppendText. añadir imágenes para los nodos. instanciar sólo una vez. 934  App_WebReferences. 1057  992  aspnet_compiler. 786. 269  barra de desplazamiento. 893  añadir menú. 811  arrastrar y soltar. modelo. 255  BackgroundWorker. 442  animación. 1021  aplicación. 629  barra de direcciones. 956  applets. crear. 962  árbol. 1068  . 482  ASP. instalación. arquitectura. 128  asociación. 189  authentication.config. 71  Assembly. 18  árbol. 67  atributos proveedores de valores. añadir nodos.

 548  cadena de consulta. 441  caja de diálogo. 695  borrar tabla de la base de datos. 675  borrar datos. 438  caja de diálogo para mostrar un mensaje. 816  base de datos. Image. 136  borrar un control. 29  cajas de diálogo personalizadas. 897  caja de diálogo Fuente. 170  BindingContext. 673  caja de herramientas. 44  botón predeterminado. 105  body. 756  caja de texto. 24. 600. 216  bloquear los controles. añadir. 434. 440  caja de diálogo. 90  Bitmap. 433  borrar registros en una tabla. 612  caja de texto multilínea. 806  BeginInvoke. 46  base de datos. 22  BindingManagerBase. 208  botón enviar. 27  barra de herramientas. 361  botón borrar. seleccionar el contenido. 1070  barras de herramientas. 170  binding. 371  Brush. 364  callback. 301  barras. 24. notificar. seguimiento. crear. 24. 812  bases de datos. 322  cajas de diálogo estándar. 157. 432. 325  BindingSource.  caja de texto. 53. 180  Binding. cerrar. 1078  barra de menús. 1078  BeginUpdate. 460. 43. 9  caja de diálogo Color. mostrar. 179  BindingListView. 81  base de datos local. 217  biblioteca de clases. 962  base de datos. 126  botón de pulsación. 440. 321  calculadora. 177  BindingList. 85. 1077  463. 194  base de datos accedida desde un servicio web. 911  cambios en los datos. crear. 236  BindingComplete. 441  caja de imagen. 82  base de datos basada en servicio. 544. 882  caja de diálogo modal. crear. 589. 178  barras de desplazamiento. 584  991  Button. 597  ButtonBase. 81. 431  caja de diálogo no modal. 296. 552  caja de diálogo. 632  caja de diálogo Guardar. 584  barra de herramientas y de estado. diagrama visual. 320  BindingNavigator. 1079  barra de menús. 219  Bind. 188. propiedades. 578. 1083  cambios en los datos. 1004  border. crear. 24. ÍNDICE 1107 barra de estado. 598  C  base de datos. 178  BindingList. 487  . 597  base de datos SQL Server. 221  BinaryExpression. 351. 597. mover. 176  BMP. recuperar datos. 323  br. cerrar. 400  caja de clave de acceso. 756  caja de diálogo modal o no modal. 322  bucle de mensajes. 82. 82  barra de progreso. navegar. 579  caché. 491  cambios. 174  binary.  buscar un registro. fusionar. 25  Bold. 134  borrar un registro. 471. 83. 1069  calendario. 451. 139  BindItem. 324. añadir las tablas. 23. 816  BeginEdit. 1079  Barra de título. 487  buscar en una lista. 453. 601  Cache. 586  caja de imagen. 194  caja de diálogo Abrir. 491  campos. 588  base de datos. 124  botón de opción. 220  Bin. 581. 56. 1052  caché con SQL Server. 1052  CA. 778  caja de diálogo de entrada.

 242  CellClick. 53  CanRedo.1108 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC Cancel. 379  clase Cursors. 269  CGI. operaciones en. 189  clase Page. 324  clase ConfigurationManager. 198  clase Point. 784  CheckedChanged. 953  ChangePassword. 53. desacoplar. 700  CellValidating. 188  CheckStateChanged. 188  certificado de cliente. 54. 142  capa de presentación. 198  cargar imagen. 541  clase Clipboard. 1094  casilla de verificación. 951  clase MembershipUser. 478  clase de entidad. 217  Checked. 184  clase OpenFileDialog. 222  centrar ventana. 499  Cells. 360  clase Cache. 322  certificado de cliente es rechazado. 24. 54. 109  capa de presentación. 499  CellFormatting. 329  Category. 208  CheckState. 827  carpeta virtual. 953  ChangeTracker. 102. 478  clase Debug. 537  clase CheckedListBox. 961. 1075  clase EventWaitHandle. generar o solicitar. lógica. 1078  clase Cursor. 192  clase Panel. 678. 482  clase DataGridViewRow. 662  CellValidated. 53. 53  certificado de servidor. 126  chat. 188  CheckedListBox. 198  capa de lógica de negocio. 548  clase Binding. 184  capa de acceso a datos. 407  clase. 362  clase ConvertEventArgs. 296  cerrar formulario. 243  CellEnter. 54. 1090  clase Membership. 696  clase MenuStrip. 178. 283  clase Form. 318  capas de servicios de la red. 360  clase CheckBox. 187. 296. 966  clase Image. 1033  ciclo de vida de una página web. 50  CancelEdit. 413  CenterParent. 185  clase RadioButton. 143. 153  clase ProgressBar. 82  carpetas ASP. 184. 784  CancelAsync. control. 1062  clase ComboBox. 247  clase DataTable. 741  clase Control. 185. 177  clase FontDialog. 547  clase ColorDialog. 153. 438  . 915  clase Metafile. 44  clase Graphics. 71  cancelar una llamada asíncrona. 253  clase DataGridViewColumn. 322  CancellationPending. 188  clase Regex.NET. 963  clase ListView. 244  clase DbContext. 57  CancelButton. 407  clase Button. 968  clase Label. 96  clase Bitmap. 533  clase Color. 329  CellBeginEdit. 544  clase ColorMatrix. 192  cascada. 55  CheckOnClick. 129  center. 368  clase Application. 81. 816  CanUndo. 193  certificados. 129  clase GroupBox. 220  capa de presentación. 437  cascada. 687  clase CultureInfo. 243  CellDoubleClick. 48  cerrar. 661. 963. 467  clase DataRow. 322  CheckBox. 431  CancelEventArgs. 778  clase Convert. 154. 547  clase DataGridView. 964  clase ListBox. 96  ciclo de vida de una aplicación.

 128  colección. 927  código intermedio. 207  colocar el control. 395  colección DataRelationCollection. 229  colección como origen de datos. 126  colección. 968  CommonDialog. 24  clase ToolStripButton. 866  Click. 959  COM. 1017  Component. simular. propiedad. 197  clase ToolStripItemCollection. 80  ClientWins. 529  clic sobre un botón. 613  ClientScript. 895  Clipboard. 691  Close. 255  Columns de ListView. 9  ConfigurationManager. 583  clase TimeSpam. 318  clase. 469  Command. 198  clic en un botón. 129. 87  CommandName. 508  code. 254  clases POCO. 255  Color. convenciones. 579  clase TextBoxBase. 701  Columns. ÍNDICE 1109 clase ResourceManager. 53. 197  clase ToolStripSeparator. insertar. 504  ConcurrencyMode. 25  clase ToolStripItem. 221. 697. 583  CommandBuilder. 217. 55  colección ConstraintCollection. 499  clase Timer. 976  ColorDialog. 220  clase WaitHandle. 13  ClearError. 689. 135  colección jerárquica. 54. 46. 503  clic en un botón. 440  clase Size. 141  colección ControlBindingsCollection. 1071  configuración de la aplicación. 243  clave de un nodo. 813  CodeFile. 412  ColorMatrix. 197  COM+. 583  CommandField. 80  ClientSize. 884  Complete. 203  colección. 487  clases. fichero. 765  Client certificate revoked. borrar. 54. 162  clase seriable. 50  componente. 224  colección DataRowCollection. 345  clearTimeout. 700  configuración. 86  columnas. 528. 81. 723  compilador JIT. borrar todo. 693  componentes de acceso a datos. 11  cliente WCF. 117. 121  colección de elementos. añadir. 142  ConcurrencyCheck. 197  clase ToolStripMenuItem. 499. 67  Code First. definición parcial. 299  clase TreeView. 144. establecer. 781  configurar IIS. 109. 499  clase Thread. 121  colección. 375. 827  . 65. 6  conexión. 143  colección DataColumnCollection. 197  clase TrackBar. 220. 132  código no administrado. 11  Configuration. 180. 841  combinar menús. 499  clase ToolStrip. 29  clase TreeNode. 254  color. 689  CLR. 927  Code First. 226  colección DataTableCollection. 12  Clear. 216  cliente servidor. 183. 50. 9  conexión abierta/cerrada. 928  código administrado. 11  clase ScrollBar. 127  colección. 109  clase Type. 499  clase TextBox. 528. 1011  ComboBox. probar. 663  CLS. 500. 704  configurar el almacenamiento en caché. 327  concurrencia. 222  clase UserControl. 263  Color. 556. 272  clave pública. 9  ColumnCount. 531  clipboard.

 1032  ControlBox. 882  controles de usuario web. asignar. propiedad. 590  control TextBox. 437  control GridView. 61  contenedor. 436  control HyperLink. 733  conjunto de datos. 804  control LoginName. 114  control DataGridView. 938  cookies. 876  controles para inicio de sesión. 732  controles web. atributo proveedor de valor. construir. 27  Constraint. 159. 45. 192  control Login. 731  convertir una cadena de caracteres a un entero  control Literal. borrar. 81. 499  Control. 55  control CheckBoxList. 820  ConnectionStrings. 974  contrato. 731  cortar. 80. 951  controles. 1028  crear un adaptador. 938  Control. 734. tipos. 661. crear.1110 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC confirmar. 332  control LoginView. 728  contract. 950  Copy. 173  control Substitution. 733  coordinador de transacciones distribuidas. 561  control SqlDataSource. 431  control CreateUserWizard. 1024  controles de rango definido. 24  controladores de espera. 730  Connection. 412  contenedor UpdatePanel. 732  ConvertEventArgs. 1024  crear un enlace. 814  conjunto de datos. 193  control ListBox. 729  control Calendar. 573  conversiones en enlaces. 614  control PasswordRecovery. 733  convertir un Date en un String y viceversa. 352  Count. 1025  ConvertEventHandler. 827  Control. 313  control LoginStatus. 577  control CheckBox. 953. 435  control DetailsView. 59  consultas parametrizadas. 730  convertir un entero en base 10. 1065  control RadioButtonList. 8 o 16. 848  ConstantExpression. 917. 793  contrato de datos. 752  construir controles. 144  control RadioButton. 939  coordenadas universales. 880  controles HTML. 88. 480  controles de servidor HTML. 727  contexto de objetos. 323  control Button. 662  controles de servidor web. 734  ContentPlaceHolder. 27  ConstraintCollection. 528. 951  coordenadas. 733  controles. 947  conversión de datos. 972. 727  contextos de corta duración. 499  control. 359  control RichTextBox.DataBind. mover. 203  ContextMenuStrip. 1026  Convert. 731  correo electrónico. 498  control Table. 632  control. 183  controles Strip. 443  . 581. 976  en base 10. 727. 838  controlador para un evento. 317  control Panel. 1028  controladores de eventos. 1024  controles. 567. 875  controles de validación. 730  ControlUpdateMode. 54  controles con enlaces a datos. 627  control ScriptManagerProxy. 732  cadena de caracteres. 1077  ContentAlignment. 792. 373  control ChangePassword. en una  control LinkButton. enlazar o vincular con BD. 730  Controls. 192  control DropDownList. 939  coordenadas. 61  contenedor UpdateProgress. 8 o 16. 500  control web para acceso a datos. 566. 433. 971. 385  control Label. 442. 30. 373  controlador de eventos. 675  controles de usuario. 728  contrato de servicio. 177  Content. copiar y pegar.

 880  CREATE TABLE. 565  DataBindings. 253  DataSourceObject. métodos. 381  D  DateTimeFormatInfo. 1088  DataRowCollection. 1094  DataSet. 329  DataView. 1095  DataSourceUpdateMode. 556  CultureInfo. 555  CSS. 652. 495  DataBind. 499  CurrentValues. 751  CurrentCulture. atributos. 460. 329  DataValueField. 249  CRUD. 698  DataTextField. 532  DbCommandBuilder.  CreateGraphics. propiedad. 558. 1084  DataRowView. 499  CSS. arquitectura. 431. id. valor de la celda. 431. 445. 700  crear una base de datos. div. 567. 500. métodos. 488. 1086  DataGridViewRow. 529  DataAdapter. 752. 254  CRL. 243  CSS. control de errores. iniciar. 431. 953  DataGridView. 880  CSS. 242. 751. 488  DataContract. 198  DataSet. 246  criptografía simétrica. 488  DataError. origen de datos. 499  CREATE DATABASE. 344  Database First. 477  CreateDatabaseIfNotExists. 252  CSDL. 476  criptografía asimétrica. 441. 499. 959  DataGridView. 521. 504  CSS. 1023. 644  DataGridView. 456. 1095  DataTableCollection. 431  CurrentItem. 935  DataGridView. 471  curvas cardinales y de Bézier. 244  credentials. 177  DataBinder. 577  crear una imagen a partir de un fichero. cambiar. 1084  DataGridViewColumn. 431. 243  CreateUserWizard. 144  Date. 555. n. 752  Cursors. 1084  DataGridView. construir. 493. 751  CurrentCell. 212  Data Mapper. 1087  DataReader. 649  DbCommand. 705  crear una aplicación MDI. 253  CSS. 575  cultura. 584  DataSourceID. 431. 1088  DataMember. 575  CurrentUICulture. 385  DateTimePicker. 751  Cursor. 500. pseudoclases. 575  crear una tabla. 260  DataColumn. 243  CSS. 959  DataGridView. 81. class. validar. 751  CurrencyManager. 442. 250  Current. tamaño de las celdas. 751  cursor del ratón. 472  DataTable. 488  DataColumnCollection.º de filas y columnas. 544. 583  CSS. 465. 329  DataTextFormatString. 973. 453  DataSource de DataGridView. 463. 307  DataViewManager. 298  573  CreateUser. span. 526  Data Transfer Object. 753  crear una caja de diálogo. ÍNDICE 1111 crear una aplicación. 567. 442. 381. 567. 708  DataGridView. 556  DbConnection. 385  DateTime. link. 1094  DataSource. 460. 968  DataGridView. 575  Cut. control. 584  cuadro combinado. 432. 1087  DataRow. 755  crear una conexión. 499. 1001. 499. 1085  DataRelationCollection. 569  DBConcurrencyException. 533. 499  CSS. 704  DataGridView. 526  . 947  DataGridView. style. 564  DataAdapter. 16  Database.

 181  editor de texto MDI. 305  delegado Func. 623  DrawPie. propiedad de un botón. 1021  DisplayMember. 129  DrawArc. 207  Detach. 1009  DbSet (Of TEntity). 124  diálogo Acerca de. 751  depurar una aplicación. 614  deshacer. 154  DialogResult. 144. 558  EndEdit. 659. 472  DialogResult. 130  DHTML. 22  diálogo. 841  DrawCurve. 360  deslizador. 341  eliminar un recurso. 180. 697. 131  dirección. 63  DoWork. 404  Debug. 741  Enabled. 685  dibujar formas. 379  DTC. 414  DbSet(Of ). 183. 304  delegados. 235.. 853  matriciales y vectoriales. 896  E  DetailsView. 226  diálogo. 650  DoEvents. 659  documento XML. 491  Deleted. 625  DrawLine. 306  Delete. 306  DELETE. 650  Dock. 366  directorio virtual. 501. 399. 339  DbQuery. 851.. 890  diálogo no modal.. 505  DROP TABLE. 1049  DropDownList. 678. 700  Dispose. 526  DNS. 683. ocultar. 237  Elapsed. 172  eliminar filas. 140. 179  elemento actual. 13  DoubleBuffered. 304  DeleteCommand. 762  DropDown. 307  delegado. 587  EnablePartialRendering. 1058  DrawBezier. 59  DrawEllipse. 50. 1064  EnableAutoDragDrop. 764. 56. 1065  dirección de Internet. cerrar. 445. 491  DrawRectangle. 225  DialogResult. 236  ejecutar. 1063  DCOM. 153  dirigirse a otra URL. 461.. 199  Description. 154. propiedad de un formulario. evento.1112 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC DbContext. 689  dominio. 526  doble búfer. 57  DropDownStyle. 650. 708  DeleteMethod. 162  depurar. 663  DOM. evento... 836. 69. 161  depuración. 499  DropCreateDatabase. 465. 1064  Email. 223  DbSet. 1002  editor de menús. marcar. 307  defaultRedirect. 521. ¿está visible?. 306  debugger. 875  e‐mail. 33  DropDownOpening. 1063  DbProviderFactory. 348  diálogo modal. 957  dirección IP. 548  . 938  EnablePageMethods. 129  DropDownItems. 584. 650. 1039  diseño de tipo maestro‐detalle. 869. 511  DbDataAdapter. 294  DbProviderFactories. 1002  DbUpdateConcurrencyException. 339  Deactivate. 152  descripción abreviada. 823  DrawPolygon. valor retornado. 1026  editar un recurso. cerrar. 180  editor de textos. 236  Elapsed. 138  diálogo no modal. 233  ejecución asíncrona de servicios web. 526  dispositivos  DbEntityEntry. 352. 179  elemento de un menú.

 645  eventos. 476  eventos del ratón. 94  espacios de nombres. 979  EVENTVALIDATION. 427  EntityDataSource. 632  Eval. 130  evento Validated. 693  evento ThreadException. 58  errores. 54. compilación. 841. 635  etiquetas HTML. 82  expresión de consulta. 358  EntityCollection. 803  ExecuteReader. 97  evento Validating. 194  evento ApplicationExit. 442  evento CellFormatting. 72  enfocar un componente. 853  evento ThreadExit. 54  evento UserDeletingRow. 568  entidad. 94  escribir datos en una tabla. 73  enumeración ContentAlignment. 574  evento FormClosing. 90  enlace de datos. 546  enumeración Keys. 809  estado de aplicación. 30. 882  evento ‐ método. 843  evento SelectionChange. 30  855  eventos. 1073  evento KeyPress. 30  eSQL. 829  evento Selecting. 1045  evento Startup. 6  eventos. 503  estado de vista. 697.NET. 400  evento. 403  expresiones lambda. 111  evento UnhandledException. 321  estado del modelo. 157.  evento. 678. 767  Exit. 23. 72  Enum. 807  EXIF. 695  evento Shutdown. 87  Enter. 623  . 883. 365. 645  evento PrintPage. suscribir. lista. 87. controlar. 875. 1077  evento TextChanged. 495  estructura de una aplicación gráfica. 97  eventos del teclado. 98  error. control en DataGridView. 46  endpoint. 838  EntityDataSourceView. 503  estado de una página. 86  esquinas redondeadas. 410. 87  enlace con otros controles. 334  ErrorProvider. 755  expresiones de enlace de datos. 90  Entity Client. 89. 51  estilo del texto. 72  Entry. 753  evento Click. 435  evento Enter. notificar. 90  evento Load. 656  evento MouseClick. 628  etiqueta. 72  enlaces. 423. 413  estado de sesión. 695  evento Shown. 1069  expresiones de consulta. 764. 247  enlace a datos. 810  ExecuteNonQuery. 96  errores en una página ASP. 490  eventos KeyDown y KeyUp y KeyPress. 982  Entity SQL. 61  EndUpdate. ÍNDICE 1113 EndInvoke. 753  EventHandler. 9  evento StartupNextInstance. 569  enlace de datos . 73  entrada de datos. 89  EntitySet. 48  expresión de consulta. 86  ErrorText. 294  Entity Framework. 426  Entries. 363  EntityKey. 32  eventos más comunes. 364  explorador de bases de datos. 810  EventWaitHandle. 479  eventos KeyDown y KeyUp. responder. 664  evento PropertyChanged. 430  evento Idle. 547  enlace a colecciones. 73  entorno de ejecución.NET. 643  evento PreInit. 73  entorno de desarrollo integrado. 59  especificación de lenguaje común. 89  evento CellBeginEdit. 59. 645  evento Paint.

 773. 312  firma digital. 432. 217  formulario. evento. cerrar. 365  FileDialog. 381  GetCurrent. 109  FlatStyle. 956  Format de String. 625  FlowLayoutPanel. 371  foco. posición inicial. 509  FromArgb. 177  GetExecutingAssembly. 63  fichero de configuración. 927  formulario no modal. 897  formularios hijo. 960  ftp. 381  formulario MDI. 712  fusionar barras de herramientas. 222  generador de código nativo. 217. 293  Font. 798  FilterIndex. 81  get. 1069  GDI+. 381  getElementsByTagName. 632  FormClosing. 324  FindString. 66. 324  filas. 1096  formulario propietario. 211  formulario modal. colección. 629. 63  FileName. 1009  FormBorderStyle. 568  factoría. 735  fila nueva. BackgroundImage. 526  formulario cerrar. 345. evento. 435  GetCustomAttributes. 583  Focus. 583  formulario.1114 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC expresiones regulares. 213  funciones. 438  FormClosed. 234  filtro de nombres de fichero. 109. 827. establecer. 1099  Form. 330  Fluent API. 782  Func. 217  G  font. 527. 569  fecha y hora. 528. 185. 1066  FixedDialog. 22  From. 626. diseño. 583  formulario web. 219  formularios. 177  fuente. 798. 1076  gestor de recursos. 189  FullPath. 329  F  formulario activo. 231  generar código JavaScript. 109  Find. 219  formularios. 89. 89. 255  flow layout. 584  FromFile. 1076  FileUpload. 348. formato. 1064. 193. 157. servicios. 70  FormatException. 569  Extension. 635  Finally. 346  formulario cargar. 229. 506. representar. 875  FormsAuthentication. 303  GDI+. 255. 48. 70  . 583  FolderBrowserDialog. comunicación entre. 88  GetDatabaseValues. 568  formularios hijo abiertos. 723  form. 99. 858  finalizar la ejecución. 603  fechas. 698  formatos de fechas y horas. 487  formulario. 109  gestión de datos. 1014  ForeColor. 938  formulario Acerca De. 636  FormClosing. 352. 182  fila añadir. 798  Format. 12  For Each. 765. 63  filtrado. 54. 863  formularios. 622. 25  formulario hijo. 219  FormView. 194  FromImage. 63  fichero de recursos. 362  Filter. 64  Expression. 365. 219  formularios web. 350  fecha y hora. 64. 45. 925  Format. 346  Fill. 180  extremo. 63. 132. 295  FontDialog. 88  GetAllUsers.

 433. 65  guardar una aplicación. 966  GridView. ÍNDICE 1115 GetObject. 843  HScrollBar. detener de forma controlada. 304. 258  399  ImageList. 325. 917  GridView. 296  . mecanismos de sincronización. 87  IEditableObject. 804  grid layout. 1064  GotFocus.  IDisposable. 863  HttpServerUtility. 321  html. 236  Image. 260  hilos. 1084  GetString. 469  grupos de noticias. 745. 81. 407  imagen. 68. 324  hilos. 1092  hidden. certificados. 408  imagen. 440. 1070  GetType. 341  HttpContext. 1025  HTTPS. 707. 470  guardar documento. 298. 253  hojas de estilo. 802. 133  hilos accediendo a controles de los formularios. 325  hipertexto. 548  Handles. 431. 807  Gopher. cancelar. AllowSorting. 864. 854  Group. 728  globalización. 1073  GetView. 1093  HtmlInputHidden. 1079  414  imagen en un botón. 866  HyperLink. 8. estados. 61  IEnumerable. 1101  hr. 1073  imágenes. 844  idioma. 1023. 708  Identity. 807  IList.asax. 1094  habilitar o inhabilitar los elementos de un menú. 1064  HTTP. 627  GroupBox. 81. 637  Group … By. 355  Icon. 1075  HasMorePages. 1101  head. 511  152  Idle. 840. FromFile. 782  http‐equiv. 968  gráficos. 925  GraphicsPath. 447. 308  HttpCookie. 1069  Global.0. 716  iframe. 229  HTTP 403. 204  GIF. 742.13. caja. 1069  IIS. 8. 46. 325  IDatabaseInitializer. 922  IBindingList. SelectedValue. 1070  getSelectedColumn. 29  guardar una imagen. 703. 65. 799  gráficos en un documento HTML. cargar. 759. 257. 22  IIS. 257  hilos secundarios. 398  imágen. 627. 295  HttpClientCertificate. 803. 72  Handled. 641  HashSet. 132. 293  HTTP get. 1066  IBindingListView. 440  Hide. controles. 919  height. 440. 897.  imagen. 1074  HTTP post. 431. 188. 544  href. 29. 796  HTML. instalar. guardar. 924  H  IDictionary. 802  GridView. 130  hilos. 33  icono de la aplicación. propiedad. 1075  IIS 7. 962. 322  hilos. 963  Graphics. 973. 263. 391  Image. 800  gráficos vectoriales. 132  hn. 963  herramientas.  ImageIndex. 727. 359  IgnoreCase. 68. 191  I  grupo de aplicaciones. 1068.

 102. 915  ImageStream. 11  Interface. 1014  interceptar la tecla pulsada. 401. 1010  Italic. 843  ItemType. 94  Into. eventos. 627. 490  insertar filas. 1091  IMAP. 1061  KeyChar. 410  K  internacionalización. lista de. 785  IsStartupScriptRegistered. generar código. 402  inyección de código SQL. 257  IQueryable. 438  iniciadores de objetos. 845  JavaScript. EntityDataSource. 766  JavaScript. 87  introducir datos. 209  IsDisposed. 398  ImageTransparentColor. 371  Join. 712  interfaz IEditableObject. 823. 1067  KeyDown. 257  IRC. 427. 295  KeyUp. 92. 343  JSON. 957  inicio de sesión. 156. 859  JavaScript. 505  JavaScript. 1064  IsBackground. 398.1116 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC imágenes en un documento HTML. 364  INotifyPropertyChanged. 621  IsMDIContainer. 680  Images. 400. 682  insertar filas. modelo de enlace. 45  jQuery. 756  input. 781  IsInAsyncPostBack. 785  Initialize. 936  IsPostBack. 187  intranet. 1016  imprimir documento. 86. 231  Internet. 513  .js. 943  interfaz de múltiples documentos. 174  Items. 835  innerHTML. 759. 1062  KeyPressEventArgs. 219  IsValid. 130  Invalidate. 1058  Inserting. 448  Item. 86. 1007  interfaz fluida. 481  InputBox. 841  J  insertar filas. 756  INSERT. 281  IsOnline. 1074  IPrincipal. 627. 855  JavaScript. 133  ISAPI. 638  interfaces gráficas. 94. 231. 710  it. 92  Internet Explorer. 1074  IsCallback. 231  IsDispose. 1017  incoherencia de accesibilidad. 1001  InsertCommand. 475  Keys. 1015  InsertItemTemplate. 197. 86. 795. 357  IsClientScriptBlockRegistered. 419  img. 1096  KeyValuePair. propiedad. 639  KeyPress. 321  interfaz. 402  InvokeRequired. 785  Init. 1015  InsertMethod. 194  Insert. 648. 641. 622  IsMatch. 231  Invoke. 94  InvariantCulture. 1093  Key. fichero . 1017  InitialDirectory. 91  JIT. 1021  iniciadores de colecciones. 236  Increment. depurar código. 344  iniciar una lista desplegable. 87. 1077  ItemClicked. 548  Interlocked. 183  Inherits. 38  JPEG. 7. 258  IsAlive. 924  imágenes. 398.

 control. 54. 268  LocalDB. 201  mapa de bits. 785  Label. columnas. 1075  lista. 222  LayoutMode. 81. 587  lista de tareas. 82  LoadFile. 199  ManualResetEvent. 627  ListView. 198. 640  LoginName. 81. 200  manifiesto. estilo. 939  Linux. 1096  LastActivityDate. 400  llamada síncrona. añadir elemento. 985  li. 155  MaskedTextBox. 400  label. 985  líneas de ayuda. 193  987  lista. control. iniciar. 521. 81  Matrix. 1072  LoginName. 445  MasterPageFile. 802  lista. 939  LINQ. 194  marcas de tiempo. 352  LabelEdit. 978. 347. 751. 24. 320  lista. 649  lock. 196  MapPath. 273  maximizar. borrar elemento. 971. acceder a sus elementos. 1065  lista desplegable. 859  Max. 24  lista. 198  máquina virtual. 461. 281  lista. 552  Matches. 410  lista desplegable. borrar elemento. 196  máscaras. colección de elementos. 24. 55. 104  listas HTML. 203  . 44  Literal. 367  List. 971  ListBox. diseño. 619  LoginView. 126. 199  ListViewItem. 1096  localhost. 723  Left. iniciar. 196  marco con título. control. 204  Localizable. 193. elemento seleccionado. 102  ListChanged. 255. 315  ListView. 65. 89. 362  M  lista de los eventos. 344  lista desplegable. 126. aplicación web. ejemplo. 29  LoginStatus. ordenar. 1023  ListBox. 269. 442  lista. 558  Match. 11  lista desplegable. 644  LoginView. 951  Like. 782. 1081  Load. 197  marcador de posición de contenido. 584  LoginStatus. 202  MainMenuStrip. control. 223  Lazy Loading. 202  Main. 800  LargeChange. 504  lógica de negocio. 103  ListControl. 53. 30  maestro‐detalle. 978. ÍNDICE 1117 L  llamada asíncrona. selección múltiple. 65  Login. 81. 896  lista. 410  lector de datos. 957  localización. 49. 977. 938  Let. 976  Maximum. 194  marcos en páginas HTML. 194  marco. 1054  Language. 980  listas desplegables en menús. 868  lista desplegable. 193  lista de formularios abiertos. 273  MaxDropDownItems. 51  lista desplegable. 133  maestro‐detalle. 29  LocationChanged. 1080  mail. 1072  MasterPage. diseñar. 11  lista. 977  LINQ to Entities. 1103  logo. vincular con DataSet. 362  Location. 568. 1093  LayoutMdi.  lista.

 51  MsgBox. 644  menús. 1059  MenuStrip. 343. 583  Mutex. 480  MiddleCenter. 126  Minimum. 351  modificadores de tamaño. 974. 362  método ‐ evento. 153  ModelMethodContext. 354. 653.NET. separador. 61  mostrar un mensaje. 798. 129  método Fill. 94  Metafile. 334  método Dispose. 57  MdiLayout.OLEDB. 345. 1081  método NewRow. 583  MultiLine. elementos. 124  Model‐View‐Controller. 457  menús. 345  ModelState. 403  mosaico.NET. 1103  MethodCallExpression. 322  Modifiers. diseño. 627  menú Ventana. 847  menús en páginas web.Show. 584  MSL. 568  MSIL. líneas de separación. 365. 582  MessageBox. 362  minimizar. 583  My. 425  Modified. 369  metarchivo.Computer. 409  método PerformClick. 327  método Print. 170  modificar una base de datos. 503  menú contextual. 296  Monitor. 90  método conducido por un evento. 757. 43  miembro protegido. 9  método Find. 55. añadir. 50  mover el control. 644  método Focus. 632  Métodos del generador de consultas. 139  método Insert. 159. 917  ModifierKeys. 499  meta. 13  Microsoft. 490  MessageBox. controlador de eventos. 622  MembershipUser. combinar.Jet. 121  modelo de enlace de ASP.1118 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC MDI. 345. 4  mensaje. 584  MdiChildren. 334  método DataBind. 1038  MemberExpression. 951. 212  MethodInvoker. 334  método Delete. 351  modificar datos en una tabla. 54  Menú de control. 125  Model‐View‐ViewModel (MVVM). 843  multiple. 128  modelo de datos. 675  MergeIndex. 170  menú. 123  Microsoft. 126. 27  MergeAction. 345  métodos de página. 351  modificar datos. 502  mensajes. 632  MonthCalendar. 753  MouseMove. 44  menú. 454. 50  menú dinámico. 956  métodos extensores. 700  menú. 956  Microsoft . 569  MdiWindowListItem. 409.OLEDB. 767  menús. 366  método Select. 323  módem. 89. 27  método Exit. 86  MouseDown.ACE. 358  My. 1059  menús. 583  MouseClick. 862  menú. 327  . 1077  Mono. mostrar. 996  modelo de entidades. 128. 412  method. 1065  Merge. 346  método SetToolTip. 645  Membership. 161  Min. 203  menú. 345. 129  Microsoft Access. señalar elemento. 127  Model First. 129  método Add. 347  método Update. 584  MouseUp. 147  modal o no modal. 347. 503  menú.

 evento. 504  página principal. 739  OpenFile. 85. 50. 457  NT AUTHORITY\Servicio de Red. 924. 936  OleDbDataAdapter. 454  Page_Error. 771  OracleDataAdapter. 1038  OdbcConnection. 676. 501  página de inicio de sesión. 999  Page. 848  OutputCache. 466  Option Strict. 1080  Name. borrar. 197  ObjectContext. tablas. 701  Nullable(Of Integer). 904. 362  nodo.Clipboard. 587  objeto de negocio. 1066  orden de tabulación. 1090  OpenFileDialog. 505  news. 268  Orientation. ÍNDICE 1119 My.Audio. 695  Padding. 265  Order By. 217. 905  ObjectQuery. 751. 1068  onreadystatechange. escribir una nueva. 1072  página de contenido. 1081  N  OptimisticConcurrencyException. 1073. 841  objetos de negocio. 1077  option.Computer.Computer. 790  orígenes de datos ADO. 501  NetworkService. 440.exe. 969  OleDbDataReader. 129  OracleConnection. 457  nuevo documento. 263  orden Tab. 969  OleDbConnection. 398  Option Explicit. 353  OriginalValues. 895  orden SQL. borrar todos. 627.DataBind. 505  página maestra.NET. 220  página web dinámica. 142  operadores de consulta. 701  ORM. 55. 90. 126.NET. 643. 689  name. 695  padre‐hija. 126  ObjectStateManager. 440. 905  Page. 207  nodos. 50  OwnedForms. 183  O  OwnedWindows. 813  Overrides. 876  optgroup. 65  Object. 80  Owner. 747  . 255  ordenación. 863  nodo seleccionado. 535  Page_evento. 281  Nodes. 219. 505  NewRow. 339  OpenForms. 65. 583  orden. 752  objetos como orígenes de datos. 653  P  ObjectDataSource. 220  página web. 409  PageMethods. 36  nemónico. 676. 217  ol. 1070  ObjectStateEntry. 1017  objeto Response. 63  My. 12  orden parametrizada. 36  navegar por los elementos de una lista. 1080  ngen. 785  objetos de sincronización. 505  PageSetupDialog. 635  nodo. 234  ObjectCollection. 895  orígenes de datos. 645  p. 1033  OdbcDataAdapter. 1005  página web ASP. 575  N‐Tier architecture. 1008  página web. 781. modelo de ejecución. 746. 626  OperationContract. 268  origen de datos. 501  PageRequestManager. ventana. 698  NuGet. 784. 265  organizar iconos. 183. 516  N‐Layer architecture. 969  onchange. añadir. 610  Node.

1120 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC paginación. 63  propiedades. 354. 398  Paint. 379  postback. 441  Parse. 927  propiedad Cancel. control. 432. 406  parámetro oculto. 55  pool de conexiones. 340  producto cartesiano. 29  permanente.NET. 741  Priority. 24. 76  Profile. 427  passport. 327  propiedades. 50. 797  Protected. 50  plantilla de formularios. 406  parámetros en órdenes SQL. control de usuario. 208  Parameters. 299  problemas de concurrencia. 298. 302  propiedad TanIndex. 376. 581  Play. 656  Partial. 50  PasswordRecovery. 982  protocolo. 567  perfiles. 108  portapapeles. 55  PictureBox. 926  propiedad Text. 641  Print. 621  pasos. 54. 662  posición inicial del formulario. 1091  PrintPage. 377. 1003. 951  . 114  PropertyManager. 526  propiedad Cursor. 380. 645  principal. 86  propiedad autoimplementada. clasificación. 375. 1062  PreRender. 983  ParameterExpression. añadir a un control. 339  propiedad ReadOnly. 386. 567  PerformClick. 217  páginas ASP. 983  propiedad DataSource. 517. 581  patrón de diseño Factory. 701  propiedad TabStop. 581  propiedades. 142. 388  PostgreSql. 1066  presentación. 427  Parse. 55. 760  propiedad Name. 755. 300  propiedad DataMember. 50  PreInit. 117. 516  PropertyChanged. 500  PRIMARY KEY. 435  propiedad. 323. 358  páginas web. 785. 533  panel de dibujo. 1021  378. 108  PNG. 387  Position. 798  propiedades.  postbacks asíncronos. 863  PrintDialog. 323  propiedad Modified. 1079  ProgressPercentage. 55  Paste. 516  ProgressChanged. 649  propiedad DataBindings. 442. 556  Panel. evento. publicar. 321  propiedad Size. 50. 81. 329  patrones de diseño. 222  propiedades de navegación. 1029  propiedades. 365  plantilla. 632  ProgressBar. 381. 387. 373. 55  Point. 27  posición de un componente. 54  PerformStep. 55  POCO. 54  POP 2 y 3. 239  propiedad cambió. 367  procedimientos almacenados. 209  propiedad Icon. 807. 379  post. 312  propiedad Location. 188. 96  PasswordChar. 583  propiedad Font. 489  proveedor de entidades. 176  propiedad ClientSize. 1064  propiedad TextAlign. 577  Pen. 638  pantalla de presentación. 81. 723  proveedor de datos. 234  precompilar la aplicación ASP. 294. 919  proveedores de LINQ. 144  propiedad Count. 469. notificar. 950  propiedad Controls. modificar. 379. 785  protocolo de transferencia de ficheros. atributos. 502  propietario de un diálogo. 358  providers. 366  propiedad Position.

 404. 68. acceder. 373  Rectangle. 132. 1017  scripts. 938  ReaderWriterLock. 54. 375  ruta del sitio web. 352  recursos embebidos. 803. 848  Request. 352  RunWorkerAsync. 695  reloj despertador. 1017  ScriptPath. 487  ScriptService. 1005  readyState. 958  . atributo proveedor de valor. 19  referencias culturales. 781  Resize. 793  ResourceManager. 693. 1101  raster. 238  seguridad. 68  RichTextBox. 806  RunWorkerCompleted. 108  responseXML. 295  Replace. 29  ScrollBars. 139  Reload. 553  recursos vinculados. 295  ScriptManagerProxy. 793  reset. 231  publicar páginas web. 567  ScrollBar. 662  Regex. 802. 406  Q  representar funciones. 1036  rehacer. 802  RequiredFieldValidator. 1021  región no válida. 1100  Rows. 404  reescritura de la URL. 62  punto de inserción. 812  punto final. 89  rendimiento del servidor. 203  rejilla de ayuda. 351  recursos. 999  RTF. 1021. 352  RedirectFromLoginPage. 1005  RestoreBounds. 309  reutilización. colección. 410  responseText. 741  RemoveAt. 438  SaveFile. 51  RemoveHandler. 938  Run. 302  RevertMerge. 197. 197  puntero. 698  sección crítica. 70  Refresh. 254  recursos. 188  resolución gráfica. 1079  R  Reset. 413  RAD. 309  ScriptManager. 410  reloj. 294  RangeValidator. 1012  región de recorte. 103  ReportProgress. 308  script callbacks. 22  RemoveAt. 330  QueryString. 223  seguimiento de los cambios. 102. 1099. 223  RadioButton. 999  Read. 504  Response. 81. 130. 360  Scroll. dispositivos. 243  Redirect. 54. 206  rejilla. 164  punto de entrada a la aplicación. 1028  RegisterClientScriptBlock. área de. 81. 66  recorte. 875  repintar una ventana. 352. 691  SaveChanges. 1091  registros. 1099. 447. 352  región. 109  recursos de una aplicación. 151. 1094  S  reflexión. 46  Redo. 81. ÍNDICE 1121 proyecto. 164. 407  refactorización. 132  Row. 16  Remove. 1005  ReadOnly. 132  RowCount. 294  Response. 802  referencias.Redirect. 1021  RegisterStartupScript. 1096  RGB.

 771  SMTP. 672. 673  ShortcutKeys. 183. 1036  skins. 838  Session. 1092  Select. 170. 1065  SortedList. 752  ShowNodeToolTips. 64. 1064  seleccionar el texto de una caja. 948  seleccionar un objeto. 364  Shutdown. 265  ShowDialog. 1065  servicio de suscripciones. 218  SelectedRows. 57  SelectedIndexChanged. 491  servicios web. 144. 199. 359  Shown. 219  SelectionChange. 303  ServiceContract. 815  SelectCommand. 283  SelectedImageIndex. 194. acceso a BD. 875  SOAP. 183. 874  servicio WCF. 89  SelectedValue. 413. 882  SolidBrush. 584. 65. 1092  select. 1011  SelectedIndex. 292  size. 505  SetClip. administración. 90  servidor de nombres. 339  servicios de IIS. 194. 990  sonido en una aplicación. 871  servicio WCF. 273  servicios web y LINQ. 746. 221  SelectedRtf. 398  servicio de conexiones. 491  Set. 157. 1034  SplitContainer. 1081  SetError. 257. 89. 269  SelectionFont. 635. 301  servicio web. mensaje. 873  Sleep. 409  sistema de nombres de dominio. 28  servidor web. 802. 91. 229  servidor SMTP de IIS.1122 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC seleccionar datos de una tabla. 363  ShowRootLines. 741  señalar un elemento de un menú. 157. 230  Servicios de objetos. 980  servicio. 50. 196  ShowColor. 309  selected. 511  sitio web. 823. 143  simultaneidad optimista. 177. 1069  Server. 229  SetCacheability. 802  SELECT. 941  seriar/deseriar un árbol. 97  SelectedCells. 563  SelectMethod. 229. 1080  servlets. 201. 90. 954  separadores. 841  Size. 951  SOAP. 223  Services. 689. 179. 890  seleccionar el contenido de una caja de texto. 143. 8  solución. 646  SplashScreen. 125  sitios web. 177. 752  SetToolTip. 558. 234  SelectedItems. 65  SelectedText. 91. 130  SelectedItem. 710  SelectedColumns. 16  servicio web. 761  sincronización. 269  Selecting. 752  Show. 143  simultaneidad. 917  Semaphore. 244  SetInitializer. 73  SelectionLength. 364  ShowReadOnly. 1021. 488  . 838  ShowPlusMinus. 200  servicios de Internet. 194. 204  Servicio de red. 895  SelectionStart. 258  setTimeout. 76  servicios web con AJAX. 255. configuración. 222. 91. reglas de acceso. 894  SQL. 742  Sort. 269  SelectionAlignment. 63. 359  ShowInTaskbar. 199. 948. 55. 1063  sentencia Using. 153  sitio web. 876  SizeChanged. 157. 63. 243  setLocationRelativeTo. 926  SmallChange. 91. 222  SelectedNode. 243  ShowHelp. 686  SelectAll. ejecución asíncrona. 144.

 88. 961. 66  tamaño de los controles. 469  TextChanged. 392  TickFrequency. 81. 55. 81  td. 419  Thread.Linq. 30  th. 395  System. 207  system. 932  TextBoxBase. 53. 927  ticks.ComponentModel. 622. 1083  StatusStrip.Windows.Expressions. 1083  src. 410. 644  TableAdapterManager. 72  System. 161  temporizador. 574  SSL.Data. 85  statusText. 790  T  SQL Server 2012 Express. 503  TabIndex. 55  SqlCacheDependency. 693  teclas Alt. 1054  Tab. 504  tabla. 1011  submenús.Drawing. 563  tabla. 887  theme. 80  TIFF.exe. 191. 395  System. 207  System. 1063  temas. 619  ThreadExit. 25. 398  tablero de dibujo. 396.Forms. Control o Shift (Mayús). 91  Step. 82.Web. 1076  table dinámico. 89.Windows. 1005  tecla pulsada. 73  Take While. 509. 1083  SqlConnection.Runtime. 225  System. 143  SupportsFiltering. 1080  SqlCommand. 94  StoreWins. 1005  TCP/IP. 82. 619  ThreadState. 505  tabla. 410. interceptar.CompilerServices. 73  Tag. 698  tamaño de un componente. 296  ThreadStart. 24. 63  TabStop. modificar. 49. 224. ÍNDICE 1123 SQL Server. 141  suplantación de identidad. 502. 1051  SQL Server Management Studio Express. 54. 1005  SSDL. 426  SupportsSorting. 210  SQLCMD.Threading. 1062  StatusBar. 321  System.Forms.Linq. 199  submit. 814  textarea. 980  SyncLock. 81  Timer. 340  StartPosition. 27  State. 72  System. 967  TableLayoutPanel. 126  SqlCommandBuilder. 137  tecla de acceso. 501  tabla con cabecera de filas. 487.Design. 627  TextBox. 152  suscribir evento. 802  TickStyle. 185  System. 1079  TextAlign. 1083  SvcUtil. 213  Start. 94  Strikethru. 636  Tick. 820. 1074. 54. 281  SqlDataAdapter. 627  StartupPosition. 1034  . 222  status. 364  telnet. 223. 81. 1052  tabindex. 930. 469  texto seleccionado. construir. 108  Substitution. 56. 631  ThreeState. evento. 87. 244  SqlDataReader. 1080  Sum. 50. 484  StartupNextInstance. 1065  subdominio. 246  SqlDataSource. 50. 817  TabControl. 127  Text. 241. 55  Startup. 1024  table.web.Linq. 239  System. 54. 398  System. 980  submenú‐menú contextual. 81  ThreadException. 209  teclas. iniciar.

 727  TransactionScope. 192  UpdatePanel. 127  UserDeletingRow. 209. 649  Triggers. 308  ValidationSummary. 144. 613  ToolStripSeparator. 794  transacción. 613  validar datos. 121  UserControl. 523  validación. 480  Using. 711  trazado. DataGridView. 663  UpdateProgress. 519. 364  tip. 620  VaryByParam. 96  transformación local. 93  transformación. 897  variable fuertemente tipada. 375  ToolStripItemCollection. 263. 793  TreeNode. 203. 499  ventana. 254  Value. 767  ToUpper. 432  UPDATE. 505  title. 263  unidad de medida. 569. 924  ToolStripItem. 128  usuario ASPNET. 299  tipo enumerado. 478  tr. 813  Unchanged. 351  UserName. 511. 1032  ToolBar. 318  ValidationAttribute. 532. 957  ToolStripMenuItem. 231. 154. 613  validación personalizada. 620  Unload. 88  UpdateMode. 489  tipo implícito. 57  Top. 255  value. 507. 1028  ToList. 926  ToolTip. 193  validación de datos. 756  U  variable. 352. 521. 785  tipografía. 823  tipos de enlace. 938  ToolStripButton. 81  URL. 1079  TreeView. 316  Validating. 45  . 620  typeof. 114  ValueChanged. controles. 1031  ToInt32. 606  TrackBar. 1030  value provider attributes. dirigirse a otra. 725. 121. 1069  UpdateMethod. 613. 73  tipo de un objeto. 207  validación discreta.1124 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC TimeSpam. 1029  Value Object. 135  USENET. 96  transformaciones de color. 316  validar un campo de texto. 226  Underline. 460. 81. 126. 546  ToolStripManager. 490  tipos SQL. 193. 438  Transform. 544  var. 104  transacciones explícitas. 1066  ToolStripComboBox. 620  UnhandledException. 43. 314. 558  Type. 296  Update. 1065. 489  UpdateCommand. 518. 316  Validated. declaración implícita. 1083  validación de los datos. 57  Undo. 134  URL. 230. 331  Validate. 360  tipo anónimo. 762  ToDouble. 237  trigger. 460  varbinary. 848  TryParse. 111  UNIQUE. 66  V  ToString. 1077  ValueMember. 606  transformación global. 206  type. 262  validación. 65  Topmost. 155  User. 1072  ToolStrip.

 54  vista. 406  Visual Studio . 784. 925  vista del control. 347. 38. 474  WordWrap. 38. 1013  XMLHttpRequest. ordenar sus elementos. 727  XML. 635  Ventana. 1075  ViewState. 1052  web. 413  WWW. 81. 344  WebResource. 344  webMethod. 7. 927  XMLHTTP. 838  ViewState. 818  WindowsFormsApplicationBase. 1009. 344  vista. 873  XCOPY. 15  WorkerSupportsCancellation. 1014  ventana. 204  world wide web. 13. 471  WindowsIdentity. filtrar sus elementos. menú. 413  X  WCF. 1089  Web. 1066  WaitAny. centrar. 818  Windows Forms. 79  W  WriteLine. ÍNDICE 1125 ventana de aplicación. 1090  web. 7.axd.config. 474  WithEvents. 844  WindowState. 139  vista. 1065.NET. 407  VScrollBar. deshabilitar. 1066  XHTML. controles. 362  WhereParameters. buscar sus elementos. 410. 129  WSDL. 7. 1066  WPF. mecanismo. 412  WaitOne. 808  width. 66. 473  WorkerReportsProgress. 1004    . 1039  ventana de documento. 1004  WebForm_DoCallback. 413  WaitHandle. 1001. 79  ViewState. 807. 76  vista de colección. 283  Where. 872  WaitAll.

5x de 16 bits) ISBN: 978-84-7897-180-0 Aplicaciones para Windows 846 págs. + CD-ROM ● El lenguaje de programación ISBN: 978-84-7897-485-6 Java 320 págs. ● Curso de programación ISBN: 978-84-7897-001-8 Microsoft COBOL 480 págs.5 ISBN: 978-84-86381-74-5 Guía del programador 496 págs.072 págs. ● El abecé de ISBN: 978-84-7897-114-5 MS-DOS 6 224 págs. 1. ● Curso de programación ISBN: 978-84-86381-87-5 GW BASIC/BASICA 320 págs. ● Enciclopedia del lenguaje ISBN: 978-84-7897-053-7 C 888 págs.Del mismo autor ● Curso de programación con ISBN: 978-84-86381-36-3 PASCAL 224 págs. + CD-ROM ● El lenguaje de programación ISBN: 978-84-7897-500-6 C# 320 págs. + disquete ● Microsoft Visual C ++ ISBN: 978-84-7897-344-6 Programación avanzada en Win32 888 págs. ● Curso de programación ISBN: 978-84-7897-070-4 RM/COBOL-85 396 págs. ● Manual para Quick BASIC 4. + disquete ● Enciclopedia de Microsoft ISBN: 978-84-7897-386-6 Visual Basic 6 1. + CD-ROM . + CD-ROM ● Visual Basic 6 ISBN: 978-84-7897-357-6 Curso de programación (2ª edición) 528 págs. ● Manual para Quick C 2 ISBN: 978-84-86381-65-3 Guía del programador 540 págs. ● Manual para TURBO BASIC ISBN: 978-84-86381-43-1 Guía del programador 444 págs. ● Curso de programación ISBN: 978-84-7897-059-9 QBASIC y MS-DOS 5 384 págs. ● Microsoft Visual C ++ (ver. + 2 disquetes ● Microsoft Visual C ++ ISBN: 978-84-7897-561-7 Aplicaciones para Win32 (2ª edición) 792 págs.

+ CD-ROM ● C/C++ ISBN: 978-84-7897-762-8 Curso de programación (3ª edición) 708 págs. + CD-ROM .110 págs. + CD-ROM ● Enciclopedia del lenguaje ISBN: 978-84-7897-915-8 C ++ (2ª edición) 902 págs. Interfaces gráficas y aplicaciones ISBN: 978-84-9964-204-8 para Internet con WPF. Interfaces gráficas y aplicaciones ISBN: 978-84-9964-203-1 para Internet con WPF.Del mismo autor ● El lenguaje de programación ISBN: 978-84-7897-525-9 Visual Basic.Net multiplataforma ISBN: 978-84-7897-880-9 (Proyecto Mono) 212 págs. + CD-ROM ● Programación orientada a objetos ISBN: 978-84-7897-761-1 con C ++ (4ª edición) 648 págs. WCF y Silverlight 938 págs. + CD-ROM ● Aplicaciones . + CD-ROM ● Enciclopedia de Microsoft ISBN: 978-84-7897-986-8 Visual C# (3ª edición) 1. + CD-ROM ● Java 2.090 págs. Interfaces gráficas y aplicaciones para ISBN: 978-84-7897-859-5 Internet (3ª edición) 718 págs. + CD-ROM ● Visual Basic.NET 464 págs. + CD-ROM ● Microsoft C# ISBN: 978-84-7897-813-7 Lenguaje y aplicaciones (2ª edición) 520 págs. + CD-ROM ● Microsoft Visual Basic . + CD-ROM ● Microsoft C# ISBN: 978-84-9964-068-6 Curso de programación (2ª edición) 850 págs. + CD-ROM ● Visual C#.NET ISBN: 978-84-9964-020-4 Lenguaje y aplicaciones (3ª edición) 520 págs. + CD-ROM ● Java 2 ISBN: 978-84-9964-032-7 Curso de programación (4ª edición) 820 págs. + CD-ROM ● Java 2 ISBN: 978-84-7897-745-1 Lenguaje y aplicaciones 392 págs. + CD-ROM ● Enciclopedia de Microsoft ISBN: 978-84-7897-987-5 Visual Basic (2ª edición) 1. WCF y Silverlight 956 págs.

WEB DEL AUTOR: http://www.NET Framework Redistributable Package antes de instalar . etc. o bien. LICENCIA Todo el contenido de este material adicional. La inclusión en este libro se debe a su gentileza y es totalmente gratuita y con la finalidad de apoyar el aprendizaje del software correspondiente.es En esta Web podrá echar una ojeada a mis publicaciones más recientes y acceder a la descarga del software nece- sario para el estudio de esta obra así como a otros recursos. .microsoft. haga el favor de consultar el acuerdo de licencia para cada uno de los pro- ductos. Para obtener más información y actualizaciones - visite las direcciones indicadas en dicho software: http://www.NET Framework. Instalación de Microsoft Visual Studio La instalación de Visual Studio (el paquete completo o las versiones Express que necesite) no requiere la instala- ción previa del SDK porque está incluido en éste.com/express/ Al realizar el proceso de instalación.NET de Windows y en la carpeta Microsoft. El segundo pa- quete incorpora todo lo necesario para escribir. Para realizar la instalación.microsoft.NET Framework.com/express/. verificar y desplegar aplicaciones desarrolladas con. es propiedad de las firmas que los representan (Microsoft.INSTALACIÓN Para instalar el kit de desarrollo de Visual Basic y los ejemplos de este libro descargue la plataforma de desarro- llo de la dirección: http://www. Esta instalación se realiza en la carpeta Microsoft. Descargue de Internet el paquete Visual Studio Express 2012.NET de archivos de programas. El primer paquete incluye todo lo necesario para ejecutar aplicaciones desarrolladas con . e instálelo (opcionalmente puede ins- talar SQL Server Express). PLATAFORMA LINUX Véase el apéndice D. excepto los ejemplos del libro.fjceballos. construir. si tiene acceso a alguna versión profesional de Visual Studio 2012.NET Framework SDK Hay que instalar . siga las instrucciones mostradas por el asistente de instalación.). PLATAFORMA WINDOWS Instalación de . Ejemplos del libro Los ejemplos del libro puede instalarlos en la carpeta Projects de Visual Studio o los puede recuperar directa- mente desde el material adicional cuando los quiera consultar.NET Framework SDK.