Escolar Documentos
Profissional Documentos
Cultura Documentos
Programaci
n con
n con
Visual Basic .NET
Visual Basic .NET
Francisco Ruiz Francisco Ruiz
Manuel Manuel ngel Serrano ngel Serrano
Escuela Superior de Inform Escuela Superior de Inform tica tica
Universidad de Castilla Universidad de Castilla- -La Mancha La Mancha
1 1 Plataforma .NET Plataforma .NET
UCLM-ESI. Programacin con Visual Basic .NET 1. 2
Programaci Programaci n con n con Visual Basic .NET Visual Basic .NET
Contenidos sesi
Contenidos sesi
n 1
n 1
Plataforma .NET Plataforma .NET
Objetivos Objetivos
Estrategias de desarrollo e Estrategias de desarrollo e
implantaci implantaci n n
.NET .NET Framework Framework
Entorno de Ejecuci Entorno de Ejecuci n com n com n n
Biblioteca de clases com Biblioteca de clases com n n
Tipos de aplicaciones Tipos de aplicaciones
Introducci Introducci n al Visual Studio n al Visual Studio
.NET (VS.NET) .NET (VS.NET)
Demo de uso Demo de uso
Primer programa: "Hola Primer programa: "Hola
Mundo Mundo
Creaci Creaci n y ejecuci n y ejecuci n n
C C digo generado digo generado
Archivos en disco Archivos en disco
VS.NET Aspectos avanzados VS.NET Aspectos avanzados
Demo Demo
Segundo programa: Segundo programa:
Preguntar usuario Preguntar usuario
Escribiendo c Escribiendo c digo digo
UCLM-ESI. Programacin con Visual Basic .NET 1. 3
Plataforma .NET
Plataforma .NET
Qu Qu es .NET? es .NET?
Una Una arquitectura tecnol arquitectura tecnol gica gica para la creaci para la creaci n y n y
distribuci distribuci n de software como n de software como servicio servicio. .
Servicio en cualquier plataforma, cliente en cualquier Servicio en cualquier plataforma, cliente en cualquier
dispositivo, programaci dispositivo, programaci n en cualquier lenguaje, integraci n en cualquier lenguaje, integraci n n
basada en est basada en est ndares. ndares.
Qu Qu incluye? incluye?
.NET .NET Framework Framework, infraestructura para la creaci , infraestructura para la creaci n y n y
ejecuci ejecuci n de las aplicaciones. n de las aplicaciones.
Visual Studio .NET Visual Studio .NET, entorno de desarrollo integrado , entorno de desarrollo integrado
(IDE). (IDE).
Otros servicios. Otros servicios.
UCLM-ESI. Programacin con Visual Basic .NET 1. 4
Plataforma .NET Plataforma .NET
Objetivos
Objetivos
fundamentales
fundamentales (i) (i)
2000 2000
Internet Internet
3 3
rd rd
Gen Gen
.NET
.NET
1996 1996
Internet Internet
1 1
st st
Gen Gen
IE/IIS
IE/IIS
1997 1997
Internet Internet
2 2
nd nd
Gen Gen
DNA/COM+
DNA/COM+
1992 1992
Cliente/Servidor Cliente/Servidor
Win32
Win32
Nueva Nueva manera manera de de desarrollar desarrollar software software
UCLM-ESI. Programacin con Visual Basic .NET 1. 5
Plataforma .NET Plataforma .NET
Objetivos
Objetivos
fundamentales
fundamentales (ii) (ii)
Soporte
Soporte
multi
multi
-
-
lenguaje
lenguaje
La La plataforma plataforma .NET .NET es es independiente independiente del del lenguaje lenguaje
Todos Todos los los lenguajes lenguajes .NET son .NET son considerados considerados por por igual igual
Un Un Runtime Runtime nico nico
=> => mejor mejor aprovechamiento aprovechamiento de de los los conocimientos conocimientos existentes existentes
Es posible integrar otros lenguajes y crear otros compiladores Es posible integrar otros lenguajes y crear otros compiladores
Common Common Language Language Specification Specification (CLS) (CLS)
Lenguajes Lenguajes disponibles disponibles: :
Por Por Microsoft: Visual Basic, C++, C#, J# Microsoft: Visual Basic, C++, C#, J#
Por Por terceros terceros: APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, : APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon,
Perl, Python, Scheme, Smalltalk, Fortran, Perl, Python, Scheme, Smalltalk, Fortran,
UCLM-ESI. Programacin con Visual Basic .NET 1. 6
Plataforma .NET Plataforma .NET
Objetivos
Objetivos
fundamentales
fundamentales (iii) (iii)
Soporte Soporte
multi multi- -
lenguaje lenguaje
UCLM-ESI. Programacin con Visual Basic .NET 1. 7
Plataforma .NET Plataforma .NET
Objetivos
Objetivos
fundamentales
fundamentales (iv) (iv)
Soporte
Soporte
multi
multi
-
-
plataforma
plataforma
Proyecto Proyecto Rotor Rotor
Common Common Language Language Infraestructure Infraestructure (CLI) (CLI)
C C digo fuente abierto, no comercial, modificable digo fuente abierto, no comercial, modificable
Compilar/ejecutar en Compilar/ejecutar en FreeBSD FreeBSD, Windows, , Windows, Mac Mac OS X OS X
http:// http://msdn.microsoft.com msdn.microsoft.com/net/ /net/sscli sscli
Proyecto Proyecto Mono Mono
Implementaci Implementaci n n open open source source del .NET del .NET Framework Framework
Compilador de C#, VB.NET, CLR, librer Compilador de C#, VB.NET, CLR, librer a de clases, etc. a de clases, etc.
Linux, S390, SPARC, HPPA Linux, S390, SPARC, HPPA
Implementa ADO.NET, ASP.NET, etc. Implementa ADO.NET, ASP.NET, etc.
www.go www.go- -mono.com mono.com
UCLM-ESI. Programacin con Visual Basic .NET 1. 8
Plataforma .NET Plataforma .NET
Objetivos
Objetivos
fundamentales
fundamentales (v) (v)
Basado
Basado
en
en
est
est
ndares
ndares
XML ( XML (XML XML Schemas Schemas, , Xpath Xpath, XSLT) , XSLT)
Servicios Web Servicios Web
SOAP (Simple SOAP (Simple Object Object Access Access Protocol Protocol) )
UDDI (Universal UDDI (Universal Description Description, , Discovery Discovery & & Integration Integration) )
WSDL (Web WSDL (Web Service Service Description Description Language Language) )
Lenguaje intermedio com Lenguaje intermedio com n CIL n CIL
Lenguaje de programaci Lenguaje de programaci n n C# C#
UCLM-ESI. Programacin con Visual Basic .NET 1. 9
Plataforma .NET Plataforma .NET
Estrategias
Estrategias
de
de
Desarrollo
Desarrollo (i) (i)
Facilitar la Facilitar la integraci integraci n del software n del software permitiendo permitiendo
Diversas plataformas Diversas plataformas (Windows, UNIX, Mainframe) (Windows, UNIX, Mainframe)
Diferentes Diferentes middleware de middleware de componentes componentes (DDE, COM, CORBA) (DDE, COM, CORBA)
Diferentes Diferentes sistemas sistemas operativos operativos
Homogeneizar lenguajes Homogeneizar lenguajes mediante mediante
Sistema de Tipos Com Sistema de Tipos Com n n
Biblioteca de Clases base comunes Biblioteca de Clases base comunes
Redefinir Redefinir soluciones preexistentes como soluciones preexistentes como servicios servicios
Simplificar la forma de programar Simplificar la forma de programar mediante mediante
Orientaci Orientaci n n a a objetos objetos plena plena: : clases clases, interfaces, , interfaces, constructores constructores, , atributos atributos, ,
m m todos todos, , herencia herencia inter inter- -lenguajes lenguajes, ,
Herramientas y entorno comunes para todos los desarrollos. Herramientas y entorno comunes para todos los desarrollos.
Interoperabilidad Interoperabilidad pre pre- -construida (con COM, construida (con COM, DLL DLL s s, etc.) , etc.)
Un Un Framework Framework que libera al programador de muchas tareas: memoria, que libera al programador de muchas tareas: memoria,
seguridad, etc. seguridad, etc.
UCLM-ESI. Programacin con Visual Basic .NET 1. 10
Plataforma .NET Plataforma .NET
Estrategias
Estrategias
de
de
Desarrollo
Desarrollo (ii) (ii)
Paradigma de desarrollo unificado Paradigma de desarrollo unificado
Windows API Windows API
.NET Framework .NET Framework
API API consistente consistente independiente independiente del del
lenguaje lenguaje y el y el modelo modelo de de programaci programaci n n
ASP ASP
Web, Web,
Est Est ndar ndar, ,
En HTML En HTML
MFC/ATL MFC/ATL
OOP, OOP,
Potencia Potencia, ,
Expresividad Expresividad
VB Forms VB Forms
RAD, RAD,
Composici Composici n n, ,
Delegaci Delegaci n n
UCLM-ESI. Programacin con Visual Basic .NET 1. 11
Plataforma .NET Plataforma .NET
Estrategias
Estrategias
de
de
Implantaci
Implantaci
n
n (i) (i)
Instalaci Instalaci n de impacto cero n de impacto cero
Aplicaciones y componentes compartidos o privados Aplicaciones y componentes compartidos o privados
Ejecuci Ejecuci n n side side- -by by- -side side
Coexistencia de varias versiones del mismo componente Coexistencia de varias versiones del mismo componente
Ensamblados Ensamblados ( (Assemblies Assemblies) )
Colecci Colecci n de funcionalidad creada, versionada e implantada como una unid n de funcionalidad creada, versionada e implantada como una unidad de ad de
implementaci implementaci n n nica (incluyendo uno o varios archivos) nica (incluyendo uno o varios archivos)
Son Son autodescriptivos autodescriptivos
En tiempo de ejecuci En tiempo de ejecuci n se resuelven las referencias entre componentes, se n se resuelven las referencias entre componentes, se
garantiza la pol garantiza la pol tica de enlace de versiones y se valida la integridad de los tica de enlace de versiones y se valida la integridad de los
ensamblados cargados. ensamblados cargados.
El El Manifiesto Manifiesto ( (Manifest Manifest) contiene los ) contiene los metadatos metadatos del ensamblado incluyendo del ensamblado incluyendo
la identidad del ensamblado la identidad del ensamblado
los archivos que implementan el ensamblado los archivos que implementan el ensamblado
las dependencias en tiempo de compilaci las dependencias en tiempo de compilaci n con otros ensamblados n con otros ensamblados
los tipos y recursos que forman el ensamblado los tipos y recursos que forman el ensamblado
el conjunto de permisos para ejecutarse apropiadamente el conjunto de permisos para ejecutarse apropiadamente
UCLM-ESI. Programacin con Visual Basic .NET 1. 12
Plataforma .NET Plataforma .NET
Estrategias
Estrategias
de
de
Implantaci
Implantaci
n
n (ii) (ii)
Es un motor encargado de la gesti Es un motor encargado de la gesti n del c n del c digo de las digo de las
aplicaciones en cuanto a su aplicaciones en cuanto a su
Carga Carga
Ejecuci Ejecuci n n
Manipulaci Manipulaci n de memoria n de memoria
Seguridad Seguridad
Etc. Etc.
n
n
(CTS)
(CTS) (i) (i)
n
n
(CTS)
(CTS) (ii) (ii)
n
n
(CTS)
(CTS) (iii) (iii)
UCLM-ESI. Programacin con Visual Basic .NET 1. 22
Biblioteca de clases com
Biblioteca de clases com
n
n (i) (i)
Windows COM+ Services
Common Language Runtime
Base Class Library
ADO.NET and XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# J# Cobol
System
System.Data System.Xml
System.Web
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security
Design
ADO
SQLTypes
SQL
XPath
XSLT
Runtime
InteropServices
Remoting
Serialization
Serialization
Configuration SessionState
Caching Security
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
System.Drawing
Imaging
Drawing2D
Text
Printing
System.WinForms
Design ComponentModel
UCLM-ESI. Programacin con Visual Basic .NET 1. 23
Biblioteca de clases com
Biblioteca de clases com
n
n (ii) (ii)
Su finalidad es Su finalidad es
Independencia del lenguaje Independencia del lenguaje
Integraci Integraci n entre lenguajes n entre lenguajes
Apertura a nuevos lenguajes Apertura a nuevos lenguajes
UCLM-ESI. Programacin con Visual Basic .NET 1. 25
Tipos de Aplicaciones
Tipos de Aplicaciones
Escritos Escritos con con cualquier cualquier lenguaje lenguaje .NET .NET
Escritas Escritas con con cualquier cualquier lenguaje lenguaje .NET .NET
Incluyen Incluyen el el c c digo digo para para el el comienzo comienzo, el fin y , el fin y
mientras mientras se se ejecuta ejecuta. .
Instalaci Instalaci n n
XCopy XCopy
No No- -tocar tocar (! (!todav todav a a m m s s f f cil cil que que con con XCopy XCopy!) !)
Ejecutar Ejecutar desde desde una una URL URL
Impresi Impresi n n
Configuraci Configuraci n n de de p p ginas ginas
Previsualizaci Previsualizaci n n
UCLM-ESI. Programacin con Visual Basic .NET 1. 29
Tipos de Aplicaciones Tipos de Aplicaciones
Windows Control
Windows Control
Library
Library
Usables Usables en en cualquier cualquier formulario formulario con con cualquier cualquier
lenguaje lenguaje. .
Derivados Derivados desde desde cualquier cualquier otro otro control control
Extender Extender controles controles .NET pre .NET pre- -construidos construidos. .
Construir Construir nuevos nuevos controles controles. .
Ejemplo Ejemplo: :
Acceso Acceso a a datos datos particularizado particularizado y y ampliado ampliado. .
UCLM-ESI. Programacin con Visual Basic .NET 1. 30
Tipos de Aplicaciones Tipos de Aplicaciones
Web
Web
Application
Application
Entorno Integrado de Desarrollo (IDE) para .NET Entorno Integrado de Desarrollo (IDE) para .NET
Permite elegir los tipos de aplicaci Permite elegir los tipos de aplicaci n n
Abierto Abierto
se pueden a se pueden a adir nuevos lenguajes o nuevas herramientas. adir nuevos lenguajes o nuevas herramientas.
n y ejecuci
n y ejecuci
n
n
1.
1. Crear un nuevo proyecto de Visual Basic, tipo Crear un nuevo proyecto de Visual Basic, tipo
Aplicaci Aplicaci n para Windows n para Windows
2.
2. A A adir un formulario adir un formulario (clase de objeto visual) (clase de objeto visual)
3.
3. Editar sus propiedades Editar sus propiedades
text text < <- - Programa de prueba 1 Programa de prueba 1
4.
4. A A adir un control de tipo adir un control de tipo label label (clase de objeto visual (clase de objeto visual
incrustado dentro de un formulario) incrustado dentro de un formulario)
5.
5. Editar sus propiedades Editar sus propiedades
text text < <- - Hola Mundo Hola Mundo
font font < <- - MS Sans MS Sans Serif Serif, 20 , 20 pt pt
6.
6. Ejecutar la aplicaci Ejecutar la aplicaci n n
UCLM-ESI. Programacin con Visual Basic .NET 1. 37
Primer programa Primer programa Hola Mundo Hola Mundo
C
C
digo generado
digo generado
1. 1. Ver c Ver c digo digo
Expandir/contraer regiones Expandir/contraer regiones
2. 2. Clase del formulario Clase del formulario
Un formulario es un objeto => una clase Un formulario es un objeto => una clase
3. 3. El m El m todo constructor todo constructor New New() ()
Se hereda de la clase base (padre) Se hereda de la clase base (padre)
4. 4. El m El m todo todo InitializeComponent InitializeComponent() ()
Crea un nuevo objeto Crea un nuevo objeto Label Label
Asigna valores a las propiedades del Asigna valores a las propiedades del Label Label
Asigna valores a las propiedades del Asigna valores a las propiedades del Form Form
A A ade el objeto ade el objeto Label Label al al Form Form
5. 5. El m El m todo todo Dispose Dispose() ()
Libera recursos de memoria Libera recursos de memoria
UCLM-ESI. Programacin con Visual Basic .NET 1. 38
Primer programa Primer programa Hola Mundo Hola Mundo
Archivos en disco
Archivos en disco
1.
1. Ver lo que se ha creado en el disco. Ver lo que se ha creado en el disco.
Directorios de la figura Directorios de la figura
2.
2. Tipos de Archivos: Tipos de Archivos:
VB: c VB: c digo fuente en Visual Basic (clases, m digo fuente en Visual Basic (clases, m dulos, etc.) dulos, etc.)
VBPROJ: informaci VBPROJ: informaci n sobre los elementos del proyecto n sobre los elementos del proyecto
SLN: soluci SLN: soluci n n
VBPROJ.USER: opciones de usuario del proyecto VBPROJ.USER: opciones de usuario del proyecto
RESX: plantilla de recursos en XML RESX: plantilla de recursos en XML
EXE: aplicaci EXE: aplicaci n ejecutable n ejecutable
Guardado en el directorio Guardado en el directorio bin bin
Es lo Es lo nico necesario para instalar en otro equipo que tiene .NET nico necesario para instalar en otro equipo que tiene .NET
Framework Framework
PDB: informaci PDB: informaci n para depuraci n para depuraci n n
UCLM-ESI. Programacin con Visual Basic .NET 1. 39
VS.NET VS.NET
Aspectos avanzados
Aspectos avanzados
demo
demo (i) (i)
demo
demo (ii) (ii)
demo
demo (iii) (iii)
Tareas Tareas
{Agenda para registrar trabajos pendientes} {Agenda para registrar trabajos pendientes}
Crear/Eliminar tareas Crear/Eliminar tareas
Comentarios / Marcadores Comentarios / Marcadores
Ventana Lista de Tareas Ventana Lista de Tareas
Macros Macros
Explorador Explorador
Ejecuci Ejecuci n n
Grabaci Grabaci n (estilo Office) n (estilo Office)
IDE de macros IDE de macros
UCLM-ESI. Programacin con Visual Basic .NET 1. 42
VS.NET VS.NET
Aspectos avanzados
Aspectos avanzados
demo
demo (iv) (iv)
digo
digo (i) (i)
1. 1. Crear nuevo proyecto Crear nuevo proyecto EscribirCodigo EscribirCodigo de tipo de tipo Aplicaci Aplicaci n para n para
Windows Windows
2. 2. A A adir m adir m dulo dulo MiCodigo MiCodigo [contenedor de c [contenedor de c digo] digo]
Module Module MiCodigo MiCodigo
.... ....
End End Module Module
3. 3. A A adir comentario adir comentario
Aplicaci Aplicaci n n EscribirCodigo EscribirCodigo
4. 4. A A adir procedimiento adir procedimiento Main Main dentro de dentro de MiCodigo MiCodigo
Sub Sub Main Main() () punto de entrada a la aplicaci punto de entrada a la aplicaci n n
.... ....
End End Module Module
5. 5. Mostrar mensaje de inicio usando la clase del sistema Mostrar mensaje de inicio usando la clase del sistema MessageBox MessageBox
MessageBox.Show MessageBox.Show( ( Empieza el programa Empieza el programa ) )
UCLM-ESI. Programacin con Visual Basic .NET 1. 44
Segundo programa Segundo programa Preguntar usuario Preguntar usuario
Escribiendo c
Escribiendo c
digo
digo (ii) (ii)
6. 6. Configurar propiedades del proyecto Configurar propiedades del proyecto
Nombre ensamblado: Nombre ensamblado: EscribirCodigo EscribirCodigo
Espacio de nombres: Espacio de nombres: EscribirCodigo EscribirCodigo
Objeto inicial: Objeto inicial: Sub Sub Main Main
7. 7. Declarar la variable Declarar la variable Nombre Nombre de tipo de tipo string string
Dim Dim Nombre As Nombre As String String
8. 8. Usar funci Usar funci n n InputBox InputBox() para preguntar nombre del usuario y () para preguntar nombre del usuario y
almacenarlo en la variable Nombre almacenarlo en la variable Nombre
Nombre= Nombre=InputBox InputBox( ( Nombre del usuario: Nombre del usuario: ) )
9. 9. Utilizar el operador de concatenar textos (&) para mostrar Utilizar el operador de concatenar textos (&) para mostrar
mensaje de control mensaje de control
MessageBox.Show MessageBox.Show( ( El usuario es El usuario es & Nombre, & Nombre, Programa de Programa de
prueba prueba ) )
10. 10. Ejecutar el programa y grabarlo en disco Ejecutar el programa y grabarlo en disco
11. 11. Probar depuraci Probar depuraci n errores n errores (poner la declaraci (poner la declaraci n n Dim Dim como comentario) como comentario)
UCLM-ESI. Programacin con Visual Basic .NET 1. 45
Ir pensando en la Prctica 1
Resolver ecuacin 2
do
grado (i)
Mostrar un formulario para preguntar los tres coeficientes de un Mostrar un formulario para preguntar los tres coeficientes de una a
ecuaci ecuaci n de segundo grado: n de segundo grado:
A* A*x^2 x^2 + B*x + C = 0 + B*x + C = 0
Preguntar cada coeficiente en un control de tipo Preguntar cada coeficiente en un control de tipo TextBox TextBox
A A adir un bot adir un bot n n Calcular Calcular para obtener las soluciones invocando para obtener las soluciones invocando
al procedimiento de igual nombre. al procedimiento de igual nombre.
Indicar si las soluciones son reales o imaginarias con un contro Indicar si las soluciones son reales o imaginarias con un control l
CheckBox CheckBox. .
Mostrar las 2 soluciones en un control etiqueta Mostrar las 2 soluciones en un control etiqueta Soluci Soluci n n con texto con texto
azul si son reales y rojo si son imaginarias. azul si son reales y rojo si son imaginarias.
Ejemplo formato 2 soluciones reales: Ejemplo formato 2 soluciones reales: 2 2 45 y 78 45 y 78 23 23
Ejemplo formato 1 soluci Ejemplo formato 1 soluci n real: n real: - -9 9 06 06
Ejemplo formato 2 soluciones imaginarias: Ejemplo formato 2 soluciones imaginarias: 1 1 48+2 48+2 1i y 0 1i y 0 63 63- -1 1 86i 86i
A A adir un bot adir un bot n n Salir Salir para acabar. para acabar.