Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VB Net Es
VB Net Es
NET
Daniel A. Seara
NDSoft
Director Regional MSDN Buenos Aires ARGENTINA
Objetivos
Introduccin a Microsoft Visual Basic .NET
Nuevos conceptos Cambios
Contenido
Seccin 1: Seccin 2: lenguaje Seccin 3: Seccin 4: Resumen Conceptos generales Caractersticas del Integracin con .Net Uniendo las partes
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)
Conceptos de Herencia
Reutilizacin
Composicin (TieneMiForm
Control
un)
Herencia (Es-un)
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
End Interface
Type System
Usa el Sistema de Tipos Comunes de.NET
No se necesitan conversiones (marshalling)
entre lenguajes
Enteros
Tipos Primitivos
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:
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
acceden por mtodos get/set Mtodos: exponen funcionalidad Especiales: eventos, delegados, constructores, destructores
Herencia
1/2
Public MustInherit Class AbstractBase ... End Class Public NotInheritable Class FinalClass ... End Class
Herencia
Sobrecarga
2/2
Sobre escritura
Mtodos que sobrescriben a otros con la
misma declaracin
NotOverridable, MustOverride
Definen si deben o no pueden
sobrescribirse
Acceso calificado
MyClass, MyBase
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
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
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
Propiedades
Manejo de Excepciones
No necesariamente son errores Dos estilos: estructurados (SEH) y no estructurados (UEH) Slo se permite un estilo por mtodo UEH se soporta por compatibilidad para atrs
On Error, Resume, Error Microsoft.VisualBasic.Information.Err
Manejo estructurado
Las excepciones son conceptos del sistema Sintaxis:
Propagadas entre componentes
Try <Algo riesgoso> Catch e As Exception <Recupero del error> Finally <Ejecutar en cualquier caso> End Try
Delegados
Punteros a funciones orientados a objetos Pueden apuntar a un mtodo en particular de un objeto Delegate Function CmpFunc(x As Integer, y As Integer)especfico As Boolean
Public Function Cmp(x As Integer, y As Integer) As Boolean ... (This function implemented in some class) End Function Sub Sort(Sort As CmpFunc, ByRef IntArray() As Integer) ... If Sort.Invoke(IntArray(i), Value) Then ... Exchange values End If ... End Sub Call Sort( new CmpFunc( AddressOf aObj.Cmp), AnArray)
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 Transmitibles a muchos Se vinculan dinmicamente manejadores a los eventos Muchos eventos pueden enviarse al mismo mtodo
AddHandler, RemoveHandler Basado en delegados
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
Option Strict
Option Explicit
Mejor Rendimiento
Soporta free threading
Mejor respuesta
Evaluacin rpida
X = A And B AND (C OR D)
no requieran argumentos
Por defecto, los parmetros se pasan ByVal Las propiedades son parmetros por referencia
Mantienen los cambios
Gosub/Return no existen ms No hay tipo de dato por defecto Operadores aritmticos de llamada rpida:
Finalizacin Determinista
Un objeto se destruye automticamente
Cuando no se lo necesita ms (Set a Nothing)
Visual Basic.NET:
No est disponible la cuenta de referencias
automticas detrs de la escena Los objetos los destruye el recolector de residuos (GC) cuando l lo dispone Los recursos pueden, virtualmente, mantenerse vivos en forma permanente
uso
(CLR)
implicancias
Namespaces
Concepto Organizacional
Namespace MyLib
Un programa puede tener mltiples Namespaces declarados Los Namespaces pueden repartirse entre varios programas Importando namespaces
Permite acceder a los tipos sin necesidad de
Assemblies
Resultado de compilar tanto una .dll o un .exe
Puede ser en uno o ms archivos
Mdulos
La ms pequea unidad a ser compilada Contiene una o ms clases o interfaces
El Sub Main() habitualmente tiene alcance
de mdulo
Free Threading
Ejecuta mltiples tareas simultneamente
Pueden compartirse objetos entre hilos
Usa el operador AddressOf en el Sub para declarar Dim miThread As New Threading.thread(AddressOf
miThread.Start() miThread.Join()
MiSub)
Ejemplo
Dim Escritor As Thread = new Thread( _ AddressOf UnObjeto.ThreadSub) Dim Lector As Thread = new Thread( _ AddressOf UnObjeto.ThreadSub) ... Escritor.Start() Lector.Start() Escritor.Join() Lector.Join() ... Public Sub ThreadSub Monitor.Enter(Me) Inicia un bloque de sincronizacin ... Monitor.Exit(Me) End Sub
Reflection
Mecanismo para obtener informacin en tiempo de ejecucin
Assemblies Tipos: clases, interfaces, mtodos
Informacin adicional declarativa de un elemento del programa Es posible definir atributos personalizados de clases
Public Class PersonFirstName Inherits Attribute End Class
Atributos
Pueden obtenerse en tiempo de ejecucin, a travs de reflection Mejoran la funcionalidad del programa
Public Function <WebMethod()> Hello As String ...
Se usa como meta elementos Brinda ayudas al ejecutor
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
Form1.vb Dataset
pedidos.xsd
OLE DB
XML
Base de Datos
Visual Studio.NET
Basado en el SDK del .NET Framewrok Integracin y funcionalidad mejoradas
Proyectos en varios lenguajes Un entorno (IDE) integrado para todos Herramientas integradas: Visual Modeler,
Windows Forms
Duwamish Books
Duwamish Books
Ejemplo de aplicacin empresarial Buenas prcticas en el diseo en mltiples capas Incluida en Visual Studio.NET Es un buen comienzo para aprender
Visual Basic.NET ASP.NET ADO.NET
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
Questions?
Duwamish Books
A Sample Application for Microsoft .NET
1/2
Install the "Enterprise Samples" with Visual Studio.NET Location of the Visual Basic Version
Directory
.\EnterpriseSamples\DuwamishOnline VB
Installation Tasks
Check the prerequisites Microsoft Windows 2000 Server; Microsoft SQL Server 2000 with English Query optional and supported
2/2
The installation wizard will guide you Defaults should be OK for almost everybody. Setup will install database, Web site, and code After installation is complete:
File/Open Solution with the
Database
Duwamish7.Common
Common Components
Duwamish7.SystemFramework
Diagnostics utilities
Duwamish7.DataAccess
Contains all database-related code Uses ADO.NET architecture
Using SQL Server managed
Duwamish7.BusinessRules
Implements all business rules
Validation of business objects (for
examle, Customer EMail) Updating business objects Calculations (Shipping Cost, Taxes)
Duwamish7.BusinessFacade
Implements logical business subsystems
CustomerSystem: Profile
Reads data through DataAccess Data validated and updated using BusinessRules
Duwamish7.Web
Implements the user interface for Web access Uses ASP.NET architecture
Employs Web Forms model Uses code behind forms Manages state Uses custom Web controls
Exploring Duwamish VB
Exploring Visual Basic.NET Features in Duwamish
Extending Duwamish VB
Extending Duwamish VB
Legal Notices
Unpublished work. 2001 Microsoft Corporation. All rights reserved. Microsoft, IntelliSense, Visual Basic, Visual Studio, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.