Programacin con
Visual Basic .NET
1 Plataforma .NET
Francisco Ruiz
Manuel ngel Serrano
Escuela Superior de Inform
Informtica
Universidad de CastillaCastilla-La Mancha
Programaci
Programacin con Visual Basic .NET
Contenidos sesin 1
Plataforma .NET
Objetivos
Estrategias de desarrollo e
implantaci
implantacin
.NET Framework
Entorno de Ejecuci
Ejecucin com
comn
Biblioteca de clases com
comn
Tipos de aplicaciones
Introducci
Introduccin al Visual Studio
.NET (VS.NET)
Demo de uso
UCLM-ESI. Programacin con Visual Basic .NET
Primer programa: "Hola
Mundo
Mundo
Creaci
Creacin y ejecuci
ejecucin
Cdigo generado
Archivos en disco
VS.NET Aspectos avanzados
Demo
Segundo programa:
Preguntar usuario
usuario
Escribiendo c
cdigo
1. 2
Plataforma .NET
Qu es .NET?
Una arquitectura tecnolgica para la creacin y
distribucin de software como servicio.
Servicio en cualquier plataforma, cliente en cualquier
dispositivo, programaci
programacin en cualquier lenguaje, integraci
integracin
basada en est
estndares.
Qu incluye?
.NET Framework, infraestructura para la creacin y
ejecucin de las aplicaciones.
Visual Studio .NET, entorno de desarrollo integrado
(IDE).
Otros servicios.
UCLM-ESI. Programacin 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. Programacin 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. Programacin con Visual Basic .NET
1. 5
Plataforma .NET
Objetivos fundamentales (iii)
Soporte
multilenguaje
UCLM-ESI. Programacin con Visual Basic .NET
1. 6
Plataforma .NET
Objetivos fundamentales (iv)
Soporte multi-plataforma
Proyecto Rotor
Common Language Infraestructure (CLI)
Cdigo 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
Implementacin open source del .NET Framework
Compilador de C#, VB.NET, CLR, librer
librera de clases, etc.
Linux, S390, SPARC, HPPA
Implementa ADO.NET, ASP.NET, etc.
www.gowww.go-mono.com
UCLM-ESI. Programacin con Visual Basic .NET
1. 7
Plataforma .NET
Objetivos fundamentales (v)
Basado en estndares
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
comn CIL
Lenguaje de programaci
programacin C#
UCLM-ESI. Programacin con Visual Basic .NET
1. 8
Plataforma .NET
Estrategias de Desarrollo (i)
Facilitar la integraci
integracin 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
Comn
Biblioteca de Clases base comunes
Redefinir soluciones preexistentes como servicios
Simplificar la forma de programar mediante
Orientaci
Orientacin a objetos plena:
plena: clases,
clases, interfaces, constructores,
constructores, atributos,
atributos,
mtodos,
todos, herencia interinter-lenguajes,
lenguajes,
Herramientas y entorno comunes para todos los desarrollos.
Interoperabilidad prepre-construida (con COM, DLL
DLLs, etc.)
Un Framework que libera al programador de muchas tareas: memoria,
seguridad, etc.
UCLM-ESI. Programacin 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
programacin
.NET Framework
RAD,
Composici
Composicin,
Delegaci
Delegacin
VB Forms
OOP,
Potencia,
Potencia,
Expresividad
MFC/ATL
Web,
Est
Estndar,
ndar,
En HTML
ASP
Windows API
UCLM-ESI. Programacin con Visual Basic .NET
1. 10
Plataforma .NET
Estrategias de Implantacin (i)
Instalaci
Instalacin de impacto cero
Aplicaciones y componentes compartidos o privados
Coexistencia de varias versiones del mismo componente
Ejecuci
Ejecucin sideside-byby-side
side
Ensamblados (Assemblies)
Colecci
Coleccin de funcionalidad creada, versionada e implantada como una unidad
unidad de
implementaci
implementacin nica (incluyendo uno o varios archivos)
Son autodescriptivos
En tiempo de ejecuci
ejecucin se resuelven las referencias entre componentes, se
garantiza la pol
poltica 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
compilacin con otros ensamblados
los tipos y recursos que forman el ensamblado
el conjunto de permisos para ejecutarse apropiadamente
UCLM-ESI. Programacin con Visual Basic .NET
1. 11
Plataforma .NET
Estrategias de Implantacin (ii)
Ventajas de los Ensamblados:
No son necesarios m
ms archivos para usar el componente
No m
ms archivos de cabeceras, IDL, librer
libreras de tipos, ...
Se reduce la dependencia del Registro
No m
ms infierno de las DLLs
DLLs: se evitan las faltas de
sincronismo entre una librer
librera compartida respecto de la
aplicaci
aplicacin que la invoca
Sistema de nombres robusto
AutoAuto-reparaci
reparacin de aplicaciones
UCLM-ESI. Programacin 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 Ejecucin Comn (CLR)
Biblioteca de clases bsicas
Motor de generacin de interfaces de usuario
Web (ASP .NET)
Tradicionales Windows (Windows Forms)
Forms)
Especificacin de Lenguaje Comn (CLS)
UCLM-ESI. Programacin 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. Programacin con Visual Basic .NET
Visual Studio.NET
Common Language Specification
COM+ Services
1. 14
Entorno de Ejecuci
Ejecucin Com
Comn
Common Language Runtime (CLR) (i)
Es un motor encargado de la gestin del cdigo de las
aplicaciones en cuanto a su
Carga
Ejecuci
Ejecucin
Manipulaci
Manipulacin de memoria
Seguridad
Etc.
En tiempo de ejecuci
ejecucin
Servicios que proporciona:
Gesti
Gestin de memoria (incluida recolecci
recoleccin de basura), gesti
gestin de
procesos, threads (hilos), garantizar seguridad, satisfacer
dependencias sobre otros componentes.
En tiempo de desarrollo
Gesti
Gestin del tiempo de vida, nominaci
nominacin de tipos robusta,
tratamiento de excepciones multilenguaje,
multilenguaje, gesti
gestin de eventos
basada en delegados, enlace din
dinmico, ..
UCLM-ESI. Programacin con Visual Basic .NET
1. 15
Entorno de Ejecuci
Ejecucin Com
Comn
Common Language Runtime (CLR) (ii)
Sistema de Tipos Comn (CTS)
Soporte Threads
Componentes
Control Tipos
Gestor Excepciones
Motor Seguridad
Motor Depuracin
Lenguaje
Intermedio (IL)
Gestor
de cdigo
Recolector
de basura
Carga de clases y disposicin en memoria
UCLM-ESI. Programacin con Visual Basic .NET
1. 16
CLR
Lenguaje intermedio IL
VB
Cdigo
Nativo
VC
Cdigo
generado
instalaci
instalacin
...
Script
IL
Common Language Runtime
Econo
Econo-JIT
Compilador
Standard JIT
Compilador
Cdigo Nativo
UCLM-ESI. Programacin con Visual Basic .NET
1. 17
CLR
Compilacin y ejecucin
Compilacin
Cdigo
Fuente
Compilador
Lenguaje
Cdigo
nativo
Compilador
JIT
Ejecucin
UCLM-ESI. Programacin con Visual Basic .NET
Cdigo IL
Ensamblado
Metadatos
Al instalar o la
primera vez que cada
mtodo es llamado
1. 18
CLR
Sistema de Tipos Comn (CTS) (i)
Common Type System
Conjunto est
estndar de tipos y reglas para crear nuevos tipos
Integraci
Integracin multimulti-lenguaje:
Heredar implementaciones de clases escritas en otros lenguajes
Invocar excepciones de c
cdigo entre lenguajes
Depurar transparentemente
No m
ms versiones de librer
libreras para cada lenguaje o compilador!
No m
ms librer
libreras 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. Programacin con Visual Basic .NET
1. 19
CLR
Sistema de Tipos Comn (CTS) (ii)
Categoras de tipos
UCLM-ESI. Programacin con Visual Basic .NET
1. 20
CLR
Sistema de Tipos Comn (CTS) (iii)
UCLM-ESI. Programacin con Visual Basic .NET
1. 21
Biblioteca de clases comn (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. Programacin con Visual Basic .NET
System
COM+ Services
Security
Runtime
InteropServices
ServiceProcess
Remoting
Text
Serialization
Threading
1. 22
Biblioteca de clases comn (ii)
Lo que v el desarrollador
Un API formada por un conjunto de bibliotecas de clases
comunes, orientadas a objetos, jer
jerrquicas y extensibles que
Las clases est
estn organizadas de forma l
lgica y jer
jerrquica en
namespaces
namespaces
proveen soporte completo para la programaci
programacin de diversos tipos
de aplicaciones
permiten herencia entre lenguajes, gesti
gestin de errores y
depuraci
depuracin
System,
System, XML, Data (ADO .NET), Drawing,
Drawing, WinForms,
WinForms, Web
(ASP.NET)
Facilita reutilizaci
reutilizacin
Evita colisiones
No es necesario aprender m
mltiples modelos de objetos:
Visual C: MFC, Visual J++: WFC, Visual Basic: Fw
UCLM-ESI. Programacin con Visual Basic .NET
1. 23
Especificaci
Especificacin de Lenguaje Com
Comn
Common Language Specification (CLS)
VB
C++
C#
J#
Cobol
Common Language Specification
ASP.NET
Conjunto de caractersticas
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
Integracin entre lenguajes
Apertura a nuevos lenguajes
UCLM-ESI. Programacin 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 (aplicacin web cliente-servidor)
XML Web Service (servicio web)
UCLM-ESI. Programacin con Visual Basic .NET
1. 25
Tipos de Aplicaciones
De Consola
Ejecutables de lnea de comandos
Escritos con cualquier lenguaje .NET
Ejecucin desatendida
Muy ligeros
Hola Mundo ~ 5k
UCLM-ESI. Programacin con Visual Basic .NET
1. 26
Tipos de Aplicaciones
Windows Service
Aplicaciones windows no interactivas.
Escritas con cualquier lenguaje .NET
Incluyen el cdigo para el comienzo, el fin y
mientras se ejecuta.
Tipos de comienzo:
Manual
Automtico
Deshabilitado
UCLM-ESI. Programacin 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
Instalacin
XCopy
NoNo-tocar (!todav
(!todava ms fcil que con XCopy!)
XCopy!)
Ejecutar desde una URL
Impresin
Configuraci
Configuracin de pginas
Previsualizaci
Previsualizacin
UCLM-ESI. Programacin 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. Programacin con Visual Basic .NET
1. 29
Tipos de Aplicaciones
Web Application
Mucho menos cdigo
Con Web Forms que con ASP cl
clsico
Estilo de programacin a lo VB
Controles para validar entradas
Controles complejos mejorados
DataGrid
DataList
Calendar
Cookies no requeridos
Sesiones seguras
Traza y depuracin mejoradas
Caching ms potente
Ms eventos detectables
UCLM-ESI. Programacin con Visual Basic .NET
1. 30
Tipos de Aplicaciones
XML Web Service
Evolucin de aplicaciones y sitios web
Interacciones seguras
Nueva metodologa de integracin
Entre cualquier sistema operativo y/o lenguaje
Olvidando procolos propietarios (Java RMI, CORBA IIOP,
DCOM)
Componentes de aplicacin programables
Accesibles via protocolos Internet est
estndares
HTTP, XML, SOAP, WSDL, UDDI
Soporte provisto por el Framework
Generaci
Generacin autom
automtica de XML, SOAP, WSDL
Conversi
Conversin autom
automtica de un componente en Web Service
(WebMethod)
WebMethod)
UCLM-ESI. Programacin con Visual Basic .NET
1. 31
VS.NET
Introduccin 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 aplicacin
Abierto
se pueden a
aadir nuevos lenguajes o nuevas herramientas.
Integracin con arquitectura COM
UCLM-ESI. Programacin con Visual Basic .NET
1. 32
Introduccin al VS.NET
Demo de uso (i)
Pgina de inicio
Editar Mi perfil
perfil
Ver recursos en llnea
nea
Proyectos (nuevo / abrir)
Aplicaci
Aplicacin 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
(pestaas)
Ventanas combinadas
UCLM-ESI. Programacin con Visual Basic .NET
1. 33
Introduccin al VS.NET
Demo de uso (ii)
Agregar nuevos elementos a un proyecto
Windows Form,
Form, Clase, M
Mdulo, Clase de componentes, Control
de usuario, Dataset,
Dataset, Archivo XML, ... hasta 33 diferentes
Configuracin del entorno
Estados de las ventanas
Acoplable / Ocultar / Flotante / Ocultar autom
automticamente
Explorador de soluciones
Soluci
Solucin: colecci
coleccin de proyectos abiertos en una misma sesi
sesin
de trabajo.
Para cada proyecto muestra sus elementos: Formularios,
mdulos, clases, recursos, referencias, etc.
References => referencias a los espacios de nombres usados
AssemblyInfo.vb => informaci
informacin del Ensamblado
UCLM-ESI. Programacin con Visual Basic .NET
1. 34
Introduccin al VS.NET
Demo de uso (iii)
Propiedades de un proyecto
Propiedades de la solucin
Agregar un control a un formulario
Men contextual
Ventana de propiedades
Formulario / control
UCLM-ESI. Programacin con Visual Basic .NET
1. 35
Primer programa Hola Mundo
Creacin y ejecucin
1. Crear un nuevo proyecto de Visual Basic, tipo
2.
3.
Aplicacin para Windows
Aadir un formulario (clase de objeto visual)
Editar sus propiedades
text <- Programa de prueba 1
1
4. Aadir 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 aplicacin
UCLM-ESI. Programacin con Visual Basic .NET
1. 36
Primer programa Hola Mundo
Cdigo generado
1. Ver c
cdigo
Expandir/contraer regiones
2. Clase del formulario
Un formulario es un objeto => una clase
3. El m
mtodo constructor New()
New()
Se hereda de la clase base (padre)
4. El m
mtodo InitializeComponent()
InitializeComponent()
Crea un nuevo objeto Label
Asigna valores a las propiedades del Label
Asigna valores a las propiedades del Form
Aade el objeto Label al Form
5. El m
mtodo Dispose()
Dispose()
Libera recursos de memoria
UCLM-ESI. Programacin 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
cdigo fuente en Visual Basic (clases, m
mdulos, etc.)
VBPROJ: informaci
informacin sobre los elementos del proyecto
SLN: soluci
solucin
VBPROJ.USER: opciones de usuario del proyecto
RESX: plantilla de recursos en XML
EXE: aplicaci
aplicacin ejecutable
Guardado en el directorio bin
Es lo nico necesario para instalar en otro equipo que tiene .NET
Framework
PDB: informaci
informacin para depuraci
depuracin
UCLM-ESI. Programacin con Visual Basic .NET
1. 38
VS.NET
Aspectos avanzados demo (i)
Cuadro de herramientas
Agregar/eliminar controles
Contenedor de c
cdigo fuente (anillo del portapapeles)
Barras de herramientas
Men
Men contextual
Personalizar
Barras personalizadas
Crear nueva
Aadir/quitar comandos
Editor de cdigo
Fuentes y colores
Otras opciones
UCLM-ESI. Programacin con Visual Basic .NET
1. 39
VS.NET
Aspectos avanzados demo (ii)
Dividir ventana edicin
Men Edicin
Buscar/Reemplazar
Ajuste de llnea
Marcadores
Mostrar espacios en blanco
Regiones y esquematizaci
esquematizacin
Comentarios en bloques de llneas
Intellisense (ayuda inteligente
inteligente al escribir c
cdigo)
Ir a definicin de procedimiento
Mostrar pantalla completa
UCLM-ESI. Programacin con Visual Basic .NET
1. 40
VS.NET
Aspectos avanzados demo (iii)
Ventana vista de clases
Ventana explorador de objetos
Buscar s
smbolo
Tareas
{Agenda para registrar trabajos pendientes}
Crear/Eliminar tareas
Comentarios / Marcadores
Ventana Lista de Tareas
Macros
Explorador
Ejecuci
Ejecucin
Grabaci
Grabacin (estilo Office)
IDE de macros
UCLM-ESI. Programacin con Visual Basic .NET
1. 41
VS.NET
Aspectos avanzados demo (iv)
Sistema de Ayuda
MSDN (Microsoft Development Network Library)
Library)
Son CD
CDs separados de los de Visual Studio .NET
Formato HTML
Ayuda din
dinmica
Contenido
ndice
Buscar
Ayuda externa al IDE
Mantener temas visibles
Documentaci
Documentacin completa
.NET Framework SDK / MSDN for Visual Studio 2003
UCLM-ESI. Programacin con Visual Basic .NET
1. 42
Segundo programa Preguntar usuario
Escribiendo cdigo (i)
1. Crear nuevo proyecto EscribirCodigo de tipo Aplicaci
Aplicacin para
2.
Windows
Windows
Aadir m
mdulo MiCodigo [contenedor de c
cdigo]
Module MiCodigo
....
End Module
3. Aadir comentario
Aplicaci
Aplicacin EscribirCodigo
4. Aadir procedimiento Main dentro de MiCodigo
Sub Main()
Main() punto de entrada a la aplicaci
aplicacin
....
End Module
5. Mostrar mensaje de inicio usando la clase del sistema MessageBox
MessageBox.Show(
MessageBox.Show(Empieza el programa
programa)
UCLM-ESI. Programacin con Visual Basic .NET
1. 43
Segundo programa Preguntar usuario
Escribiendo cdigo (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
funcin 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
depuracin errores (poner la declaraci
declaracin Dim como comentario)
UCLM-ESI. Programacin con Visual Basic .NET
1. 44
Ir pensando en la Prctica 1
Resolver ecuacin 2do grado (i)
Mostrar un formulario para preguntar los tres coeficientes de una
una
ecuaci
ecuacin de segundo grado:
A*x^2 + B*x + C = 0
Preguntar cada coeficiente en un control de tipo TextBox
Aadir un bot
botn 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
Solucin con texto
azul si son reales y rojo si son imaginarias.
Ejemplo formato 2 soluciones reales: 245 y 78
7823
23
Ejemplo formato 1 soluci
solucin real: -906
06
Ejemplo formato 2 soluciones imaginarias: 148+2
48+21i y 0
06363-186i
86i
Aadir un bot
botn Salir
Salir para acabar.
UCLM-ESI. Programacin con Visual Basic .NET
1. 45