Visual Basic.NET Daniel A. Seara NDSoft Consultoría y Desarrollo

Slides:



Advertisements
Presentaciones similares
Tema 4: Programación Orientada a Objetos en C# y VB.NET
Advertisements

Programación orientada a objetos en Visual Basic .NET
Introducción a C#.
Características Generales y Entornos de Desarrollo
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
Programa Microsoft Desarrollador Cinco Estrellas
Unidad 3 Lenguajes .Net y POO
Curso de java básico (scjp)
Visual C#.NET Creado especialmente para .NET Estándar ECMA (2002)
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Uso de variables de tipo referencia
Desarrollo de aplicaciones para Windows con VB.NET 2005
Lenguaje de programación Java
Agenda Conceptos Claves.
Visual C#.NET Creado especialmente para .NET Estándar ECMA (2002)
Programación Orientada a Objetos
Daniel A. Seara Director Regional MSDN NDSoft
Fundamentos básicos del lenguaje C#
Aplicación del paradigma orientado a objetos
Programación Orientada a Objetos en Java
CURSO DE VISUAL BASIC .NET MODO GRAFICO
Clase II [Delio Alanis Nieto] [].
Clase IV Delio Alanis.
VB.NET Dr. Diego Lz. de Ipiña Gz. de Artaza
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Modificadores.
TALLER DE PROGRAMACIÓN III
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
POO Java Módulo 3 Elementos de programas Identificadores
Lic. Rosemary Torrico Bascopé
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Abstracción de los datos y Orientación a Objeto Clase 13.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
SCJP Sun Certified Programmer for Java 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
Variables y Shapes. Variables ► Lugares de la memoria que reciben un nombre ► En VB no es necesario declarar las variables  A=8 ► Se declaran con Dim.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Sintaxis de C# (Declaraciones y Tipos)
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Microsoft© Visual Basic . Net.
Tipo de Datos Básicos.
Abstracción de Datos y Orientación a Objetos.. Vista General. Por qué la abstracción de datos y la programación orientada a objetos. Módulos y módulos.
Control de errores visual basic
Módulo 8: Manejo de Errores y Excepciones
Los ensamblados y el código IL Contenido Módulo ¿Qué es un Ensamblado? El código MSIL.
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
Módulo 3: Usando Variables y Arreglos
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java.
Programación Orientada a Objetos
Facilitador: Christian Alexander Martinez
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Conceptos.  Byte (0 a 255) = un byte  Short ( a ) = 16 bits de longitud  Integer ( a ) = 32 bits de longitud 
Clases “ Es una Abstracción de un elemento del mundo real ”
SCITMina | by Microsoft Bienvenidos Eduardo Daniel Tenorio Mayo Microsoft Student Partner Taller de Programación Orientada a Objetos Con C# Edgar Edel.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Fundamentos básicos del lenguaje C#. Parte 1 Introducción a C#
Transcripción de la presentación:

Visual Basic.NET Daniel A. Seara NDSoft Consultoría y Desarrollo Director Regional MSDN Argentina daniels@ndsoft.com.ar

Generalidades Hacer el lenguaje aún más simple de utilizar ...al menos, más fácil de aprender Corregir algunas cosas del diseño Agregar características de orientación a objetos completa Convertirlo en “ciudadano de primera” del mundo .NET ...restringiendo los cambios a lo estrictamente necesario

Orientación a objetos Demo Herencia (Inheritance) Sobrecarga (Overloading) Interfaces Miembros Compartidos Constructores e inicializadores Sub New() unObjeto = New Class(“Arg”, datos) Eventos orientados a objetos Demo

Conceptos de Herencia Reutilización Construyendo jerarquías de tipo Composición (Tiene-un) MiForm Tiene-un Control MiForm Control Herencia (Es-un) MiForm Es-un FormInic Form FormInic Construyendo jerarquías de tipo Versionamiento Polimorfismo MiForm MiNuevoForm

Interfaces Declaración de contrato entre las partes Permite orientación a componentes Define estructura y semánticas para un propósito específico Definición abstracta de método y propiedades Soporta herencia (múltiple) Ejemplo: Interface IPersonaEdad Property Nacimiento() As Integer Function TraerEdadActual() As Integer End Interface

Características 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, módulos, interfaces, vectores, delegados, y cadenas Los objetos pueden contener ambas TODO hereda implícitamente de System.Object

Tipos Primitivos Enteros De Punto flotante Numéricos exactos Byte (8 bits), Short (16 bits) Integer (32 bits), Long (64 bits) De Punto flotante Single (4 bytes), Double (8 bytes) Numéricos 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 simbólico de un conjunto de valores Definidos específicamente 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 tamaño Dim UnaDimension(10) As Integer Dim DosDimensions(20,intVal) As Integer Sintaxis declarativa Dim UnVector() As Integer ReDim UnVector(10) El límite inferior siempre es cero No se soporta tamaño “fijo” (4 to 12) La cantidad de dimensiones es fija

