Visual Basic.Net - neilveliz.com

Visual Basic.Net - neilveliz.com

Visual Basic.NET Daniel A. Seara Director Regional MSDN Buenos Aires ARGENTINA NDSoft Objetivos Introduccin a Microsoft Visual Basic .NET Nuevos conceptos Cambios Integracin con .NET Herramientas

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) Eventos orientados a objetos Conceptos de Herencia Reutilizacin Composicin (Tiene-un) MiForm Control 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

Herencia 1/2 Clase base simple, pero con mltiples interfaces base Public Class DerivedClass Inherits BaseClass Implements IBase1, IBase2 ... End Class Clases base abstractas Public MustInherit Class AbstractBase ... End Class

Clases no heredables Public NotInheritable Class FinalClass ... End Class Herencia 2/2 Sobrecarga Un mtodo sobrecarga otro Igual nombre Diferentes parmetros 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 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 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 Propagadas entre componentes

Sintaxis: Try Catch e As Exception Finally End Try Pueden definirse personalizadas Derivadas de System.Exception y pueden dispararse con explcitamente Throw Delegados

Punteros a funciones orientados a objetos Pueden apuntar a un mtodo en particular de un objeto especfico Delegate Function CmpFunc(x As Integer, y As Integer) 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 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) Algunos otros cambios Siempre se usan parntesis al llamar mtodos En todos los casos, Sub y Function, an cuando 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:

x += 7 Vinculacin tarda 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 Una solucin posible:

Armar un esquema personalizado de cuenta de uso No mantener estado en los objetos! Seccin 3: Integracin con .Net Common Language Runtime Conceptos de Namespaces, Assemblies, Mdulos Free Threading Reflection Atributos Windows Forms Herramientas

El motor de ejecucin comn (CLR) Accede a los servicios de la Plataforma.NET Con interoperabilidad entre lenguajes Incluyendo Herencia Interoperabilidad con COM servicios de bajo nivel COM-Interop P/Invoke Llamar cdigo no administrado tiene sus implicancias Namespaces

Concepto Organizacional Namespace MyLib Pueden y deben ser jerrquicos ... System.Reflection End Namespace MiLib.Ayudas.Controles.Ingresos Un programa puede tener mltiples Namespaces declarados Los Namespaces pueden repartirse entre varios programas Importando namespaces Permite acceder a los tipos sin necesidad de calificarlos completamente

Se ubican a nivel del archivo Namespace global, sin nombre Tienen alcance para todo el programa Assemblies Resultado de compilar tanto una .dll o un .exe Puede ser en uno o ms archivos El, archivo contiene la metadata (manifiesto) Descripcin de s mismo Descripcin de los tipos implementados Referencias externas Informacin de versin Control de la seguridad

Y ms ... 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 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 MiSub) miThread.Start() miThread.Join()

El Sub no puede tener argumentos, ni devolver valores Es necesario sincronizar 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 Provee vinculacin tarda para la invocacin de mtodos 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 Hello As String ... Se usa como meta elementos Dim Vorname As String Dim 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

Compilador por lnea de comando Compila fuentes Visual Basic a MSIL Vbc /target:exe /out:myprogram.exe *.vb Tiene una multitud de opciones Puede llamarse de cualquier entorno Usa menos recursos que Visual Studio Puede utilizarse con Nmake til para proyectos de mltiples idiomas 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,

Adm. De Bases de Datos Integracin perfecta de la ayuda: Ayuda dinmica, IntelliSense Mayor productividad para todo: Desarrollo rpido de aplicaciones Proyectos en gran escala De Visual Basic 6 a Visual Basic.NET Visual Basic.NET es el sucesor de Visual Basic 6 ...pero algunas cosas marcan diferencia

Las clases de compatibilidad ayudan en la transicin Microsoft.VisualBasic se importa por defecto Clases que exponen funcionalidades de... Colecciones Funciones de Fecha/Hora Ms Visual Basic Upgrade Wizard Aplica los cambios automticamente Genera soluciones Conversin de tipos Variant a Object

Integer a Short, Long a Integer Type a Structure Currency a Decimal Vectores que comienzan en cero Reemplazo de los formularios por .NET Windows Forms Recomendaciones para la actualizacin 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

Recently Viewed Presentations

  • Project Ski Big Sky Mountain Montana

    Project Ski Big Sky Mountain Montana

    Personalized Ski Mountain Attack Plan. For the time period 1967-2009 Lift tickets at major ski resorts has increased over 1200%. Outpaces inflation by 90% per year. Today a family of 4 pays $356 to ski at Big Sky Ski Resort...
  • What is Irony? - Summit Hill

    What is Irony? - Summit Hill

    IRONY REVIEW. Irony is a kind of surprise. It is the difference between what is expected to happen and what actually happens. Irony is like a twist or a last minute change-up. It is an interruption of events that cause...
  • O Sistema de Segurana Operacional da NetJets Europe

    O Sistema de Segurana Operacional da NetJets Europe

    Safety Management System. NetJets has implemented its SMS by combining its existing safety processes into a single management system in 4 phases: Implementation and culture development (2011/2012) Risk management (2013) Training and promotion (2014) Safety assurance (2015)
  • Bohr's Model of Atomic Theory

    Bohr's Model of Atomic Theory

    Draw the Bohr Model for: Sodium Oxygen. 1.) Draw a nucleus. 2.) Determine how many electrons you need. 3.) Draw energy levels around nucleus. Each energy level can only hold so many electrons . 1. st = 2 e-2. nd...
  • wlc2013japaneseeportfolios.weebly.com

    wlc2013japaneseeportfolios.weebly.com

    100 yen per sushi plate revolving sushi bar restaurants. Kaiten Zushi often use machine labor to cut down the price of manpower . Produce sushi pieces at 2-3 times the speed of veteran chefs. Tabletop sushi machines produce more than...
  • Phylum Arthropoda - Mediapolis Community School

    Phylum Arthropoda - Mediapolis Community School

    Phylum Arthropoda "Jointed - foot" Ticks Parasites Pierce the skin of hosts and live off their blood Carry disease causing bacteria and microorganisms Lyme disease Rocky Mountain spotted fever Subphylum Myriapoda "Many feet" Millipedes and Centipedes One or two pairs...
  • Moving Towards A Generative Governance Model November 19,

    Moving Towards A Generative Governance Model November 19,

    Less micromanagement in exchange for macromanagement. Higher level of board member engagement, board in flow and higher performance - discussion on the things that really matter, more value added discussion. More meaning is tapped in the discussions from everyone. Better...
  • Multiplying Binomials using the Grid Method

    Multiplying Binomials using the Grid Method

    Multiplying Binomials using the Grid Method Feb. 2007 S. Calahan The problem: (x + 3)(x + 2) Set up the first expression on the top of the grid. x + 3 Step 2: Place the second expression on the side.