Desarrollo de software Texto diseñado para enseñar en profundidad a desarrollar aplicaciones basadas en la plataforma .NET Framework, utilizando Visual Basic .NET como lenguaje. El texto cubre tanto aspectos básicos como avanzados, abordando el lenguaje, programación orientada a objetos (OOP), el entorno de desarrollo de aplicaciones (IDE) de Visual Studio .NET, etc. Se trata de un manual de muy amplio contenido en documentación, además de numerosos ejemplos listos para ser utilizados desde Visual Basic .NET. Entre los requisitos previos, basta con conocimientos de fundamentos de programación, conocer al menos un lenguaje, sea este el que sea y conocer el S.O. Windows a nivel de usuario. PP RROOGGRRAAMMAACCIIÓÓNN EENN VV BB ..NNEETT IISSUUAALL AASSIICC LLUUIISS MMIIGGUUEELL BBLLAANNCCOO ADVERTENCIA LEGAL Todos los derechos de esta obra están reservados a Grupo EIDOS Consultoría y Documentación Informática, S.L. El editor prohíbe cualquier tipo de fijación, reproducción, transformación, distribución, ya sea mediante venta y/o alquiler y/o préstamo y/o cualquier otra forma de cesión de uso, y/o comunicación pública de la misma, total o parcialmente, por cualquier sistema o en cualquier soporte, ya sea por fotocopia, medio mecánico o electrónico, incluido el tratamiento informático de la misma, en cualquier lugar del universo. El almacenamiento o archivo de esta obra en un ordenador diferente al inicial está expresamente prohibido, así como cualquier otra forma de descarga (downloading), transmisión o puesta a disposición (aún en sistema streaming). La vulneración de cualesquiera de estos derechos podrá ser considerada como una actividad penal tipificada en los artículos 270 y siguientes del Código Penal. La protección de esta obra se extiende al universo, de acuerdo con las leyes y convenios internacionales. Esta obra está destinada exclusivamente para el uso particular del usuario, quedando expresamente prohibido su uso profesional en empresas, centros docentes o cualquier otro, incluyendo a sus empleados de cualquier tipo, colaboradores y/o alumnos. Si Vd. desea autorización para el uso profesional, puede obtenerla enviando un e-mail [email protected] o al fax (34)-91-5017824. Si piensa o tiene alguna duda sobre la legalidad de la autorización de la obra, o que la misma ha llegado hasta Vd. vulnerando lo anterior, le agradeceremos que nos lo comunique al e-mail [email protected] o al fax (34)-91-5012824). Esta comunicación será absolutamente confidencial. Colabore contra el fraude. Si usted piensa que esta obra le ha sido de utilidad, pero no se han abonado los derechos correspondientes, no podremos hacer más obras como ésta. © Luis Miguel Blanco, 2002 © Grupo EIDOS Consultaría y Documentación Informática, S.L., 2002 ISBN 84-88457-53-7 Programación en Visual Basic .NET Luis Miguel Blanco Responsable de la edición Coordinación de la edición Paco Marín ([email protected]) Antonio Quirós ([email protected]) Autoedición Magdalena Marín ([email protected]) Luis Miguel Blanco ([email protected]) Grupo EIDOS C/ Téllez 30 Oficina 2 28007-Madrid (España) Tel: 91 5013234 Fax: 91 (34) 5017824 www.grupoeidos.com/www.eidos.es www.LaLibreriaDigital.com 3 A Olga y David, por las horas que les he robado para escribir este texto que ahora tienes en tus manos A mis padres A Roberto y Carlos, mis hermanos pequeños, en edad, pero no en altura 5 Índice ÍNDICE..................................................................................................................................................7 INTRODUCCIÓN...............................................................................................................................21 UNA VERSIÓN LARGO TIEMPO ESPERADA..........................................................................................21 AQUELLOS DIFÍCILES TIEMPOS DE LA PROGRAMACIÓN EN WINDOWS..............................................22 SÓLO PARA LOS ELEGIDOS.................................................................................................................22 EL PROYECTO THUNDER....................................................................................................................23 UN PRODUCTO REVOLUCIONARIO.....................................................................................................23 EL PASO A OLE Y ODBC..................................................................................................................23 PASO A 32 BITS Y ORIENTACIÓN A OBJETO........................................................................................23 ACTIVEX Y ADO...............................................................................................................................24 PROGRAMACIÓN EN INTERNET..........................................................................................................24 LOS PROBLEMAS PARA EL DESARROLLO EN LA RED.........................................................................25 EL PANORAMA ACTUAL.....................................................................................................................25 LAS SOLUCIONES APORTADAS POR VB.NET....................................................................................25 EL PRECIO DE LA RENOVACIÓN.........................................................................................................25 COMENZAMOS...................................................................................................................................26 LA EVOLUCIÓN HACIA .NET.......................................................................................................27 LAS RAZONES DEL CAMBIO...............................................................................................................27 LA DIFÍCIL DECISIÓN DE ABANDONAR ANTERIORES TECNOLOGÍAS..................................................28 LA PROBLEMÁTICA DE WINDOWS DNA............................................................................................28 ASP....................................................................................................................................................28 ADO..................................................................................................................................................28 VISUAL BASIC...................................................................................................................................29 CONFLICTOS CON DLL’S...................................................................................................................29 TRAS LOS PASOS DE COM.................................................................................................................29 .NET FRAMEWORK, NUEVOS CIMIENTOS PARA LA NUEVA GENERACIÓN DE APLICACIONES................................................................................................................................31 ALGO ESTÁ CAMBIANDO...................................................................................................................31 ¿QUÉ ES .NET?..................................................................................................................................32 .NET FRAMEWORK...........................................................................................................................34 EL CLR, COMMON LANGUAGE RUNTIME.........................................................................................35 EL CTS, COMMON TYPE SYSTEM.....................................................................................................36 ¿Qué es un tipo dentro de .NET Framework?...............................................................................36 Los tipos de datos son objetos.......................................................................................................37 Categorías de tipos........................................................................................................................39 La disposición de los datos en la memoria...................................................................................39 Embalaje y desembalaje de tipos por valor..................................................................................42 METADATA (METADATOS)................................................................................................................44 SOPORTE MULTI-LENGUAJE...............................................................................................................44 EL CLS (COMMON LANGUAGE SPECIFICATION)..............................................................................45 EJECUCIÓN ADMINISTRADA...............................................................................................................45 Código administrado.....................................................................................................................46 Datos administrados......................................................................................................................46 Recolección de memoria no utilizada............................................................................................46 Recolección de memoria en VB6 y versiones anteriores...............................................................47 Recolección de memoria en .NET Framework..............................................................................47 LA EJECUCIÓN DE CÓDIGO DENTRO DEL CLR...................................................................................47 El IL, Intermediate Language.......................................................................................................47 Compilación instantánea del IL y ejecución.................................................................................48 Compilación bajo demanda...........................................................................................................49 Independencia de plataforma........................................................................................................50 DOMINIOS DE APLICACIÓN................................................................................................................50 SERVIDORES DE ENTORNO.................................................................................................................51 NAMESPACES.....................................................................................................................................52 LA JERARQUÍA DE CLASES DE .NET FRAMEWORK............................................................................55 ENSAMBLADOS..................................................................................................................................56 La problemática tradicional de los componentes..........................................................................57 Ensamblados, una respuesta a los actuales conflictos..................................................................57 Tipos de ensamblado según modo de creación.............................................................................57 El contenido de un ensamblado.....................................................................................................58 El manifiesto del ensamblado........................................................................................................58 Tipos de ensamblado según contenido..........................................................................................59 Tipos de ensamblado según ámbito...............................................................................................61 Ubicación de ensamblados compartidos.......................................................................................61 Identificación mediante claves integradas en el propio ensamblado............................................62 Versiones de ensamblados.............................................................................................................62 Compatibilidad a nivel de versión.................................................................................................63 Ejecución conjunta de ensamblados.............................................................................................63 Ficheros de configuración.............................................................................................................64 Localización de ensamblados por parte del CLR..........................................................................64 Optimización de la carga de ensamblados....................................................................................65 INSTALACIÓN DE VISUAL STUDIO .NET..................................................................................67 PREPARACIÓN DEL ENTORNO DE TRABAJO........................................................................................67 .NET Framework SDK..................................................................................................................67 Visual Studio .NET........................................................................................................................67 REQUISITOS HARDWARE....................................................................................................................68 SISTEMA OPERATIVO.........................................................................................................................68 RECOMENDACIONES PREVIAS............................................................................................................68 INSTALACIÓN DE VISUAL STUDIO .NET...........................................................................................69 BASES DE DATOS DE EJEMPLO...........................................................................................................75 LA PRIMERA APLICACIÓN...........................................................................................................79 UN HOLA MUNDO DESDE VB.NET...................................................................................................79 INICIAR EL IDE DE VS.NET..............................................................................................................79 CREAR UN NUEVO PROYECTO............................................................................................................81 OBJETOS, PROPIEDADES Y MÉTODOS................................................................................................82 FORMULARIOS...................................................................................................................................82 EL FORMULARIO COMO UN OBJETO...................................................................................................83 ACCESO A LAS PROPIEDADES DE UN FORMULARIO...........................................................................83 CONTROLES.......................................................................................................................................85 LABEL................................................................................................................................................86 EJECUTANDO LA APLICACIÓN...........................................................................................................87 EL CÓDIGO DE LA APLICACIÓN..........................................................................................................88 DISECCIONANDO EL CÓDIGO FUENTE DEL FORMULARIO..................................................................90 La clase del formulario.................................................................................................................91 El método constructor New( ).......................................................................................................91 Configuración del formulario y creación de controles.................................................................92 Liberación de recursos del formulario..........................................................................................93 ESTRUCTURA Y GRABACIÓN DEL PROYECTO....................................................................................93 ESCRITURA DE CÓDIGO...............................................................................................................95 ESCRIBIR CÓDIGO, EL PAPEL CLÁSICO DEL PROGRAMADOR.............................................................95 UN PROGRAMA ESCRIBIENDO SU CÓDIGO.........................................................................................95 CREAR EL PROYECTO.........................................................................................................................96 UN NUEVO MÓDULO DE CÓDIGO........................................................................................................96 LA UBICACIÓN FÍSICA DEL CÓDIGO...................................................................................................97 COMENTARIOS DE CÓDIGO................................................................................................................98 PROCEDIMIENTOS..............................................................................................................................98 EL PUNTO DE ENTRADA AL PROGRAMA.............................................................................................99 LA CLASE MESSAGEBOX...................................................................................................................99 CONFIGURAR EL PUNTO DE ENTRADA DEL PROYECTO....................................................................100 VARIABLES......................................................................................................................................102 INPUTBOX( )....................................................................................................................................102 COMPLETANDO EL PROCEDIMIENTO...............................................................................................103 FINALIZAMOS EL PROGRAMA..........................................................................................................104 UNA APLICACIÓN CON FUNCIONALIDAD BÁSICA............................................................105 INTEGRANDO LO VISTO HASTA EL MOMENTO.................................................................................105 UN PROGRAMA MÁS OPERATIVO.....................................................................................................105 DISEÑO DEL FORMULARIO...............................................................................................................105 CONTROLES Y EVENTOS..................................................................................................................108 OTRO MODO DE ESCRIBIR EL CÓDIGO DE UN EVENTO.....................................................................109 GRABANDO TEXTO EN UN FICHERO.................................................................................................110 UNA PUNTUALIZACIÓN SOBRE LOS EVENTOS..................................................................................112 EL ENTORNO DE DESARROLLO INTEGRADO (IDE), DE VISUAL STUDIO .NET.........113 EL IDE, UN ELEMENTO A VECES MENOSPRECIADO.........................................................................113 EL LARGO CAMINO HACIA LA CONVERGENCIA...............................................................................114 VISUAL STUDIO .NET, EL PRIMER PASO DE LA TOTAL INTEGRACIÓN.............................................114 LA PÁGINA DE INICIO.......................................................................................................................114 9 PRINCIPALES ELEMENTOS EN NUESTRO ENTORNO DE TRABAJO.....................................................116 VENTANA PRINCIPAL DE TRABAJO..................................................................................................117 MANEJO DE VENTANAS ADICIONALES DEL IDE..............................................................................119 EL EXPLORADOR DE SOLUCIONES...................................................................................................124 Agregar nuevos elementos a un proyecto....................................................................................126 Propiedades del proyecto............................................................................................................127 Propiedades de la solución.........................................................................................................128 Agregar proyectos a una solución...............................................................................................128 EL MENÚ CONTEXTUAL...................................................................................................................130 EL DISEÑADOR DEL FORMULARIO...................................................................................................130 LA VENTANA DE PROPIEDADES.......................................................................................................131 EL IDE DE VISUAL STUDIO .NET. HERRAMIENTAS Y EDITORES..................................135 EL CUADRO DE HERRAMIENTAS......................................................................................................135 Organización en fichas................................................................................................................136 Manipulación de fichas...............................................................................................................137 Organización de controles..........................................................................................................137 Manipulación de controles..........................................................................................................139 Agregar controles........................................................................................................................140 El cuadro de herramientas como contenedor de código fuente..................................................141 LAS BARRAS DE HERRAMIENTAS.....................................................................................................142 Barras de herramientas personalizadas......................................................................................143 Acople de barras de herramientas..............................................................................................145 OPCIONES ADICIONALES DE PERSONALIZACIÓN.............................................................................145 VENTANA DE RESULTADOS.............................................................................................................146 EL EDITOR DE CÓDIGO FUENTE........................................................................................................147 Ajuste de fuente y color...............................................................................................................148 Números de línea.........................................................................................................................149 Búsqueda y sustitución de código................................................................................................149 Ajuste de línea.............................................................................................................................151 Dividir el editor de código..........................................................................................................152 Marcadores.................................................................................................................................153 Mostrar espacios en blanco........................................................................................................154 Esquematización..........................................................................................................................154 Regiones......................................................................................................................................155 Comentarios de código en bloque...............................................................................................156 Ir a la definición de un procedimiento........................................................................................156 IntelliSense..................................................................................................................................156 Cambiar a mayúsculas y minúsculas..........................................................................................158 EL IDE DE VISUAL STUDIO .NET. ELEMENTOS COMPLEMENTARIOS Y AYUDA.....159 EDITORES DE IMÁGENES..................................................................................................................159 LISTA DE TAREAS............................................................................................................................160 Definición de símbolos para tareas.............................................................................................161 Creación de tareas......................................................................................................................161 Ventana Lista de tareas...............................................................................................................162 Eliminación de tareas..................................................................................................................163 MOSTRAR LA PANTALLA COMPLETA...............................................................................................163 LA VISTA DE CLASES.......................................................................................................................163 EL EXPLORADOR DE OBJETOS.........................................................................................................164 MACROS..........................................................................................................................................165 El Explorador de macros............................................................................................................166 Ejecución de macros...................................................................................................................167 Grabación de macros..................................................................................................................167 Manipulación de proyectos de macros........................................................................................168