Bienvenido al curso de instrucción a .NET con Visual Basic 2005 ........... 3
Acerca de los autores ............................................................................. 4
Introducción a la plataforma .NET ............................................................. 4
El entorno de ejecución CLR ................................................................ 5 El lenguaje intermedio y el CLS ........................................................... 5 La especificación común de los lenguajes y el sistema de tipos comunes ............................................................................................ 7 La biblioteca de clases ........................................................................... 9 Los espacios de nombres ................................................................ 10
Acceso a datos con ADO.NET ............................................................ 11
Capa conectada ............................................................................... 12 Capa desconectada ......................................................................... 13 Aplicaciones Windows Forms ............................................................ 14 Aplicaciones Web Forms .................................................................... 17
Características del lenguaje Visual Basic ................................................. 20
El sistema de tipos ............................................................................... 20 Introducción ................................................................................... 21 Tipos de datos de .NET .................................................................. 21 Tipos primitivos ............................................................................. 23 Sufijos o caracteres y símbolos identificadores para los tipos ........................................................................................... 24 Tipos por valor y tipos por referencia ....................................... 25 Variables y constantes ..................................................................... 26 Consejo para usar las constantes ............................................... 26 Declarar variables ...................................................................... 27 Declarar variables y asignar el valor inicial .............................. 28 Obligar a declarar las variables con el tipo de datos ................. 29 Aplicar Option Strict On a un fichero en particular .................. 30 Aplicar Option Strict On a todo el proyecto ............................. 30 Más opciones aplicables a los proyectos ................................... 33 Enumeraciones: constantes agrupadas ........................................... 35 El nombre de los miembros de las enumeraciones ................... 36 Los valores de una enumeración no son simples números ........ 38 436 Cursos Arrays (matrices) ............................................................................ 40 Declarar arrays .......................................................................... 41 Declarar e inicializar un array ................................................... 42 Cambiar el tamaño de un array ................................................. 43 Eliminar el contenido de una array ..............................................43 Los arrays son tipos por referencia ........................................... 45 Clases y estructuras ............................................................................. 47 Introducción .............................................................................. 47 Clases: tipos de referencia definidos por el usuario ....................... 47 Las clases: el corazón de .NET Framework .............................. 47 La herencia: Característica principal de la Programación Orientada a Objetos ................................................................... 48 Encapsulación y Poliformismo .................................................. 48 Object: La clase base de todas las clases de .NET .................... 49 Definir una clase ................................................................................50 Una clase especial: Módulo ....................................................... 51 Los miembros de una clase ....................................................... 51 Características de los métodos y propiedades ........................... 52 Accesibilidad, ámbito y miembros compartidos .................. 52 Ámbito ............................................................................. 53 Accesibilidad ................................................................... 53 Miembros compartidos .................................................... 54 Parámetros y parámetros opcionales .................................... 54 Array de parámetros opcionales (ParamArray) .................... 56 Sobrecarga de métodos y propiedades ...................................... 58 Parámetros por valor y parámetros por referencia .................... 60 Instanciar una clase: Crear un objeto en la memoria ..................... 61 Declarar primero la variable y después instanciarla .................. 61 Declarar y asignar un solo paso ................................................. 62 El constructor: El punto de inicio de una clase ......................... 62 Constructores parametrizados ................................................... 63 Cuando Visual Basic 2005 no crea un constructor automáticamente ........................................................................ 66 El destructor: El punto final de la vida de una clase ................. 66 Estructuras: Tipos por valor definidos por el usuario .................... 67 Definir una estructura ................................................................ 68 Constructores de las estructuras ................................................ 69 Destructores de las estructuras .................................................. 69 Los miembros de una estructura ................................................ 70 Visual Studio 2005 437 Campos ................................................................................. 70 Métodos y otros elementos ................................................... 70 Cómo usar las estructuras .......................................................... 71 Accesibilidad y ámbito ................................................................... 71 Ámbito ....................................................................................... 72 Ámbito de bloque ................................................................. 73 Ámbito de procedimiento ..................................................... 74 Ámbito de módulo ................................................................ 75 Ámbito en el espacio de nombres ........................................ 75 La palabra clave Global ............................................................ 76 Accesibilidad ............................................................................. 77 Accesibilidad a las variables en los procedimientos ............ 78 Las accesibilidades predeterminadas ........................................ 78 Anidación de tipos ..................................................................... 80 Los tipos anidables ............................................................... 80 El nombre completo de un tipo ............................................ 81 Importación de espacios de nombres ................................... 82 Alias de espacios de nombres ............................................... 82 Propiedades .................................................................................... 84 Definir una propiedad ................................................................ 84 Propiedades de solo lectura ....................................................... 85 Propiedades de solo escritura .................................................... 86 Diferente accesibilidad para los bloques Get y Set ................... 86 Propiedades predeterminadas .................................................... 87 Sobrecarga de propiedades predeterminadas ............................ 87 Interfaces ........................................................................................ 89 ¿Qué es una interfaz? ................................................................ 89 Una interfaz es un contrato ....................................................... 91 Las interfaces y el poliformismo ............................................... 91 Usar una interfaz en una clase ................................................... 92 Acceder a los miembros implementados ................................... 93 Saber si un objeto implementa una interfaz .............................. 93 Implementación de múltiples interfaces .................................... 94 Múltiple implementación de un mismo miembro ..................... 95 ¿Dónde podemos implementar las interfaces? .......................... 95 Un ejemplo práctico usando una interfaz de .NET ................... 97 Manejo de excepciones ....................................................................... 99 Manejo de excepciones no estructuradas .................................. 99 Manejo de excepciones estructuradas ..................................... 100 438 Cursos Bloque Try .............................................................................. 100 Bloque Catch ........................................................................... 100 Varias capturas de errores en un mismo bloque Try/Catch .... 101 Evaluación condicional en un bloque Catch ........................... 102 Bloque Finally ......................................................................... 102 Captura de errores no controlados ........................................... 103 Eventos y delegados .......................................................................... 104 Eventos ......................................................................................... 104 Interceptar los eventos de los controles de un formulario ...... 105 Interceptar eventos en Visual Basic 2005 .......................... 105 Asociar un evento con un control ............................................ 106 Formas de asociar los eventos con un control ......................... 107 Asociar el evento manualmente por medio de Handles ..... 107 Asociar el evento desde la ventana de código .................... 107 Asociar varios eventos a un mismo procedimiento ................. 108 Declarar una variable para asociar eventos con Handles ........ 110 Delegados ..................................................................................... 111 ¿Qué ocurre cuando se asigna y se produce un evento? ......... 111 ¿Qué papel juegan los delegados en todo este proceso? ......... 112 Definición “formal” de delegado ............................................ 113 Utilizar un delegado para acceder a un método ...................... 115 Definir y producir eventos en una clase ....................................... 118 Definir eventos en una clase .................................................... 118 Producir un evento en nuestra clase ........................................ 119 Otra forma de asociar los eventos de una clase con un método ..................................................................................... 119 Asociar eventos mediante AddHandler ................................... 120 Desasociar eventos mediante RemoveHandler ....................... 121 Definir un evento bien informado con Custom Event .................. 121 Atributos ............................................................................................ 123 Atributos para representar información de nuestra aplicación ................................................................................ 124 Mostrar los ficheros del proyecto ............................................ 126 Tipos de atributos que podemos aplicar en una aplicación ..... 127 Atributos globales a la aplicación ........................................... 127 Atributos particulares a las clases o miembros de las clases ... 128 Atributos personalizados ......................................................... 128 Acceder a los atributos personalizados en tiempo de ejecución .................................................................................. 129 Visual Studio 2005 439 Atributos específicos de Visual Basic ..................................... 130 Marcar ciertos miembros de una clase como obsoletos .......... 130
Desarrollo de aplicaciones Windows ..................................................... 131
Uso del diseñador de Visual Basic .................................................... 132 Cuadro de herramientas ................................................................ 132 Explorador de base de datos ......................................................... 134 Conectando con una base de datos Microsoft Access a través de OLE DB ................................................................... 135 Explorador de soluciones ............................................................. 138 Propiedades .................................................................................. 139 Menús y barras de botones ........................................................... 139 Otras consideraciones ................................................................... 141
Controles de Windows Forms ........................................................... 144
Datos ............................................................................................ 145 Componentes ................................................................................ 146 Controles comunes ....................................................................... 147 General ......................................................................................... 149 Otras consideraciones ................................................................... 150 Manipulando el cuadro de herramientas ................................. 150 Otros controles a tener en cuenta ....................................... 152 Trabajo con controles ........................................................................ 155 Dominando los controles en el entorno de trabajo ....................... 155 Creación de controles en tiempo de ejecución ............................. 159 Creación de una matriz de controles ............................................ 164 Creación de controles nuevos ....................................................... 166 Otras consideraciones ................................................................... 172 Controladores contenedores .................................................... 172 Smart Tags .............................................................................. 176 Generación de código rápido ................................................... 180 Trabajos con imágenes y gráficos ..................................................... 181 Gráficos 3D .................................................................................. 182 Gráficos 2D .................................................................................. 184 Dibujando líneas con GDI+ ......................................................... 185 Líneas simples ......................................................................... 185 Líneas personalizadas .............................................................. 186 Trazando caminos o rutas de líneas ........................................ 187 Líneas con texturas ................................................................... 188 440 Cursos Dibujando curvas con GDI+ ........................................................ 189 Trazando curvas simples ......................................................... 189 Curvas de Bézier ..................................................................... 190 Rellenando curvas ..................................................................... 191 Dibujando tartas ...................................................................... 192 Dibujando cadenas de texto con GDI+ ...........................................193 Dibujando cadenas de texto ..................................................... 193 Dibujando cadenas de texto con textura .................................. 194 Otras consideraciones ................................................................... 195 Insertando y trabajando con imágenes con System.Drawing .. 196 Aplicando transparencias a una imagen .................................. 196 Despliegue de aplicaciones ............................................................... 197 Desmitificando los ensamblados .................................................. 197 Desplegando con XCOPY ............................................................ 203 Notas previas ........................................................................... 203 XCOPY ................................................................................... 203 GAC y Strong Names ................................................................... 205 GAC .......................................................................................... 205 Strong Names .......................................................................... 205 Creando un paquete de instalación ............................................... 206 Setup Proyect .......................................................................... 206 Tipos de despliegues de proyectos .......................................... 207 Otras consideraciones ................................................................... 208 Setup Proyect .......................................................................... 208 El concepto Clic Once ............................................................. 209
La librería de clases .NET ...................................................................... 216
Colecciones de datos ......................................................................... 216 Los tipos de colecciones de .NET ................................................ 217 Las colecciones basadas en ICollection .................................. 217 Las colecciones basadas en IList ............................................. 218 La colección ArrayList ............................................................ 219 El tipo de datos de almacenamiento de las colecciones ........... 220 Las colecciones basadas en IDictionary .................................. 221 Almacenar valores en una colección tipo IDictionary ............ 223 Cómo se almacenen los elementos de las colecciones IDictionary .............................................................................. 223 Obtener todas las claves y valores de una colección IDictionary .............................................................................. 224 Visual Studio 2005 441 Las clases base para crear colecciones personalizadas ................ 224 Crear una colección basada en CollectionBase ....................... 225 Crear una colección basada en DictionaryBase ...................... 228 Crear colecciones personalizadas usando colecciones generic ..................................................................................... 230 La colección Clientes en versión generic ........................... 230 La colección Artículos en versión generic ......................... 232 Colecciones de tipo generic .......................................................... 233 Restricciones en los tipos generis ............................................ 234 Streams en .NET ............................................................................... 236 Las clases basadas en Stream ....................................................... 238 Manejar un fichero usando FileStream ................................... 239 Manjar un fichero usando StreamRender y StreamWriter ...... 242 Asegurarnos que el fichero se cierra .................................. 244 Liberar recursos: Using…End Using ................................. 245 Ejemplo para cifrar y descifrar un fichero ......................... 245 Acceso al sistema de archivos ........................................................... 247 Las clases del espacio de nombres System.IO ............................ 248 Clases para manipular unidades, directorios y ficheros .......... 248 Las clases para crear streams .................................................. 249 Las clases para leer o escribir en los streams .......................... 250 Las clases Directory y DirectoryInfo ...................................... 251 Los métodos de las clases Directory y DirectoryInfo ........ 253 Las clases File y FileInfo ........................................................ 257 Cifrar y descifrar un fichero usando File o FileInfo ........... 258 Abrir ficheros para agregar o leer el contenido .................. 260 Manipular cadenas relacionadas con ficheros y directorios usando Path ...................................................... 262 Las clases StreamReader y SreamWriter ................................ 264 La codificación de los ficheros .NET ................................. 264 Acceso a Internet ............................................................................... 267 System.NET: Las clases para acceder a la red ............................. 267 Las clases de System.NET ............................................................ 267 Acceder a una página .............................................................. 270 Acceder a un servicio FTP ...................................................... 271 Acceso rápido a la red con My.Computer.Network ................ 272 Obtener información de la red con las clases de .NET ........... 273
Acceso a datos ........................................................................................ 274
442 Cursos Descripción ADO.NET ..................................................................... 275 Acercándonos a ADO.NET .......................................................... 275 ¿Qué es ADO.NET? ................................................................ 275 ¿Qué capas o qué partes hay dentro de ADO.NET? ............... 276 ¿Qué nos permite realmente ADO.NET cuando trabajamos con XML? ...................................................................................... 277 System.Data ................................................................................. 277 La clase DataSet ...................................................................... 278 La clase DataView .................................................................. 278 La clase DataTable .................................................................. 278 Un pequeño ejemplo práctico .................................................. 279 Los proveedores de acceso a datos ............................................... 279 Proveedores de acceso a datos de .NET Framework .............. 280 Otros proveedores de acceso a datos ....................................... 281 El objeto Connection ............................................................... 281 El objeto Command ................................................................. 282 El objeto DataAdapter ............................................................. 282 El objeto DataReader .............................................................. 283 El concepto Databrinding ............................................................. 283 El uso de DataBind .................................................................. 283 Otras consideraciones ................................................................... 284 Acceso conectado a base de datos ..................................................... 285 El paradigma de la conexión ........................................................ 285 Conociendo el objeto DataReader ................................................ 286 DataReader es de sólo lectura ................................................. 287 DataReader se maneja en una sola dirección .......................... 287 DataReader es rápido .............................................................. 287 Analizando el flujo de trabajo de DataReader ........................ 287 Un primer contacto con el objeto DataReader ............................. 288 Un ejemplo simple para entenderlo mejor .............................. 288 ¿Trabaja DataReader en un ambiente conectado realmente? ....... 289 Desenchufando la fuente de datos usando DataReader ........... 290 Usando DataSource con DataReader ........................................... 292 Demostración del uso de DataSource con DataReader ........... 292 Carga segmentada de datos con DataSource y DataReader .... 293 Usando los componentes de acceso a datos de .NET ................... 294 Demostración del uso de BindingSource BindingNavigator .. 294 Acceso desconectado: DataSets y DataAdapters .............................. 295 Esquema general de la estructura desconectada de acceso a Visual Studio 2005 443 datos ............................................................................................. 296 Connection, DataAdapter y DataSet ....................................... 296 Conociendo el objeto DataAdapter .............................................. 297 Connection, DataAdapter y DataSet ...................................... 297 Utilizando las clase de .NET ................................................... 297 Utilizando los componentes de .NET ...................................... 299 Insertando datos a través del objeto DataAdapter ........................ 304 ¿Cómo se insertan datos con el objeto DataAdapter? ............. 304 Trabajando con un ejemplo ..................................................... 304 Actualizando datos a través del objeto DataAdapter ................... 308 Eliminando datos a través del objeto DataAdapter ...................... 309 DataSets tipados ................................................................................ 311 ¿Qué son los DataSets tipados? .................................................... 312 Cómo trabajar con un DataSet tipado ..................................... 312 ¿Qué ventajas nos aportan los DataSets tipados? .................... 313 Generando nuestros DataSets tipados .......................................... 313 Diagrama de datos ................................................................... 314 Generando un DataSet tipado con Visual Studio 2005 ................ 314 Usando el entorno de desarrollo Visual Studio 2005 .............. 315 Generando un DataSet tipado con la línea de comandos ............. 352 Usando la herramienta XSD.exe ............................................. 352 Usando los DataSets tipados ........................................................ 375 Uso rápido de nuestro DataSet tipado ..................................... 376 Atención especial al Cuadro de herramientas ......................... 377 Usando las herramientas automáticas para trabajar con DataSets tipados ...................................................................... 377 Usando DataAdapter con DataSets tipados ............................. 379 Enlace a formularios .......................................................................... 387 ¿Qué son los datos Maestro detalle? ............................................ 387 Configurando la fuente de datos ................................................... 388 Configurando el origen de la fuente de datos .......................... 388 Preparando el origen de datos ...................................................... 394 Preparando la tabla padre ........................................................ 394 Preparando la tabla hija ........................................................... 397 Incrustando los datos maestro detalle .......................................... 399 Incrustando la tabla padre en el formulario ............................. 399 Relacionando la tabla padre con la tabla hija .......................... 404 Manipulando los datos maestro detalle ........................................ 406 Modificando datos ................................................................. 407 444 Cursos Insertando y eliminando datos ................................................ 408
Servicios Web ........................................................................................ 408
Introducción a los servicios Web ...................................................... 408 ¿Qué son los servicios Web? ........................................................ 409 Un poco de historia: modelos de desarrollo ............................ 410 Comunicación entre componentes ............................................... 412 SOAP ............................................................................................ 414 Breve historia de SOAP .......................................................... 414 La base tecnológica de SOAP ................................................. 415 Descubrimiento de servicios: WDSL y UDDI ........................ 417 Creación de servicios Web ................................................................ 417 Nuestro primer servicio Web ....................................................... 418 Crear un proyecto de tipo servicio Web con Visual Studio 2005 ......................................................................................... 418 Crear un servicio Web usando un solo fichero ....................... 420 Eliminar ficheros de un proyecto ............................................ 421 Analizando el contenido de un servicio Web .......................... 422 Atributos aplicables a los servicios Web ...................................... 422 Definición de la clase a usar en el servicio Web ..................... 424 Añadir métodos para usarlos en el servicio Web .................... 424 Probar nuestro servicio Web ................................................... 425 Consumo de Servicios Web .............................................................. 427 Utilizar los Servicios Web desde una aplicación Windows ......... 428 Alojar el servicio Web con un servidor local .......................... 428 Activar el servicio Web para usar con un directorio local ...... 429 Crear un proyecto Windows para usar el servicio Web .......... 430 Añadir una referencia para acceder al servicio Web .......... 430 Acceder al servicio Web desde el código ........................... 432 ¿Qué es lo que puede fallar? .............................................. 433
Aplicación de ejemplo MSDN Vídeo .................................................... 434