Clases Concepto para objetos: código y datos Las clases contienen miembros: De datos: variables, constantes Propiedades: valores que se acceden por métodos get / set Métodos: exponen funcionalidad Especiales: eventos, delegados, constructores, destructores

Herencia 1/2 Clase base simple, pero con múltiples interfaces base Public Class ClaseDerivada Inherits ClaseBase Implements IBase1, IBase2 ... End Class Demo Clases base abstractas Public MustInherit Class ClaseAbstracta ... End Class Clases no heredables Public NotInheritable Class ClaseFinal ... End Class

Herencia 2/2 Demo Sobrecarga Sobre escritura Un método sobrecarga otro Igual nombre Diferentes parámetros Sobre escritura Métodos que sobrescriben a otros de una clase heredada, con la misma declaración NotOverridable, MustOverride Definen si deben o no pueden sobrescribirse Acceso calificado MyClass, MyBase Demo

Accesibilidad Cada miembro define su propia accesibilidad Private Sólo 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 sólo 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 No pueden indexarse intVal = Sample.valPlus1

Manejo de Excepciones No necesariamente son errores Dos estilos: estructurados (SEH) y no estructurados (UEH) Sólo se permite un estilo por método UEH se soporta por compatibilidad para atrás On Error, Resume, Error Microsoft.VisualBasic.Information.Err

Manejo estructurado Demo Las excepciones son conceptos del sistema Propagadas entre componentes aún de distintos lenguajes Sintaxis: Try <Algo riesgoso> Catch e As Exception <Recupero del error> Finally <Ejecutar en cualquier caso> End Try Pueden definirse personalizadas Derivadas de System.Exception y pueden dispararse explícitamente con Throw Demo

Eventos Soporta el estilo “tradicional” WithEvents El .NET Framework expone un nuevo sistema de eventos Basado en delegados Transmitibles a muchos Se vinculan dinámicamente manejadores a los eventos AddHandler, RemoveHandler Muchos eventos pueden enviarse al mismo método Private WithEvents mW As Marcador Public Sub mW_MueveRaton(...) Handles mW.MouseHover

Simple, más consistente Declaraciones más “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 sólo dentro del mismo No hay creación implícita Debe usarse New

Más robusto Control de Tipos estricto Inicializadores Conversiones implícitas y explícitas Dim Base as CBase Dim Derivada as CDerivada = new CDerivada() Base = Derivada Option Strict Option Explicit Inicializadores Los Parámetros opcionales DEBEN tener un valor por defecto Sub Calcular(Optional ByVal param As Boolean = False)

Mejor Rendimiento Soporta “free threading” Evaluación rápida Mejor respuesta ¡Pero se deben conocer muy bien los mecanismos de manejo de hilos de ejecución! Evaluación rápida X = A And B AndAlso (C OR D) Si A y B Son Verdad, no se evalúan C ni D

Algunos otros cambios Siempre se usan paréntesis al llamar métodos En todos los casos, Sub y Function, aún cuando no requieran argumentos Por defecto, los parámetros se pasan ByVal Las propiedades son parámetros por referencia Mantienen los cambios Gosub/Return no existen más No hay tipo de dato por defecto Operadores aritméticos de “llamada rápida”: x += 7 Vinculación tardía

Finalización Determinista Un objeto se destruye automáticamente Cuando no se lo necesita más (Set a Nothing) Visual Basic.NET: No está disponible la cuenta de referencias automáticas “detrás 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 solución posible: Armar un esquema personalizado de cuenta de uso ¡No mantener estado en los objetos!

Integración con .Net Common Language Runtime Conceptos de Namespaces, Assemblies, Módulos “Free Threading” Atributos Visual Studio.Net

El motor de ejecución común (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 código no administrado tiene sus implicancias

Namespaces Concepto Organizacional Pueden y deben ser jerárquicos System.Reflection MiLib.Ayudas.Controles.Ingresos Un programa puede tener múltiples 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 Namespace MyLib ... End Namespace

Assemblies Resultado de compilar tanto una .dll o un .exe Puede ser en uno o más archivos El archivo contiene la metadata (manifiesto) Descripción de sí mismo Descripción de los tipos implementados Referencias externas Información de versión Control de la seguridad Y más ...

Módulos La más pequeña unidad a ser compilada Contiene una o más clases o interfaces El Sub Main() habitualmente tiene alcance de módulo Más de un módulo 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 Información 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 ejecución, a través de “reflection” Mejoran la funcionalidad del programa Brinda ayudas al ejecutor Public Function <WebMethod()> Hello As String ...

Visual Studio.NET Basado en el SDK del .NET Framewrok Integración y funcionalidad mejoradas Proyectos en varios lenguajes Un entorno (IDE) integrado para todos Herramientas integradas: Visio, Adm. De Bases de Datos Integración perfecta de la ayuda: Ayuda dinámica, IntelliSense® Mayor productividad para todo: Desarrollo rápido de aplicaciones Proyectos en gran escala

Resumen Grandes cambios para aprovechar las ventajas del .NET Famework Lenguaje modernizado y consistente Características “heredadas” finalmente se han eliminado El código Visual Basic.NET puede reutilizarse Soporte para la migración