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

Slides:



Advertisements
Presentaciones similares
Programación orientada a objetos en Visual Basic .NET
Advertisements

Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
Programación para Office 2003 con Visual Studio Tools for Office System Octavio Hernández Servicios Profesionales Danysoft.
Bienvenido al evento online de Microsoft Small Business Server 2003 R2 (Volumen II) Andrés de Pereda.
Unidad 3 Lenguajes .Net y POO
Curso de java básico (scjp)
Introducción a la plataforma .NET.
Introducción a Microsoft .NET
Uso de variables de tipo referencia
Desarrollo de componentes en Visual Basic .NET
Agregar código a un formulario Web Form con Microsoft ASP.NET
Desarrollo de aplicaciones para Windows con VB.NET 2005
Lenguaje de programación Java
Multiplique su productividad con el uso de Tablas en AutoCAD®
Agenda Conceptos Claves.
Visual Basic.NET Daniel A. Seara NDSoft Consultoría y Desarrollo
Fundamentos básicos del lenguaje C#
Antonio Gámir Optimized Desktop Specialist Microsoft Ibérica.
Módulo 1: Primeros Pasos
Plataforma Microsoft.NET
Programación Orientada a Objetos en Java
CURSO DE VISUAL BASIC .NET MODO GRAFICO
Clase IV Delio Alanis.
Interacción Persona Ordenador
Módulo 14 Programación para DBA. TEMARIO Programación y DBAProgramación y DBA.NET Framework.NET Framework Arquitectura ADO.NETArquitectura ADO.NET.NET.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
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:
Abstracción de los datos y Orientación a Objeto Clase 13.
Tema 6: Clases Antonio J. Sierra.
Join us on Twitter: #AU2013 Acelerando los flujos de trabajo de simulación dinámica y animaciones a través de la nueva herramienta Joint en Autodesk® Inventor®
SCJP Sun Certified Programmer for Java 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
Web Services Daniel Seara. Fundamentos Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización.
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
Microsoft© Visual Basic . Net.
Introducción a la plataforma Microsoft.NET. Descripción ¿Qué es la plataforma Microsoft.NET? ¿Qué es el.NET Framework? ¿Cuáles son los componentes del.NET.
Arquitectura del Common Language Runtime Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft.
Control de errores visual basic
Módulo 8: Manejo de Errores y Excepciones
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
Módulo 3: Usando Variables y Arreglos
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
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,
Silverlight Pablo Michelis Gerente de Relaciones Académicas Microsoft Cono Sur.
Programación Orientada a Objetos
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Facilitador: Christian Alexander Martinez
Nombre: Germania Ruiz UNIVERSIDAD TECNOLOGICA AMERICA.
Introducción a .NET Nombre : Ethel García-Simón Matachana
Materia: Desarrollo e implementación web Carrera: Ing. Informática Docente: M.I. Rosario de Alba Domínguez Rodríguez ALUMNA: Marissa Michelle Juárez Kim.
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Taller de Inteligencia de Negocios SQL Server Integration Services SSIS Semana 2.
• SQL Server Integration Services SSIS
Módulo 4: Trabajando con Procedimientos. Descripción Crear procedimientos Uso de procedimientos Uso de funciones predefinidas Debug and Deploy Escribir.
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.
Curso Plataforma.NET Lic. Israel García Anido. Temario POO y migración desde VB a VB.net. POO y migración desde VB a VB.net. Introduccion a la Plataforma.NET.
Programación en Visual Basic
VISUAL STUDIO. Paradigmas de Programación Funcionalidad Win16 Win32 COM MFC Componentes Servicios APIs Windows 3.0.
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.
Taller de Inteligencia de Negocios SQL Server Integration Services SSIS Sesión 2.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Fundamentos básicos del lenguaje C#. Parte 1 Introducción a C#
Transcripción de la presentación:

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

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

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

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

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

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

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

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

Type System

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

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 Dim anArray() As Integer ReDim anArray(10) Dim OneDimension(10) As Integer Dim TwoDimensions(20,intVal) As Integer

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

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

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  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 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

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 Try Catch e As Exception Finally End Try

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)

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

Mejor Rendimiento Soporta “free threading” Mejor respuesta Evaluación rápida X = A And B AND (C OR 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!

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

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

“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()

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

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

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

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

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

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

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

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

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

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

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

Questions?

Duwamish Books A Sample Application for Microsoft.NET

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)

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

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

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

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

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

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

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

Shop at Duwamish Online.NET Demo: Duwamish in Action

Exploring Duwamish VB Exploring Visual Basic.NET Features in Duwamish

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.