Índice
Cómo usar este libro
¿A quién va dirigido este libro?
Convenios utilizados en este libro
Información de soporte
Información complementaria
Introducción
Breve historia de Visual Basic
Características del entorno de desarrollo de Visual Basic 2005
Conceptos elementales
¿Qué es .NET Framework?
¿Qué es el Common Language Runtime?
¿Qué es un ensamblado?
¿Qué es el Common Type System?
¿Qué es el Common Language Specification?
Capítulo 1. Conceptos básicos
Introducción
Crear un nuevo proyecto de Visual Basic 2005
Añadir controles al formulario de Windows
Añadir funcionalidad a la aplicación
Interceptar la pulsación del botón
Los elementos de un proyecto: las clases
¿Qué es una clase?
Ampliando la funcionalidad de una clase con la herencia
Las clases parciales
¿Dónde está el código que falta?
Los elementos de un proyecto: los módulos
Crear un proyecto de aplicación de consola
El método Main: el punto de inicio de las aplicaciones de .NET
Los elementos de un proyecto: los espacios de nombres
Definir un espacio de nombres
Qué puede contener un espacio de nombres
Acceder a los tipos definidos en un espacio de nombres
Crear un alias a un espacio de nombres
Definir los mismos espacios de nombres más de una vez
Los elementos de un proyecto: los miembros de las clases
Los métodos: las acciones a realizar
Las propiedades: las características de las clases
Los eventos: la forma de indicar que algo está ocurriendo
Los campos: los valores de las clases
Clases y objetos
Una clase muy particular: las estructuras
Resumen
Capítulo 2. Tipos de datosy variables
Introducción
Variables, constantes, tipos por valor y tipos por referencia
Variables, constantes y tipos de datos
Variables y constantes: Conceptos básicos
Reservar espacio de memoria para variables y constantes
Asignar valores alfanuméricos
Especificar el tipo de datos al declarar una variable
Declarar variables y constantes de un tipo específico
Declarar variables con un valor inicial
Los tipos de datos soportados por Visual Basic 2005
Caracteres de tipo
¿Es necesario declarar e indicar el tipo de datos de las variables?
¿Qué ventajas obtenemos con Option Explicit y Option Strict?
¿Dónde activar Option Explicit y Option Strict?
¿Por qué pierdo la activación de Option Strict?
Declarar varias variables en una misma línea
Declaraciones y asignaciones conflictivas
Ventajas de declarar constantes en lugar de usar un valor directamente
Expresiones, operadores y conversión de datos entre tipos diferentes
Expresiones numéricas y alfanuméricas
Operaciones de incremento y operadores de incremento
Funciones de conversión de datos
Conversiones erróneas ¿Cuándo se detectan?
Otras funciones de conversión
La clase Convert
Resumen
Capítulo 3. Control de flujo
Introducción
Procedimientos: divide y vencerás
Tipos de procedimientos
Definir un procedimiento o método
Métodos que reciben valores
Parámetros por valor y por referencia
Métodos que reciben varios parámetros
Parámetros opcionales
Evaluación de expresiones: la lógica de nuestro programa
Evaluar expresiones lógicas con If
Cuando no se cumple la expresión lógica
Anidar evaluaciones de expresiones lógicas
Evaluar expresiones con Select
Evaluar más de un valor en cada bloque Case
Operadores lógicos y relacionales
Usar los operadores relacionales para evaluar expresioneslógicas
Evaluar expresiones alfanuméricas
Evaluar más de una expresión con los operadores lógicos
Mayor eficiencia con AndAlso y OrElse
Operaciones de bits
Agrupar expresiones lógicas
Bucles: repetición del código
Bucles For/Next
Repetición descendente de un bucle For
Bucles For Each
Bucles Do/Loop
Indicar condiciones para finalizar un bucle Do
Bucles While/End While
Salir de un bucle de forma elegante
Continuar un bucle con la siguiente iteración
Resumen
Capítulo 4. Clases, estructuras, módulos y enumeraciones
Introducción
Clases, estructuras y módulos: tipos definidos por el usuario
Las clases: los tipos por referencia
Definir e instanciar clases: todo en uno
Constructores: El punto de inicio de una clase
Constructores con parámetros
Varias definiciones del constructor de una clase (sobrecarga)
Si definimos un constructor, Visual Basic no lo hará automáticamente
Los tipos por referencia contienen referencias
Las estructuras: los tipos por valor
¿Qué podemos definir en una estructura?
El constructor predeterminado de las estructuras
Los módulos: un tipo especial de Visual Basic
Enumeraciones: constantes relacionadas
Los tipos de datos de las enumeraciones
Valores no correlativos en las enumeraciones
¿Cómo usar las enumeraciones?
Las enumeraciones son constantes con nombres
Los nombres de los valores de una enumeración
Convertir los valores de una enumeración a números
Comprobar si un valor está definido en la enumeración
Cuando los "astros" se alinean... se producen uniones devalores enumerados
Operaciones a niveles de bits con enumeraciones:no es oro todo lo que reluce
Resumen
Capítulo 5. Ámbito, accesibilidad, propiedadesy sobrecarga
Introducción
Ámbito y accesibilidad
Ámbito
Ámbito de bloque
Ámbito de procedimiento
Ámbito de módulo o tipo
Ámbito de espacios de nombres
Niveles de accesibilidad
Dim: accesibilidad privada o pública
Static: mantener valores entre llamadas
Niveles de accesibilidad por defecto
Anidación de tipos
Los tipos anidables
Sobrecarga de procedimientos
¿Cómo crear sobrecargas?
IntelliSense al acceder a procedimientos sobrecargados
Sobrecarga y parámetros opcionales
Propiedades
Propiedades de solo lectura
Propiedades de solo escritura
Propiedades por defecto (indizadores)
Sobrecargas en las propiedades
Diferente nivel de accesibilidad en los bloques Get y Set
¿Dónde aplicar el ámbito en las propiedades?
Resumen
Capítulo 6. Arrays
Introducción
Arrays (o matrices)
Declarar arrays
Asignar valores a un array
Recuperar el valor de un elemento de un array
Los tipos de datos de los arrays
Inicializar un array al declararlo
Averiguar los elementos de un array
Averiguar el índice superior de un array
¿Es necesario averiguar el índice inferior de un array?
Cambiar el tamaño de un array
Cambiar el tamaño de un array conservando los valoresanteriores
Copiar arrays
Copiar elementos de un array
Crear un array "al vuelo"
Mostrar todos los miembros de una clase con IntelliSense
Métodos que crean arrays
Crear una cadena a partir de un array
Clasificar o invertir el contenido de un array
Arrays multidimensionales
¿Cuántas dimensiones puede tener un array?
Los elementos de los arrays multidimensionales
Averiguar las dimensiones de un array
Inicializar arrays multidimensionales al declararlas
Continuador de líneas
Declarar arrays multidimensionales sin inicializar
Cambiar el tamaño de los arrays multidimensionales
Arrays de arrays
Arrays multidimensionales de arrays
Eliminar un array
Array de parámetros opcionales
Resumen
Capítulo 7. Cadenas de formato
Introducción
Cadenas de formatos
Especificar formatos: ajustar el ancho
Especificar formatos: formatos preestablecidos
Especificar formatos: formatos personalizados
Formatos para fechas y horas
Formatos para números
El método ToString y las cadenas de formato
La función Format de Visual Basic
La función Format de la clase String
Resumen
Capítulo 8. Programación orientada a objetos (I)
Introducción
La POO: tan real como la vida misma
Los pilares de la POO
La abstracción como característica de la POO
Los tres pilares de la POO al detalle
Encapsulación
Herencia
El tipo de herencia soportada en .NET
Polimorfismo
Interfaces
Cómo se definen e implementan las interfaces enVisual Basic 2005
Los nombres de los miembros implementados
Acceder a los miembros implementados
Usar la herencia en Visual Basic 2005
Miembros reemplazables, no reemplazables y abstractos
Miembros reemplazables (virtuales)
Miembros no reemplazables
Miembros abstractos
Miembros de instancia y miembros compartidos
Miembros de instancia
Miembros compartidos
Definir miembros compartidos en una clase
Clases abstractas y clases selladas
Clases abstractas
Clases selladas
Las estructuras: tipos sellados
Resumen
Capítulo 9. Programación orientada a objetos (II)
Introducción
Sobrecargas de métodos y propiedades
Cuando no podemos crear sobrecargas
Sobrecargas en las propiedades
Crear copias de nuestras clases
Crear clases que puedan clasificarse
Clasificar tipos que no implementan IComparable
Palabras clave especiales: Me, MyClass, MyBase
Me: acceder a los miembros de la instancia actual
MyBase: acceder a los miembros de la clase base
MyClass: acceder a los miembros de la clase
(no a los reemplazos)
Resumen
Capítulo 10. Sobrecarga de operadores y conversiones personalizadas
Introducción
Sobrecarga de operadores
Tipos de datos que podemos incluir en las sobrecargas
Los operadores que podemos sobrecargar
Sobrecargar operadores unarios
Sobrecargar operadores binarios
Sobrecargar operadores emparejados
Sobrecargar operadores de comparación y otros "reemplazos"
Sobrecargar operadores lógicos y a nivel de bits
Sobrecargar AndAlso y OrElse
Conversiones personalizadas
Indicar si la conversión es implícita o explícita
Conversiones automáticas
Aprovechar las conversiones automáticas en la definición de operadores
Resumen
Capítulo 11. Colecciones
Introducción
Colecciones: conceptos básicos
Cómo usar las colecciones
Tipos de colecciones
Las colecciones basadas en IList
Las colecciones basadas en IDictionary
Acceder a los elementos de una colección basada en IDictionary
Colecciones basadas en ICollection
Acceder correctamente a los elementos de las colecciones
Colecciones personalizadas
Colecciones personalizadas basadas en IList
Definir los miembros personalizados de la colección basada en CollectionBase
Colecciones personalizadas basadas en IDictionary
Resumen
Capítulo 12. Colecciones, métodos y tipos generic
Introducción
Los tipos generic: introducción
Las colecciones generic
Colecciones generic de tipo lista
Colecciones generic de tipo diccionario
Los tipos de colecciones e interfaces generic
Tipos de datos que podemos almacenar en las colecciones generic
Métodos con parámetros generic
Restricciones en tipos generic
Indicar más de un tipo generic en un mismo método
Restringir a tipos que cumplan más de una condición
Sobrecarga en métodos de tipo generic
Restricciones para tipos por referencia o tipos por valor
Nuestros propios tipos generic
Indicar que el tipo generic tenga un constructor
Usar los parámetros generic en los métodos y propiedades de la clase generic
Un ejemplo de una clase generic que simula una colección generic
Resumen
Capítulo 13. El IDE de Visual Basic 2005
Introducción
Las diferentes versiones de Visual Studio 2005
Diferencia entre las dos versiones de Visual Studio 2005 más asequibles
Personalizar el entorno de desarrollo
Importar y exportar configuraciones
Disposición y acople de las ventanas
Novedades en el diseño de formularios y propiedades de los controles
Nuevas propiedades en los controles para facilitar el diseño
Cuadros de diálogos de tareas en los controles
Configuración de la aplicación por medio de fichas
Añadir y usar recursos: ahora más fácil
Resumen
Capítulo 14. Streams y el sistema de archivos
Introducción
Streams: conceptos básicos
Las clases basadas en Stream
Cómo usar las clases basadas en Stream
Acceder a un archivo usando FileStream
Acceder a un archivo usando StreamReader y StreamWriter
Aclaraciones sobre el uso de FileStream y StreamReader/StreamWriter
Clases para manipular unidades, directorios y archivos
Las clases Directory y DirectoryInfo
Las clases File y FileInfo
Manipular cadenas relacionadas con archivos y directorios usando Path
Clases para comprimir y descomprimir archivos
Acceso al sistema de archivos por medio de My
Las propiedades y métodos del objeto My.Computer.FileSystem
Resumen
Capítulo 15. Tratamiento de errores
Introducción
Tratamiento de errores en Visual Basic 2005
Tratamiento estructurado de errores: conceptos básicos
Obtener información extra del error producido
Interceptar varios tipos de errores en un mismo bloque Try
Condicionar las excepciones interceptadas
Otras consideraciones de los bloques Try
Interceptar errores de forma indirecta
Producir errores: la instrucción Throw
Asegurarnos de que liberamos los recursos usados al producirse una excepción
Liberar recursos con Using
Indicar más de un objeto en la instrucción Using
Modificar el código mientras depuramos una aplicación
Resumen
Capítulo 16. Bibliotecas de clases
Introducción
Crear una solución y los proyectos a usar
Contenido del proyecto de tipo biblioteca de clases
Añadir elementos a la biblioteca de clases
FormatoIncorrectoException: una clase basada en Exception
UtilTar y Tar: dos clases para manipular archivos de tipo tar
UtilCompress: clase con métodos para comprimir y descomprimir
UtilRegistry: Clase para manipular el registro
Resumen
Capítulo 17. Aplicaciones de Windows
Introducción
Conceptos generales del funcionamiento de las aplicaciones de Windows.Forms
Eventos: la forma de comunicarnos con el usuario
Definir métodos para interceptar los eventos
Utilizar un mismo método para interceptar varios eventos
Enlazar un mismo evento con varios métodos
¿Cuándo se producen los eventos?
Definir eventos en nuestras clases
Producir eventos definidos en una clase
Interceptar los eventos que hemos definido
Desligar un método de un evento
Controlar todo con los eventos "personalizados"
Diseño y utilización de formularios y controles
Añadir controles al formulario
Posicionar y cambiar el tamaño de los controles
Propiedades relativas al tamaño y posición de los controles y formularios
Propiedades interesantes de los controles
Autocompletar en las cajas de texto y listas desplegables
Operaciones de edición en las cajas de texto y listas
Agregar recursos a la aplicación
Asignar imágenes a los controles
Trabajar con valores de configuración
Añadir y mostrar un segundo formulario
Mostrar un formulario pasándole parámetros
Usar temporizadores y leer la línea de comandos
Abrir y guardar usando cuadros de diálogos comunes
Usar nuestros tipos de datos como valores de los elementos de un ComboBox
Implementar funcionalidad de arrastrar y soltar
Indicar el orden de tabulación de los controles
Habilitar adecuadamente los elementos del menú de edición
Habilitar/deshabilitar los botones de edición de la barra de herramientas
Crear por código un menú contextual
Distribuir aplicaciones de .NET
Distribuir aplicaciones con ClickOnce
Indicar la ruta en la que se crearán los archivos de instalación y actualización
Indicar los requisitos previos de nuestra aplicación
Indicar si se buscarán actualizaciones
Deshacer la última actualización
Realizar la publicación
Instalar y actualizar la aplicación desde Internet
Obtener información de ClickOnce por código
Resumen
Índice alfabético