You are on page 1of 24

Visual

Basic.NET
Universidad Yacamb
Pasantes Ing Electrnica

Seccin 1: Generalidades
Hacer el lenguaje an ms simple de utilizar
...al menos, ms fcil de aprender

Corregir algunas cosas del diseo


Agregar caractersticas de orientacin a
objetos completa
Convertirlo en ciudadano de primera del
mundo .NET
...restringiendo los cambios a lo
estrictamente necesario

Orientacin a objetos

Herencia (Inheritance)
Sobrecarga (Overloading)
Interfaces
Miembros Compartidos
Constructores e inicializadores
Sub New()
anObject = New Class(Data, data)

Eventos orientados a objetos

Conceptos de Herencia
Reutilizacin
Composicin (Tiene-

MiForm

Control

un)

MiForm Tiene-un Control

Herencia (Es-un)
MiForm Es-un EntryForm

Construyendo
jerarquas de tipo
Versionamiento
Polimorfismo

Form

FormInic

MiForm

MiNuevoForm

Interfaces
Declaracin de contrato entre las partes
Permite orientacin a componentes

Define estructura y semnticas para un


propsito especfico
Definicin abstracta de mtodo y propiedades
Soporta herencia (mltiple)
Ejemplo:
Interface IPersonAge
Property YearOfBirth() As Integer
Function GetAgeToday() As Integer
End Interface

Seccin 2: Caractersticas
del lenguaje
Type System
Clases y Herencia
Manejo de excepciones
Conceptos de eventos
Cambios

Type System
Usa el Sistema de Tipos Comunes de.NET
No se necesitan conversiones (marshalling) entre

lenguajes

Cada tipo puede ser un valor o una referencia


Tipos de valores:

Primitivas, enumeradores, estructuras


Referencias:

Clases, mdulos, interfaces, vectores,


delegados, y cadenas
Los objetos pueden contener ambas

TODO hereda implcitamente de


System.Object

Tipos Primitivos

Enteros

Byte (8 bits), Short (16 bits)


Integer (32 bits), Long (64 bits)

De Punto flotante
Single (4 bytes), Double (8 bytes)

Numricos exactos
Decimal (28 digitos) (reemplaza Currency)

Boolean, Date, Char


String (Tipo por referencia!)
Bytes con signo, y enteros sin signo no son
soportados

Enumeradores
Nombre simblico de un conjunto de valores
Definidos especficamente
Basados en enteros
Byte, Short, Integer, o Long
Por defecto, Integer

Ejemplo:

Enum Color As Byte


rojo
verde
azul
End Enum

Vectores
Derivan de la clase System.Array
Definidos por tipo y tamao
Dim OneDimension(10) As Integer
Dim TwoDimensions(20,intVal) As Integer

Sintaxis declarativa
Dim anArray() As Integer
ReDim anArray(10)

El lmite inferior siempre es cero


No se soporta tamao fijo
La cantidad de dimensiones es fija

Clases
Concepto para objetos: cdigo
y datos
Las clases contienen
miembros:
De datos: variables, constantes
Propiedades: valores que se acceden

por mtodos get/set


Mtodos: exponen funcionalidad
Especiales: eventos, delegados,
constructores, destructores

Ejemplo
Public Class Customer
Inherits Person
Implements ICustomer
Private CustomerNo As String
Public Property Customer As String
Get
Return CustomerNo
End Get
Set
CustomerNo = Customer
End Set
End Property
Public Overloads Sub New()
End Sub
Public Overloads Sub New(ByVal par as Integer)
MyBase.New(par)
End Sub
Public Sub DoAny(ByVal c as Char) Implements ICustomer.DoAny
End Sub
End Class

Estructuras
Tipos definidos por el usuario
reemplazan Type

Clases livianas

Consisten de los mismos miembros


