La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Visual Basic.NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft.

Presentaciones similares


Presentación del tema: "Visual Basic.NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft."— Transcripción de la presentación:

1 Visual Basic.NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft

2 Objetivos Introducción a Microsoft Visual Basic.NET Nuevos conceptos Cambios Integración con.NET Herramientas

3 Contenido Sección 1: Conceptos generales Sección 2: Características del lenguaje Sección 3: Integración con.Net Sección 4: Uniendo las partes Resumen

4 Sección 1: 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

5 Orientación a objetos Herencia (Inheritance) Sobrecarga (Overloading) Interfaces Miembros Compartidos Constructores e inicializadores Sub New() anObject = New Class(“Data”, data) Eventos orientados a objetos

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

7 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 IPersonAge Property YearOfBirth() As Integer Function GetAgeToday() As Integer End Interface

8 Sección 2: Características del lenguaje “Type System” Clases y Herencia Manejo de excepciones Conceptos de eventos Cambios

9 Type System

10 Tipos Primitivos Enteros 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

11 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

12 Vectores Dim anArray() As Integer ReDim anArray(10) Dim OneDimension(10) As Integer Dim TwoDimensions(20,intVal) As Integer

13 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

14 Herencia 1/2 Clase base simple, pero con múltiples interfaces base Clases base abstractas Clases no heredables Public Class DerivedClass Inherits BaseClass Implements IBase1, IBase2... End Class Public MustInherit Class AbstractBase... End Class Public NotInheritable Class FinalClass... End Class

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

16 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

17 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

18 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

19 Propiedades No es sólo almacenamiento Pueden realizarse operaciones Se usan como miembros de datos No pueden indexarse intVal = Sample.valPlus1 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

20 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

21 Manejo estructurado Try Catch e As Exception Finally End Try

22 Delegados Punteros a funciones orientados a objetos Pueden apuntar a un método en particular de un objeto específico 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)

23 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

24 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

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

26 Mejor Rendimiento Soporta “free threading” Mejor respuesta Evaluación rápida X = A And B AND (C OR D)

27 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

28 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!

29 Sección 3: Integración con.Net Common Language Runtime Conceptos de Namespaces, Assemblies, Módulos “Free Threading” “Reflection” Atributos “Windows Forms” Herramientas

30 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

31 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

32 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...

33 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

34 “Free Threading” Ejecuta múltiples tareas simultáneamente Pueden compartirse objetos entre hilos Usa el operador AddressOf en el Sub para declarar El Sub no puede tener argumentos, ni devolver valores Es necesario sincronizar Dim miThread As New Threading.thread(AddressOf MiSub) miThread.Start() miThread.Join()

35 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 sincronización... Monitor.Exit(Me) End Sub

36 Reflection Mecanismo para obtener información en tiempo de ejecución Assemblies Tipos: clases, interfaces, métodos Provee vinculación tardía para la invocación de métodos

37 Atributos Información adicional declarativa de un elemento del programa Es posible definir atributos personalizados de clases Pueden obtenerse en tiempo de ejecución, a través de “reflection” Mejoran la funcionalidad del programa Brinda ayudas al ejecutor Se usa como meta elementos Public Class PersonFirstName Inherits Attribute End Class Dim Vorname As String Dim PrimeiroNome As String Public Function Hello As String...

38 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 Base de Datos Form1.vb Regla de Negocio Obtener Pedido Dataset pedidos.xsd Dataset pedidos.xsd Dataset Command PedidoCmd HTTP XML OLE DB

39 Compilador por línea de comando Compila fuentes Visual Basic a MSIL Tiene una multitud de opciones Puede llamarse de cualquier entorno Usa menos recursos que Visual Studio Puede utilizarse con Nmake Útil para proyectos de múltiples idiomas Vbc /target:exe /out:myprogram.exe *.vb

40 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: Visual Modeler, 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

41 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 transición Microsoft.VisualBasic se importa por defecto Clases que exponen funcionalidades de...  Colecciones  Funciones de Fecha/Hora  Más

42 Visual Basic Upgrade Wizard Aplica los cambios automáticamente Genera soluciones Conversión 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 actualización

43 Sección 4: Uniendo las partes Sample Walkthrough Exploring Visual Basic.NET Features in Duwamish Books

44 Duwamish Books Ejemplo de aplicación empresarial “Buenas prácticas” en el diseño en múltiples capas Incluida en Visual Studio.NET Es un buen comienzo para aprender Visual Basic.NET ASP.NET ADO.NET

45 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

46 Questions?

47 Duwamish Books A Sample Application for Microsoft.NET

48 Installing the Sample 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  Read the Readme.htm Run Installer Duwamish.msi (double-click it)

49 Installing the Sample 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 Duwamish.sln file Can build the sample with Build/Build Solution

50 User / Browser IIS Duwamish Architecture Overview DataAccess Database Common.Data BusinessRules BusinessFacade SystemFramework Web ASP.NET ADO.NE T

51 Common Components Duwamish7.Common Contains systems configuration options Contains common data definitions (classes)  subnamespace Duwamish.Common.Data "Internal" data representation for Book, Category, Customer, OrderData Duwamish7.SystemFramework Diagnostics utilities Pre and post condition checking classes Dynamic configuration In short:  Everything that's pure tech and not business code

52 Duwamish7.DataAccess Contains all database-related code Uses ADO.NET architecture Using SQL Server managed provider Shows DataSet, DataSetCommand usage Optimized for performance by using stored procs

53 Duwamish7.BusinessRules Implements all business rules Validation of business objects (for examle, Customer EMail) Updating business objects Calculations (Shipping Cost, Taxes) All data access performed through DataAccess

54 Duwamish7.BusinessFacade Implements logical business subsystems CustomerSystem: Profile management OrderSystem: Order management ProductSystem: Catalog management Reads data through DataAccess Data validated and updated using BusinessRules BusinessFacade encapsulates all business-related functionality

55 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 All functionality accessed through BusinessFacade

56 Shop at Duwamish Online.NET Demo: Duwamish in Action

57 Exploring Duwamish VB Exploring Visual Basic.NET Features in Duwamish

58 Extending Duwamish VB

59 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.


Descargar ppt "Visual Basic.NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft."

Presentaciones similares


Anuncios Google