Download Visual Basic .NET - Universidad de Castilla
Document related concepts
Transcript
Programación con Visual Basic .NET 1 – Plataforma .NET Francisco Ruiz Manuel Ángel Serrano Escuela Superior de Informá Informática Universidad de CastillaCastilla-La Mancha Programació Programación con Visual Basic .NET Contenidos sesión 1 • Plataforma .NET Objetivos Estrategias de desarrollo e implantació implantación .NET Framework Entorno de Ejecució Ejecución comú común Biblioteca de clases comú común Tipos de aplicaciones • Introducció Introducción al Visual Studio .NET (VS.NET) Demo de uso UCLM-ESI. Programación con Visual Basic .NET • Primer programa: "Hola Mundo“ Mundo“ Creació Creación y ejecució ejecución Código generado Archivos en disco • VS.NET Aspectos avanzados Demo • Segundo programa: “Preguntar usuario” usuario” Escribiendo có código 1. 2 Plataforma .NET • ¿Qué es .NET? Una arquitectura tecnológica para la creación y distribución de software como servicio. Servicio en cualquier plataforma, cliente en cualquier dispositivo, programació programación en cualquier lenguaje, integració integración basada en está estándares. • ¿Qué incluye? .NET Framework, infraestructura para la creación y ejecución de las aplicaciones. Visual Studio .NET, entorno de desarrollo integrado (IDE). Otros servicios. UCLM-ESI. Programación con Visual Basic .NET 1. 3 Plataforma .NET Objetivos fundamentales (i) Nueva manera de desarrollar software 1996 Internet 1st Gen 1997 Internet 2nd Gen 2000 Internet 3rd Gen IE/IIS DNA/COM+ 1992 Cliente/Servidor .NET Win32 UCLM-ESI. Programación con Visual Basic .NET 1. 4 Plataforma .NET Objetivos fundamentales (ii) • Soporte multi-lenguaje La plataforma .NET es independiente del lenguaje Es posible integrar otros lenguajes y crear otros compiladores Todos los lenguajes .NET son considerados por igual Un Runtime único => mejor aprovechamiento de los conocimientos existentes Common Language Specification (CLS) Lenguajes disponibles: disponibles: Por Microsoft: Visual Basic, C++, C#, J# Por terceros: terceros: APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk, Fortran, … UCLM-ESI. Programación con Visual Basic .NET 1. 5 Plataforma .NET Objetivos fundamentales (iii) • Soporte multilenguaje UCLM-ESI. Programación con Visual Basic .NET 1. 6 Plataforma .NET Objetivos fundamentales (iv) • Soporte multi-plataforma Proyecto Rotor Common Language Infraestructure (CLI) Código fuente abierto, no comercial, modificable Compilar/ejecutar en FreeBSD, FreeBSD, Windows, Mac OS X http://msdn.microsoft.com /net/sscli sscli http://msdn.microsoft.com/net/ Proyecto Mono Implementació Implementación open source del .NET Framework Compilador de C#, VB.NET, CLR, librerí librería de clases, etc. Linux, S390, SPARC, HPPA Implementa ADO.NET, ASP.NET, etc. www.gowww.go-mono.com UCLM-ESI. Programación con Visual Basic .NET 1. 7 Plataforma .NET Objetivos fundamentales (v) • Basado en estándares XML (XML (XML Schemas, Schemas, Xpath, Xpath, XSLT) Servicios Web SOAP (Simple Object Access Protocol) Protocol) UDDI (Universal Description, , Description Discovery & Integration) Integration) WSDL (Web Service Description Language) Language) Lenguaje intermedio comú común CIL Lenguaje de programació programación C# UCLM-ESI. Programación con Visual Basic .NET 1. 8 Plataforma .NET Estrategias de Desarrollo (i) • Facilitar la integració integración del software permitiendo Diversas plataformas (Windows, UNIX, Mainframe) Diferentes middleware de componentes (DDE, COM, CORBA) Diferentes sistemas operativos • Homogeneizar lenguajes mediante Sistema de Tipos Comú Común Biblioteca de Clases base comunes • Redefinir soluciones preexistentes como servicios • Simplificar la forma de programar mediante Orientació Orientación a objetos plena: plena: clases, clases, interfaces, constructores, constructores, atributos, atributos, métodos, todos, herencia interinter-lenguajes, lenguajes, … Herramientas y entorno comunes para todos los desarrollos. Interoperabilidad prepre-construida (con COM, DLL’ DLL’s, etc.) Un Framework que libera al programador de muchas tareas: memoria, seguridad, etc. UCLM-ESI. Programación con Visual Basic .NET 1. 9 Plataforma .NET Estrategias de Desarrollo (ii) Paradigma de desarrollo unificado API consistente independiente del lenguaje y el modelo de programació programación .NET Framework RAD, Composició Composición, Delegació Delegación VB Forms OOP, Potencia, Potencia, Expresividad MFC/ATL Web, Está Estándar, ndar, En HTML ASP Windows API UCLM-ESI. Programación con Visual Basic .NET 1. 10 Plataforma .NET Estrategias de Implantación (i) • Instalació Instalación de impacto cero Aplicaciones y componentes compartidos o privados Coexistencia de varias versiones del mismo componente • Ejecució Ejecución “sideside-byby-side” side” • Ensamblados (Assemblies) Colecció Colección de funcionalidad creada, versionada e implantada como una unidad unidad de implementació implementación única (incluyendo uno o varios archivos) Son autodescriptivos En tiempo de ejecució ejecución se resuelven las referencias entre componentes, se garantiza la polí política de enlace de versiones y se valida la integridad de los ensamblados cargados. El Manifiesto (Manifest) contiene los metadatos del ensamblado incluyendo la identidad del ensamblado los archivos que implementan el ensamblado las dependencias en tiempo de compilació compilación con otros ensamblados los tipos y recursos que forman el ensamblado el conjunto de permisos para ejecutarse apropiadamente UCLM-ESI. Programación con Visual Basic .NET 1. 11 Plataforma .NET Estrategias de Implantación (ii) • Ventajas de los Ensamblados: No son necesarios má más archivos para usar el componente No má más archivos de cabeceras, IDL, librerí librerías de tipos, ... Se reduce la dependencia del Registro No má más “infierno de las DLLs” DLLs”: se evitan las faltas de sincronismo entre una librerí librería compartida respecto de la aplicació aplicación que la invoca Sistema de nombres robusto AutoAuto-reparació reparación de aplicaciones UCLM-ESI. Programación con Visual Basic .NET 1. 12 .NET Framework (i) • De cara al programador, es la pieza base de .NET, ya que proporciona las herramientas y servicios para desarrollar el software: Entorno de Ejecución Común (CLR) Biblioteca de clases básicas Motor de generación de interfaces de usuario Web (ASP .NET) Tradicionales Windows (Windows Forms) Forms) Especificación de Lenguaje Común (CLS) UCLM-ESI. Programación con Visual Basic .NET 1. 13 .NET Framework (ii) VB C++ C# J# Cobol… ASP.NET Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Windows UCLM-ESI. Programación con Visual Basic .NET Visual Studio.NET Common Language Specification COM+ Services 1. 14 Entorno de Ejecució Ejecución Comú Común Common Language Runtime (CLR) (i) • Es un motor encargado de la gestión del código de las aplicaciones en cuanto a su Carga Ejecució Ejecución Manipulació Manipulación de memoria Seguridad Etc. En tiempo de ejecució ejecución • Servicios que proporciona: Gestió Gestión de memoria (incluida recolecció recolección de basura), gestió gestión de procesos, threads (hilos), garantizar seguridad, satisfacer dependencias sobre otros componentes. En tiempo de desarrollo Gestió Gestión del tiempo de vida, nominació nominación de tipos robusta, tratamiento de excepciones multilenguaje, multilenguaje, gestió gestión de eventos basada en delegados, enlace diná dinámico, .. UCLM-ESI. Programación con Visual Basic .NET 1. 15 Entorno de Ejecució Ejecución Comú Común Common Language Runtime (CLR) (ii) Sistema de Tipos Común (CTS) Soporte Threads Componentes Control Tipos Gestor Excepciones Motor Seguridad Motor Depuración Lenguaje Intermedio (IL) Gestor de código Recolector de basura Carga de clases y disposición en memoria UCLM-ESI. Programación con Visual Basic .NET 1. 16 CLR Lenguaje intermedio IL VB Código Nativo VC Código generado instalació instalación ... Script IL Common Language Runtime “Econo” Econo”-JIT Compilador Standard JIT Compilador Código Nativo UCLM-ESI. Programación con Visual Basic .NET 1. 17 CLR Compilación y ejecución Compilación Código Fuente Compilador Lenguaje Código nativo Compilador JIT Ejecución UCLM-ESI. Programación con Visual Basic .NET Código IL Ensamblado Metadatos Al instalar o la primera vez que cada método es llamado 1. 18 CLR Sistema de Tipos Común (CTS) (i) • Common Type System Conjunto está estándar de tipos y reglas para crear nuevos tipos Integració Integración multimulti-lenguaje: – – – Heredar implementaciones de clases escritas en otros lenguajes Invocar excepciones de có código entre lenguajes Depurar transparentemente ¡No má más versiones de librerí librerías para cada lenguaje o compilador! ¡No má más librerí librerías de clases limitadas a un lenguaje concreto! Todas las implementaciones de clases, interfaces, estructuras, etc., nativas o creadas por el programador, son tipos .NET. Todos los tipos .NET son objetos. Dim sNombre As String sNombre = "coche" MessageBox.Show(sNombre.Length) ' devuelve 5 UCLM-ESI. Programación con Visual Basic .NET 1. 19 CLR Sistema de Tipos Común (CTS) (ii) • Categorías de tipos UCLM-ESI. Programación con Visual Basic .NET 1. 20 CLR Sistema de Tipos Común (CTS) (iii) UCLM-ESI. Programación con Visual Basic .NET 1. 21 Biblioteca de clases común (i) System.Web Services Description Discovery Protocols Caching Configuration System.WinForms UI HtmlControls VBWebControls C++ C# Design J# ComponentModel Cobol… System.Drawing Common Language Specification Security Drawing2D Printing SessionState Imaging ASP.NET Windows Forms Text System.Data ADO Design Collections Configuration Diagnostics Globalization ADO.NET and XML System.Xml SQL XSLT Serialization Base Class Library SQLTypes XPath Common Language Runtime Windows IO Net Reflection Resources UCLM-ESI. Programación con Visual Basic .NET System COM+ Services Security Runtime InteropServices ServiceProcess Remoting Text Serialization Threading 1. 22 Biblioteca de clases común (ii) • Lo que vé el desarrollador Un API formada por un conjunto de bibliotecas de clases comunes, orientadas a objetos, jerá jerárquicas y extensibles que Las clases está están organizadas de forma ló lógica y jerá jerárquica en “namespaces” namespaces” proveen soporte completo para la programació programación de diversos tipos de aplicaciones permiten herencia entre lenguajes, gestió gestión de errores y depuració depuración System, System, XML, Data (ADO .NET), Drawing, Drawing, WinForms, WinForms, Web (ASP.NET) Facilita reutilizació reutilización Evita colisiones No es necesario aprender mú múltiples modelos de objetos: Visual C: MFC, Visual J++: WFC, Visual Basic: Fw UCLM-ESI. Programación con Visual Basic .NET 1. 23 Especificació Especificación de Lenguaje Comú Común Common Language Specification (CLS) VB C++ C# J# Cobol… Common Language Specification ASP.NET • Conjunto de características • comunes que deben cumplir todos los lenguajes. Su finalidad es • • • Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Windows COM+ Services Independencia del lenguaje Integració Integración entre lenguajes Apertura a nuevos lenguajes UCLM-ESI. Programación con Visual Basic .NET 1. 24 Tipos de Aplicaciones • Aplicaciones normales: De consola Windows Service (no interactiva) Windows Form (interactiva) Windows Control Library (biblioteca de controles) • Aplicaciones para la web: Web Application (aplicación web cliente-servidor) XML Web Service (servicio web) UCLM-ESI. Programación con Visual Basic .NET 1. 25 Tipos de Aplicaciones De Consola • • • • Ejecutables de línea de comandos Escritos con cualquier lenguaje .NET Ejecución desatendida Muy ligeros Hola Mundo ~ 5k UCLM-ESI. Programación con Visual Basic .NET 1. 26 Tipos de Aplicaciones Windows Service • Aplicaciones windows no interactivas. • Escritas con cualquier lenguaje .NET • Incluyen el código para el comienzo, el fin y • mientras se ejecuta. Tipos de comienzo: Manual Automático Deshabilitado UCLM-ESI. Programación con Visual Basic .NET 1. 27 Tipos de Aplicaciones Windows Form • Aplicaciones Windows interactivas • Basadas en formularios p.e., interfaz a bases de datos Con conectores y divisores entre “frames” frames” • SDI/MDI (multidocumento) • Estilo Explorer • Instalación XCopy NoNo-tocar (!todav (!todavíía más fácil que con XCopy!) XCopy!) Ejecutar desde una URL • Impresión Configuració Configuración de páginas Previsualizació Previsualización UCLM-ESI. Programación con Visual Basic .NET 1. 28 Tipos de Aplicaciones Windows Control Library • Usables en cualquier formulario con cualquier • lenguaje. Derivados desde cualquier otro control Extender controles .NET pre-construidos. Construir nuevos controles. • Ejemplo: Acceso a datos particularizado y ampliado. UCLM-ESI. Programación con Visual Basic .NET 1. 29 Tipos de Aplicaciones Web Application • Mucho menos código Con Web Forms que con ASP clá clásico • Estilo de programación a lo VB • Controles para validar entradas • Controles complejos mejorados DataGrid DataList Calendar Cookies no requeridos • Sesiones seguras • • • Traza y depuración mejoradas Caching más potente Más eventos detectables UCLM-ESI. Programación con Visual Basic .NET 1. 30 Tipos de Aplicaciones XML Web Service • Evolución de aplicaciones y sitios web Interacciones seguras • Nueva metodología de integración Entre cualquier sistema operativo y/o lenguaje Olvidando procolos propietarios (Java RMI, CORBA IIOP, DCOM) • Componentes de aplicación programables Accesibles via protocolos Internet está estándares HTTP, XML, SOAP, WSDL, UDDI • Soporte provisto por el Framework Generació Generación automá automática de XML, SOAP, WSDL Conversió Conversión automá automática de un componente en Web Service (WebMethod) WebMethod) UCLM-ESI. Programación con Visual Basic .NET 1. 31 VS.NET Introducción al Visual Studio .NET • Entorno Integrado de Desarrollo (IDE) para .NET • Multi-lenguaje integrado Lo mismo se hace siempre igual, independientemente del lenguaje. • Permite elegir los tipos de aplicación • Abierto se pueden añ añadir nuevos lenguajes o nuevas herramientas. • Integración con arquitectura COM UCLM-ESI. Programación con Visual Basic .NET 1. 32 Introducción al VS.NET Demo de uso (i) • Página de inicio Editar “Mi perfil” perfil” Ver “recursos en lílínea” nea” Proyectos (nuevo / abrir) Aplicació Aplicación windows, windows, biblioteca de clases, servicio web, ... • Crear nuevo proyecto • Elementos principales del entorno Menú Menú Barra de herramientas Ventana principal de trabajo Fichas Ventanas desplegables (pestañ (pestañas) Ventanas combinadas UCLM-ESI. Programación con Visual Basic .NET 1. 33 Introducción al VS.NET Demo de uso (ii) • Agregar nuevos elementos a un proyecto Windows Form, Form, Clase, Mó Módulo, Clase de componentes, Control de usuario, Dataset, Dataset, Archivo XML, ... hasta 33 diferentes • Configuración del entorno • Estados de las ventanas Acoplable / Ocultar / Flotante / Ocultar automá automáticamente • Explorador de soluciones Solució Solución: colecció colección de proyectos abiertos en una misma sesió sesión de trabajo. Para cada proyecto muestra sus elementos: Formularios, módulos, clases, recursos, referencias, etc. References => referencias a los espacios de nombres usados AssemblyInfo.vb => informació información del Ensamblado UCLM-ESI. Programación con Visual Basic .NET 1. 34 Introducción al VS.NET Demo de uso (iii) • • • • • Propiedades de un proyecto Propiedades de la solución Agregar un control a un formulario Menú contextual Ventana de propiedades Formulario / control UCLM-ESI. Programación con Visual Basic .NET 1. 35 Primer programa “Hola Mundo” Creación y ejecución 1. Crear un nuevo proyecto de Visual Basic, tipo 2. 3. “Aplicación para Windows” Añadir un formulario (clase de objeto visual) Editar sus propiedades text <- Programa de prueba 1” 1” 4. Añadir un control de tipo “label” (clase de objeto visual incrustado dentro de un formulario) 5. Editar sus propiedades text <- “Hola Mundo” Mundo” font <- MS Sans Serif, Serif, 20 pt 6. Ejecutar la aplicación UCLM-ESI. Programación con Visual Basic .NET 1. 36 Primer programa “Hola Mundo” Código generado 1. Ver có código Expandir/contraer regiones 2. Clase del formulario Un formulario es un objeto => una clase 3. El mé método constructor New() New() Se hereda de la clase base (padre) 4. El mé método InitializeComponent() InitializeComponent() Crea un nuevo objeto Label Asigna valores a las propiedades del Label Asigna valores a las propiedades del Form Añade el objeto Label al Form 5. El mé método Dispose() Dispose() Libera recursos de memoria UCLM-ESI. Programación con Visual Basic .NET 1. 37 Primer programa “Hola Mundo” Archivos en disco 1. Ver lo que se ha creado en el disco. Directorios de la figura 2. Tipos de Archivos: VB: có código fuente en Visual Basic (clases, mó módulos, etc.) VBPROJ: informació información sobre los elementos del proyecto SLN: solució solución VBPROJ.USER: opciones de usuario del proyecto RESX: plantilla de recursos en XML EXE: aplicació aplicación ejecutable Guardado en el directorio bin Es lo único necesario para instalar en otro equipo que tiene .NET Framework PDB: informació información para depuració depuración UCLM-ESI. Programación con Visual Basic .NET 1. 38 VS.NET Aspectos avanzados – demo (i) • Cuadro de herramientas Agregar/eliminar controles Contenedor de có código fuente (anillo del portapapeles) • Barras de herramientas Menú Menú contextual Personalizar • Barras personalizadas Crear nueva Añadir/quitar comandos • Editor de código Fuentes y colores Otras opciones UCLM-ESI. Programación con Visual Basic .NET 1. 39 VS.NET Aspectos avanzados – demo (ii) • Dividir ventana edición • Menú Edición Buscar/Reemplazar Ajuste de lílínea Marcadores Mostrar espacios en blanco Regiones y esquematizació esquematización Comentarios en bloques de lílíneas Intellisense (ayuda “inteligente” inteligente” al escribir có código) • Ir a definición de procedimiento • Mostrar pantalla completa UCLM-ESI. Programación con Visual Basic .NET 1. 40 VS.NET Aspectos avanzados – demo (iii) • Ventana vista de clases • Ventana explorador de objetos Buscar sí símbolo • Tareas {Agenda para registrar trabajos pendientes} Crear/Eliminar tareas Comentarios / Marcadores Ventana Lista de Tareas • Macros Explorador Ejecució Ejecución Grabació Grabación (estilo Office) IDE de macros UCLM-ESI. Programación con Visual Basic .NET 1. 41 VS.NET Aspectos avanzados – demo (iv) • Sistema de Ayuda MSDN (Microsoft Development Network Library) Library) Son CD’ CD’s separados de los de Visual Studio .NET Formato HTML Ayuda diná dinámica Contenido Índice Buscar Ayuda externa al IDE Mantener temas visibles Documentació Documentación completa .NET Framework SDK / MSDN for Visual Studio 2003 UCLM-ESI. Programación con Visual Basic .NET 1. 42 Segundo programa “Preguntar usuario” Escribiendo código (i) 1. Crear nuevo proyecto EscribirCodigo de tipo “Aplicació Aplicación para 2. Windows” Windows” Añadir mó módulo MiCodigo [contenedor de có código] Module MiCodigo .... End Module 3. Añadir comentario ‘Aplicació Aplicación EscribirCodigo 4. Añadir procedimiento Main dentro de MiCodigo Sub Main() Main() ‘punto de entrada a la aplicació aplicación .... End Module 5. Mostrar mensaje de inicio usando la clase del sistema MessageBox MessageBox.Show( MessageBox.Show(“Empieza el programa” programa”) UCLM-ESI. Programación con Visual Basic .NET 1. 43 Segundo programa “Preguntar usuario” Escribiendo código (ii) 6. Configurar propiedades del proyecto Nombre ensamblado: Espacio de nombres: Objeto inicial: EscribirCodigo EscribirCodigo Sub Main 7. Declarar la variable Nombre de tipo string Dim Nombre As String 8. Usar funció función InputBox() InputBox() para preguntar nombre del usuario y almacenarlo en la variable Nombre Nombre=InputBox (“Nombre del usuario:” Nombre=InputBox( usuario:”) 9. Utilizar el operador de concatenar textos (&) para mostrar mensaje de control MessageBox.Show( MessageBox.Show(“El usuario es “ & Nombre, “Programa de prueba” prueba”) 10. Ejecutar el programa y grabarlo en disco 11. Probar depuració depuración errores (poner la declaració declaración Dim como comentario) UCLM-ESI. Programación con Visual Basic .NET 1. 44 Ir pensando en la Práctica 1 Resolver ecuación 2do grado (i) • Mostrar un formulario para preguntar los tres coeficientes de una una ecuació ecuación de segundo grado: A*x^2 + B*x + C = 0 Preguntar cada coeficiente en un control de tipo TextBox • Añadir un botó botón “Calcular” Calcular” para obtener las soluciones invocando al procedimiento de igual nombre. Indicar si las soluciones son reales o imaginarias con un control control CheckBox. CheckBox. Mostrar las 2 soluciones en un control etiqueta “Solució Solución” con texto azul si son reales y rojo si son imaginarias. Ejemplo formato 2 soluciones reales: “2’45 y 78’ 78’23” 23” Ejemplo formato 1 solució solución real: “-9’06” 06” Ejemplo formato 2 soluciones imaginarias: “1’48+2’ 48+2’1i y 0’ 0’6363-1’86i” 86i” • Añadir un botó botón “Salir” Salir” para acabar. UCLM-ESI. Programación con Visual Basic .NET 1. 45