Son tipos de valor, en cambio las clases son
referencias
Pueden implementar Interfaces
No pueden heredarse
Public Structure Cliente
Implements ICstmr
Public NroCliente, Nombre As String
Public Sub New()
End Sub
Public Sub Hacer(ByVal c as Char) Implements ICstmr.Hacer
End Sub
End Structure

Accesibilidad
Cada miembro define su propia
accesibilidad
Private

Slo dentro del contexto donde se declara


Protected (solo miembros de la clase)
Acceso adicional por clases derivadas
Friend
Acceso desde el mismo Assembly
Protected Friend
Protected + Friend
Public
Sin restricciones

Propiedades

No es slo almacenamiento
Pueden realizarse operaciones
Public Class Sample
Private val as Integer
Public Property valPlus1() as Integer
Get
valPlus1 = val+1
End Get
Set
val = valPlus1-1
End Set
End Property
End Class

Se usan como miembros de datos


intVal = Sample.valPlus1

No pueden indexarse

Eventos
Soporta el estilo tradicional
WithEvents
Private WithEvents mW As Marcador
Public Sub mW_MueveRaton(...) Handles mW.MouseHover

El .NET Framework expone un nuevo


sistema de eventos
Basado en delegados

Transmitibles a muchos
Se vinculan dinmicamente
manejadores a los eventos
AddHandler, RemoveHandler

Muchos eventos pueden enviarse al


mismo mtodo

Simple, ms consistente
Declaraciones ms obvias
Visual Basic 6: Dim i,j as Integer

i es Variant, j es Integer
Visual Basic.NET: Dim i,j as Integer
Ambas son Integer

Las variables declaradas en un


bloque existen slo dentro del mismo
No hay creacin implcita
Debe usarse New

Ms robusto
Control de Tipos estricto
Conversiones implcitas y explcitas
Dim Base as CBase
Dim Derivada as CDerivada = new
CDerivada()
Base = Derivada

Option Strict
Option Explicit

Inicializadores
Los Parmetros opcionales DEBEN tener un
valor por defecto
Sub Calcular(Optional ByVal

param As Boolean = False)

Mejor Rendimiento
Soporta free threading
Mejor respuesta

Evaluacin rpida
X = A And B AND (C OR D)

Seccin 3: Integracin
con .Net

Common Language Runtime


Conceptos de Namespaces, Assemblies,
Mdulos
Free Threading
Reflection
Atributos
Windows Forms
Herramientas

Mdulos
La ms pequea unidad a ser compilada
Contiene una o ms clases o interfaces
El Sub Main() habitualmente tiene alcance de

mdulo

Ms de un mdulo pueden compartir el


mismo assembly
El cual entonces, es un assembly multi-archivo

Ejemplo:

Imports System
Public Module Principal
Sub Main()
Console.WriteLine(Hola mundo!")
End Sub
End Module

Atributos

Informacin adicional declarativa de un


elemento del programa
Es posible definir atributos personalizados de
clases
Public Class PersonFirstName
Inherits Attribute
End Class

Pueden obtenerse en tiempo de ejecucin, a


travs de reflection
Mejoran la funcionalidad del programa
Brinda ayudas al ejecutor

Public Function <WebMethod()> Hello As String ...


Se usa como meta elementos
Dim <PersonFirstName()> Vorname As String
Dim <PersonFirstName()> PrimeiroNome As String

Windows Forms
Nueva biblioteca de formularios, basada en
el.NET Framework
Para aplicaciones de escritorio
Servicios locales de usuario, para
aplicaciones en 3 capas
Cliente Windows

Web Service

Form1.vb

Regla de Negocio
Obtener Pedido

HTTP
Dataset
pedidos.xsd

XML

Dataset
pedidos.xsd

Dataset Command
PedidoCmd

OLE DB

Base
de
Datos

Resumen
Grandes cambios para aprovechar
las ventajas del .NET Famework
Lenguaje modernizado y consistente
Caractersticas heredadas
finalmente se han eliminado
El cdigo Visual Basic.NET puede
reutilizarse
Soporte para la migracin

You might also like