0% encontró este documento útil (0 votos)
0 vistas21 páginas

Tutorial_Visual_Basic_Completo

Este tutorial completo de Visual Basic abarca desde los fundamentos hasta la arquitectura avanzada en .NET, incluyendo la sintaxis, programación orientada a objetos, y el uso de ADO.NET y LINQ para acceso a datos. Se estructura en módulos que cubren temas como el entorno de desarrollo, estructuras de control de flujo, y buenas prácticas de programación. El objetivo es proporcionar un conocimiento integral para dominar Visual Basic y su aplicación en el desarrollo de software moderno.

Cargado por

Juan Moreno
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas21 páginas

Tutorial_Visual_Basic_Completo

Este tutorial completo de Visual Basic abarca desde los fundamentos hasta la arquitectura avanzada en .NET, incluyendo la sintaxis, programación orientada a objetos, y el uso de ADO.NET y LINQ para acceso a datos. Se estructura en módulos que cubren temas como el entorno de desarrollo, estructuras de control de flujo, y buenas prácticas de programación. El objetivo es proporcionar un conocimiento integral para dominar Visual Basic y su aplicación en el desarrollo de software moderno.

Cargado por

Juan Moreno
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TUTORIAL COMPLETO DE VISUAL

BASIC
Guía de Aprendizaje Senior: Desde Fundamentos hasta Arquitectura
Avanzada (.NET)

MANUAL INTEGRAL DE PROGRAMACIÓN Y DESARROLLO

Objetivos del Tutorial:


• Dominar la sintaxis moderna y la evolución histórica de Visual Basic (VB6 y [Link]).
• Comprender a fondo la Programación Orientada a Objetos (POO) y el sistema de tipos del
CLR.
• Diseñar interfaces de usuario avanzadas con Windows Forms y controles de eventos.
• Implementar el acceso a datos persistentes con [Link], Entity Framework y LINQ.
• Aplicar patrones de diseño estructurados, manejo exhaustivo de excepciones y asincronía.

Autor: Asesor Senior de Desarrollo de Software

Edición: Guía Especializada de Referencia Técnica | 15 Páginas

Manual y Tutorial Resumido de Visual Basic Página 1 de 21


Índice General del Tutorial
Módulo 1: Introducción e Historia de Visual Basic Pág. 2

Módulo 2: Entorno de Desarrollo (IDE) y Estructura de un Proyecto Pág. 3

Módulo 3: Fundamentos de Sintaxis y Tipos de Datos Pág. 4

Módulo 4: Operadores y Expresiones Logico-Matemáticas Pág. 5

Módulo 5: Estructuras de Control de Flujo Pág. 6

Módulo 6: Procedimientos, Funciones y Ámbito de Variables Pág. 7

Módulo 7: Programación Orientada a Objetos (POO) I - Clases y Objetos Pág. 8

Módulo 8: Programación Orientada a Objetos (POO) II - Herencia e Interfases Pág. 9

Módulo 9: Colecciones, Manejo de Arreglos y Generics Pág. 10

Módulo 10: Tratamiento de Errores y Gestión de Excepciones Pág. 11

Módulo 11: Desarrollo de Interfaces Gráficas con Windows Forms Pág. 12

Módulo 12: Acceso a Datos con [Link] y LINQ Pág. 13

Módulo 13: Programación Asíncrona (Async / Await) y Multihilo Pág. 14

Módulo 14: Buenas Prácticas, Arquitectura y Proyecto Integrador Pág. 15

Módulo 1: Introducción e Historia de Visual Basic


Visual Basic (VB) es uno de los lenguajes de programación más influyentes en la historia del desarrollo de software
para plataformas Microsoft. Introducido originalmente en 1991 por Alan Cooper y Microsoft, revolucionó el
mercado al permitir el desarrollo rápido de aplicaciones (RAD - Rapid Application Development) mediante el diseño
visual de interfaces de usuario asociadas a un motor conducido por eventos.

Evolución Histórica: VB6 vs. [Link]


Es fundamental distinguir entre las dos grandes Eras de Visual Basic:

• Visual Basic Tradicional (VB1 a VB6): Basado en arquitectura COM (Component Object Model). Su última
versión, VB6 (1998), fue masivamente popular pero carecía de soporte nativo completo para herencia
orientada a objetos, hilos de ejecución múltiples reales y ejecución administrada.
• Visual Basic .NET ([Link]): Rediseñado desde cero en 2002 para ejecutarse sobre el Common Language
Runtime (CLR) del ecosistema .NET. Se convirtió en un lenguaje Orientado a Objetos de primer nivel, en
igualdad de condiciones con C#.

Nota de Arquitectura Senior:


Aunque VB6 aún subsiste en sistemas legados empresariales, todo el desarrollo moderno con Visual Basic se
realiza sobre la plataforma .NET (.NET Core / .NET 6+). Las habilidades aprendidas en [Link] son 100% transferibles
a C#, ya que ambos compilan al mismo Lenguaje Intermedio (CIL).

Manual y Tutorial Resumido de Visual Basic Página 2 de 21


Módulo 2: Entorno de Desarrollo (IDE) y Estructura de Proyecto
Para trabajar eficientemente con Visual Basic .NET, la herramienta estándar de la industria es Microsoft Visual
Studio (disponible en ediciones Community, Professional y Enterprise).

Componentes Clave del IDE Visual Studio


• Explorador de Soluciones (Solution Explorer): Muestra la jerarquía del proyecto, carpetas, archivos de código
(.vb), referencias y configuraciones del ensamblado.
• Diseñador Form (Form Designer): Lienzo visual interactivo para arrastrar componentes como botones, cajas
de texto y etiquetas.
• Cuadro de Herramientas (Toolbox): Panel que contiene los controles WinForms o WPF listos para ser
utilizados.
• Ventana de Propiedades: Permite configurar las características visuales y de comportamiento de los
elementos seleccionados (Name, Text, BackColor, etc.).
• Ventana de Salida y Depuración: Muestra errores de compilación, advertencias y mensajes de diagnóstico en
tiempo de ejecución.

Anatomía de una Solución en Visual Basic


Un proyecto en Visual Basic se compone de varios elementos clave organizados de manera estructurada:

Imports System
Imports [Link]

' Los espacios de nombres organizan jerárquicamente las clases


Namespace [Link]

''' <summary>
''' Clase principal de punto de entrada
''' </summary>
Module Program

Sub Main(args As String())


[Link]("Iniciando Aplicación Visual Basic...")
' Lógica inicial
End Sub

End Module

End Namespace

El Proceso de Compilación en .NET


Cuando compilas un programa en Visual Basic .NET:

1. El compilador de VB ([Link]) traduce el código fuente a Common Intermediate Language


(CIL).
2. El resultado se almacena en un ejecutable (.exe) o biblioteca (.dll) denominado
Assembly junto con sus metadatos.
3. Al ejecutarse, el motor CLR (Common Language Runtime) compila el CIL a código máquina
nativo mediante el compilador JIT (Just-In-Time).

Manual y Tutorial Resumido de Visual Basic Página 3 de 21


Módulo 3: Fundamentos de Sintaxis y Tipos de Datos
Visual Basic se caracteriza por una sintaxis legible, cercana al lenguaje natural, que no
utiliza llaves ({}) para delimitar bloques, ni punto y coma (;) al final de las
sentencias, sino palabras clave de cierre (End If, End Sub, Next).

Declaración de Variables y Constantes


Las variables se declaran mediante la palabra clave Dim (Dimension). Se pueden acompañar
de modificadores de acceso como Private, Public, o Protected dentro de clases.

' Declaración con inferencia o tipo explícito


Dim edad As Integer = 30
Dim nombre As String = "Carlos Pérez"
Dim esActivo As Boolean = True

' Declaración de constantes


Const PI As Double = 3.1415926535
Const TASA_IVA As Decimal = 0.21D

Tipos de Datos Primitivos en el CLR

Tipo VB Tipo CLR (.NET) Tamaño Rango de Valores / Descripción

Byte [Link] 1 Byte 0 a 255 (Sin signo)

Integer System.Int32 4 Bytes -2,147,483,648 a 2,147,483,647

Long System.Int64 8 Bytes Enteros de gran precisión

Single [Link] 4 Bytes Coma flotante de precisión simple

Double [Link] 8 Bytes Coma flotante de doble precisión

Decimal [Link] 16 Bytes Alta precisión financiera (28-29 dígitos decimales)

Boolean [Link] 2 Bytes True o False

Char [Link] 2 Bytes Un solo carácter Unicode

String [Link] Variable Cadena inmutable de caracteres Unicode

DateTime [Link] 8 Bytes Representa fecha y hora (0:00:00 01/01/0001 a 31/12/9999)

Option Explicit y Option Strict


Buenas prácticas fundamentales recomendadas por desarrolladores Senior:

Option Explicit On ' Obliga a declarar explícitamente todas las variables


Option Strict On ' Prohíbe conversiones implícitas estrechantes con pérdida de datos

Manual y Tutorial Resumido de Visual Basic Página 4 de 21


Módulo 4: Operadores y Expresiones Logico-Matemáticas
Los operadores permiten manipular variables y datos para realizar operaciones
matemáticas, comparaciones lógicas y concatenaciones.

1. Operadores Aritméticos

Operador Descripción Ejemplo Resultado

+ Suma 10 + 5 15

- Resta 10 - 5 5

* Multiplicación 10 * 5 50

/ División Real (Retorna Double) 10 / 4 2.5

\ División Entera (Trunca decimales) 10 \ 4 2

Mod Módulo (Resto de la división) 10 Mod 3 1

^ Exponenciación 2 ^ 3 8

2. Operadores de Comparación y Relacionales


Evalúan condiciones devolviendo un valor booleano (True/False):

• = (Igual a) — Atención: Se usa tanto para asignación como para comparación.


• <> (Diferente de)
• > , < (Mayor que, Menor que)
• >= , <= (Mayor o igual, Menor o igual)

3. Operadores Lógicos y Cortocircuito

' Operadores clásicos (Evalúan siempre ambos lados)


Dim r1 As Boolean = (a > 5) And (b < 10)
Dim r2 As Boolean = (a > 5) Or (b < 10)

' Operadores de Cortocircuito (Recomendados en rendimiento y seguridad)


' AndAlso: Si la primera condición es False, NO evalúa la segunda
If cliente IsNot Nothing AndAlso [Link] Then
' Evita la excepción NullReferenceException
End If

' OrElse: Si la primera condición es True, NO evalúa la segunda


If esAdmin OrElse VerificarPermisoEspecial() Then
' Omitirá la llamada al método si esAdmin es True
End If

4. Operadores de Cadena
Se recomienda utilizar el operador & para concatenar cadenas de texto en lugar de + para
evitar ambigüedades tipo-numéricas.

Dim texto As String = "Hola " & nombreCliente & ", su saldo es: " & [Link]("C")

Manual y Tutorial Resumido de Visual Basic Página 5 de 21


Manual y Tutorial Resumido de Visual Basic Página 6 de 21
Módulo 5: Estructuras de Control de Flujo
Las estructuras de control determinan el camino de ejecución del código según la
evaluación de condiciones lógicas o iteraciones sobre conjuntos de datos.

Estructuras Condicionales
1. If ... ElseIf ... Else

Dim nota As Integer = 85

If nota >= 90 Then


[Link]("Calificación: Sobresaliente")
ElseIf nota >= 70 Then
[Link]("Calificación: Notable")
ElseIf nota >= 50 Then
[Link]("Calificación: Aprobado")
Else
[Link]("Calificación: Reprobado")
End If

2. Select Case

Dim diaSemana As Integer = 3

Select Case diaSemana


Case 1
[Link]("Lunes")
Case 2 To 5
[Link]("Día Laborable (Martes a Viernes)")
Case 6, 7
[Link]("Fin de semana")
Case Else
[Link]("Día no válido")
End Select

Estructuras Iterativas (Bucles)


1. Bucle For ... Next

' Bucle incremental con paso personalizado


For i As Integer = 1 To 10 Step 2
[Link]("Iteración i: " & i)
Next

2. Bucle For Each ... Next

Dim frutas() As String = {"Manzana", "Banana", "Cereza"}


For Each fruta As String In frutas
[Link]("Fruta: " & fruta)
Next

3. Bucles While y Do Loop

Manual y Tutorial Resumido de Visual Basic Página 7 de 21


Dim contador As Integer = 0

' Pre-condición
While contador < 5
contador += 1
End While

' Post-condición (se ejecuta al menos una vez)


Do
contador -= 1
Loop Until contador = 0

Manual y Tutorial Resumido de Visual Basic Página 8 de 21


Módulo 6: Procedimientos, Funciones y Ámbito
La modularización mediante rutinas evita la duplicación de código (principio DRY: Don't
Repeat Yourself) y mejora la mantenibilidad.

Diferencia entre Sub y Function


• Sub (Subrutina): Ejecuta un conjunto de instrucciones sin retornar un valor directo.
• Function (Función): Ejecuta un procesamiento y debe retornar obligatoriamente un valor
de un tipo especificado mediante la instrucción Return.

''' <summary>
''' Subrutina de registro de eventos
''' </summary>
Public Sub RegistrarLog(mensaje As String)
[Link]("[" & [Link]() & "] " & mensaje)
End Sub

''' <summary>
''' Función matemática para calcular el impuesto
''' </summary>
Public Function CalcularTotalConImpuesto(montoBase As Decimal, tasa As Decimal) As Decimal
Dim impuesto As Decimal = montoBase * tasa
Return montoBase + impuesto
End Function

Paso de Parámetros: ByVal vs. ByRef

Atención al Paso de Parámetros:


En [Link], el comportamiento por defecto es ByVal. Es una práctica recomendada explicitar
siempre el modo de transferencia para evitar efectos secundarios imprevistos.

• ByVal (Por Valor): Se pasa una copia del valor. Las modificaciones al parámetro dentro
de la función no alteran la variable original.
• ByRef (Por Referencia): Se pasa la dirección de memoria de la variable original. Los
cambios dentro del procedimiento modifican directamente la variable externa.

Public Sub ModificarValores(ByVal x As Integer, ByRef y As Integer)


x = x * 2 ' No altera la variable externa pasadora
y = y * 2 ' SÍ altera la variable externa pasadora
End Sub

Parámetros Opcionales y Sobrecarga de Métodos

' Parámetros Opcionales con valor por defecto


Public Sub ExportarReporte(ruta As String, Optional incluirEncabezado As Boolean = True)
' Lógica de exportación
End Sub

' Sobrecarga de Funciones (Mismo nombre, diferente firma de parámetros)


Overloads Public Function BuscarCliente(id As Integer) As String
Return "Cliente ID: " & id
End Function

Manual y Tutorial Resumido de Visual Basic Página 9 de 21


Overloads Public Function BuscarCliente(email As String) As String
Return "Cliente Email: " & email
End Function

Manual y Tutorial Resumido de Visual Basic Página 10 de 21


Módulo 7: Programación Orientada a Objetos (POO) I - Clases
y Objetos
Visual Basic es un lenguaje totalmente Orientado a Objetos en .NET. Una Clase es el plano
o plantilla a partir del cual se instancian los Objetos en memoria.

Encapsulamiento, Propiedades y Modificadores de Acceso


El encapsulamiento protege los datos internos ocultando el estado del objeto y
exponiéndolo únicamente a través de propiedades o métodos validados.

Public Class CuentaBancaria

' Campos Privados (Estado interno)


Private _numeroCuenta As String
Private _saldo As Decimal

' Constructor de la Clase


Public Sub New(numeroCuenta As String, saldoInicial As Decimal)
Me._numeroCuenta = numeroCuenta
If saldoInicial >= 0 Then
Me._saldo = saldoInicial
Else
Throw New ArgumentException("El saldo inicial no puede ser negativo.")
End If
End Sub

' Propiedad completa con Get y Set


Public Property NumeroCuenta() As String
Get
Return _numeroCuenta
End Get
Private Set(value As String)
_numeroCuenta = value
End Set
End Property

' Propiedad Auto-implementada (Sintaxis simplificada moderna)


Public Property Titular As String

' Método público con lógica de negocio


Public Sub Depositar(monto As Decimal)
If monto > 0 Then
_saldo += monto
End If
End Sub

Public ReadOnly Property SaldoActual() As Decimal


Get
Return _saldo
End Get
End Property

End Class

Instanciación y Uso de Objetos

Manual y Tutorial Resumido de Visual Basic Página 11 de 21


Dim miCuenta As New CuentaBancaria("ES12-3456-7890", 1000.0D)
[Link] = "Juan Ramón"
[Link](500.0D)

[Link]("Saldo Final: " & [Link]) ' Salida: 1500

Manual y Tutorial Resumido de Visual Basic Página 12 de 21


Módulo 8: Programación Orientada a Objetos (POO) II -
Herencia e Interfases

Herencia de Clases
La herencia permite crear nuevas clases especializadas basándose en clases existentes,
promoviendo la reutilización de código y el polimorfismo. En [Link] se utiliza la palabra
reservada Inherits.

' Clase Base / Padre


Public Class Empleado
Public Property Nombre As String
Public Property SalarioBase As Decimal

' Overridable permite que el método sea sobrescrito en clases derivadas


Public Overridable Function CalcularSalarioNeto() As Decimal
Return SalarioBase * 0.85D
End Function
End Class

' Clase Derivada / Hija


Public Class Gerente
Inherits Empleado

Public Property BonoGestion As Decimal

' Overrides implementa la versión específica para Gerente


Public Overrides Function CalcularSalarioNeto() As Decimal
Return [Link]() + BonoGestion
End Function
End Class

Interfaces y Abstracción
Una Interface define un contrato estricto de métodos y propiedades sin proporcionar
implementación. Una clase puede implementar múltiples interfaces mediante Implements.

Public Interface IImprimible


Sub ImprimirDocumento()
End Interface

Public Interface IExportable


Function ExportarJSON() As String
End Interface

Public Class Factura


Implements IImprimible, IExportable

Public Sub Imprimir() Implements [Link]


[Link]("Imprimiendo factura física...")
End Sub

Public Function Exportar() As String Implements [Link]


Return "{'tipo': 'factura', 'total': 1500}"
End Function
End Class

Manual y Tutorial Resumido de Visual Basic Página 13 de 21


Módulo 9: Colecciones, Manejo de Arreglos y Generics
La gestión estructurada de conjuntos de elementos es vital en aplicaciones empresariales.

1. Arreglos Unidimensionales y Multidimensionales (Arrays)

' Arreglo con tamaño fijo inicial (Índice base 0)


Dim numeros(4) As Integer ' Contiene 5 elementos (0 a 4)
numeros(0) = 10
numeros(1) = 20

' Arreglo multidimensional (Matriz 2x3)


Dim matriz(1, 2) As Double
matriz(0, 0) = 5.5

' Redimensionar preservando los datos existentes


ReDim Preserve numeros(9)

2. Colecciones Genéricas ([Link])


A diferencia de los arreglos estáticos, las colecciones genéricas son dinámicas y
proporcionan seguridad de tipo estricta en tiempo de compilación.

Imports [Link]

' List(Of T): Lista dinámica equivalente a un arreglo redimensionable


Dim listaNombres As New List(Of String)()
[Link]("Ana")
[Link]("Carlos")
[Link]("Ana")

' Dictionary(Of TKey, TValue): Estructura Clave-Valor de alta velocidad


Dim diccionarioClientes As New Dictionary(Of Integer, String)()
[Link](101, "Empresa A")
[Link](102, "Empresa B")

If [Link](101) Then
Dim razonSocial As String = diccionarioClientes(101)
End If

Comparativa de Colecciones Básicas

Estructura Acceso Tamaño Uso Recomendado

Array Por Índice arr(i) Fijo Secuencias estáticas de tamaño conocido.

Listas de elementos generales con


List(Of T) Por Índice list(i) Dinámico
iteraciones constantes.

Dictionary(Of K, Por Clave Unica Búsquedas ultra rápidas asociando clave e


Dinámico
V) dict(key) instancia.

Manual y Tutorial Resumido de Visual Basic Página 14 de 21


Módulo 10: Tratamiento de Errores y Gestión de Excepciones
El manejo estructurado de excepciones previene el colapso abrupto de las aplicaciones y
permite la recuperación limpia frente a fallos en tiempo de ejecución (fallos de red,
archivos no encontrados, divisiones por cero).

Estructura Try ... Catch ... Finally

Public Sub LeerArchivoTexto(rutaArchivo As String)


Dim lector As [Link] = Nothing

Try
lector = New [Link](rutaArchivo)
Dim contenido As String = [Link]()
[Link](contenido)

Catch exFnf As [Link]


' Captura específica cuando el archivo no existe
[Link]("Error: El archivo especificado no se encontró.")

Catch exIo As [Link]


' Captura de errores generales de entrada/salida
[Link]("Error de lectura/escritura: " & [Link])

Catch ex As Exception
' Captura genérica para cualquier otra excepción imprevista
[Link]("Error crítico no controlado: " & [Link]())

Finally
' El bloque Finally SE EJECUTA SIEMPRE (haya o no excepción)
' Ideal para liberar recursos del sistema (Streams, Conexiones DB)
If lector IsNot Nothing Then
[Link]()
End If
End Try
End Sub

Lanzamiento de Excepciones Personalizadas (Throw)

Public Sub ValidarEdadUsuario(edad As Integer)


If edad < 18 Then
Throw New ArgumentOutOfRangeException("edad", "El usuario debe ser mayor de edad.")
End If
End Sub

Lógica Antigua (A Evitar):


Evite utilizar las sentencias arcaicas de VB6 como On Error GoTo 0 o On Error Resume Next.
La captura estructurada mediante Try...Catch garantiza un código profesional, robusto y
fácil de depurar.

Manual y Tutorial Resumido de Visual Basic Página 15 de 21


Módulo 11: Desarrollo de Interfaces Gráficas con Windows
Forms
Windows Forms (WinForms) es la tecnología RAD clásica de .NET para construir interfaces
visuales de escritorio compuestas por formularios, controles y manejadores de eventos.

Manejo de Eventos y Ciclo de Vida del Formulario


Un Evento es una acción o señal emitida por el sistema o el usuario (un clic de ratón,
pulsación de tecla, carga del formulario) ante la cual la aplicación reacciona ejecutando
un controlador (Event Handler).

Public Class FormLogin

' Evento desencadenado al cargar el formulario en memoria


Private Sub FormLogin_Load(sender As Object, e As EventArgs) Handles [Link]
[Link]()
[Link] = "Ingrese sus credenciales."
End Sub

' Evento Click del Botón de Ingreso


Private Sub btnIngresar_Click(sender As Object, e As EventArgs) Handles [Link]
Dim usr As String = [Link]()
Dim pwd As String = [Link]

If [Link](usr) OrElse [Link](pwd) Then


[Link]("Debe completar todos los campos.", "Validación",
[Link], [Link])
Exit Sub
End If

If ValidarCredenciales(usr, pwd) Then


[Link]("Acceso concedido.", "Éxito", [Link],
[Link])
[Link] = [Link]
[Link]()
Else
[Link] = "Usuario o clave incorrectos."
End If
End Sub

End Class

Controles WinForms Más Utilizados


• TextBox: Entrada de texto plano o contraseñas (PasswordChar).
• Button: Desencadena acciones principales de formulario.
• DataGridView: Tabla avanzada para renderizado y edición de colecciones de datos.
• ComboBox / ListBox: Listas desplegables de selección simple o múltiple.
• CheckBox / RadioButton: Opciones booleanas y selecciones excluyentes.

Manual y Tutorial Resumido de Visual Basic Página 16 de 21


Módulo 12: Acceso a Datos con [Link] y LINQ

1. [Link] Conectado
[Link] provee acceso directo a bases de datos relacionales (SQL Server, MySQL, Oracle)
mediante proveedores de datos.

Imports [Link]

Public Function ObtenerNombreCliente(ByVal clienteId As Integer) As String


Dim connString As String = "Server=localhost;Database=EmpresaDB;Trusted_Connection=True;"
Dim sql As String = "SELECT Nombre FROM Clientes WHERE ClienteId = @id"
Dim nombre As String = ""

' La instrucción Using asegura el cierre automático de la conexión al finalizar


Using conn As New SqlConnection(connString)
Using cmd As New SqlCommand(sql, conn)
' Uso de parámetros para PREVENIR INYECCIÓN SQL
[Link]("@id", clienteId)

[Link]()
Dim resultado = [Link]()
If resultado IsNot Nothing Then
nombre = [Link]()
End If
End Using
End Using

Return nombre
End Function

2. Consultas Declarativas con LINQ (Language Integrated Query)


LINQ permite realizar consultas de datos fuertemente tipadas sobre colecciones en
memoria, bases de datos o documentos XML utilizando una sintaxis similar a SQL
directamente integrada en Visual Basic.

Dim empleados As New List(Of Empleado)()


' (Llenado de lista con datos...)

' Consulta LINQ en sintaxis de expresión


Dim empleadosDestacados = From emp In empleados
Where [Link] > 3000.0D
Order By [Link] Ascending
Select [Link], [Link]

For Each item In empleadosDestacados


[Link]("Empleado: " & [Link] & " | Salario: " & [Link])
Next

Manual y Tutorial Resumido de Visual Basic Página 17 de 21


Módulo 13: Programación Asíncrona (Async / Await) y
Multihilo
En aplicaciones modernas, la asincronía es indispensable para mantener receptiva la
interfaz de usuario durante operaciones de larga duración (descarga de archivos,
consultas masivas a bases de datos o servicios Web).

El Patrón Async / Await


Visual Basic incluye soporte de primera clase para el modelo de programación asíncrona
basado en tareas (TAP) mediante las palabras clave Async y Await.

Imports [Link]
Imports [Link]

Public Class ServicioDescargas

''' <summary>
''' Método asíncrono que no bloquea el hilo principal UI
''' </summary>
Public Async Function DescargarContenidoWebAsync(url As String) As Task(Of String)
Using cliente As New HttpClient()
' Await libera el hilo de ejecución mientras espera la respuesta de red
Dim respuesta As String = Await [Link](url)
Return respuesta
End Using
End Function

End Class

Uso en Eventos de Formulario

Private Async Sub btnDescargar_Click(sender As Object, e As EventArgs) Handles


[Link]
[Link] = False
[Link] = "Descargando datos, por favor espere..."

Try
Dim servicio As New ServicioDescargas()
Dim html As String = Await [Link]("https://
[Link]")
[Link] = html
[Link] = "Completado con éxito."
Catch ex As Exception
[Link] = "Error en la descarga: " & [Link]
Finally
[Link] = True
End Try
End Sub

Regla de Oro Asíncrona:


Utilice siempre Async Function ... As Task o Task(Of T). Reserve Async Sub ÚNICAMENTE para
manejadores de eventos (como clics de botones), ya que los métodos Async Sub no pueden ser

Manual y Tutorial Resumido de Visual Basic Página 18 de 21


esperados por el llamante ni sus excepciones capturadas de forma transparente fuera de su
ámbito.

Manual y Tutorial Resumido de Visual Basic Página 19 de 21


Módulo 14: Buenas Prácticas, Arquitectura y Proyecto
Integrador
Para culminar este tutorial resumido, revisaremos las reglas esenciales de arquitectura
de software para escribir código mantenible y un ejemplo completo integrador.

Reglas de Oro del Desarrollador Senior de Visual Basic


1. Mantenga siempre Option Strict On: Garantiza mayor velocidad de ejecución y elimina
errores por conversiones de tipos en tiempo de ejecución.
2. Separación de Responsabilidades (N-Capas): Nunca mezcle lógica de acceso a datos o
reglas de negocio dentro del código del formulario (Code-Behind).
3. Gestión Rigurosa de Recursos: Utilice bloques Using para todo objeto que implemente
IDisposable (conexiones DB, streams, mapas de bits).
4. Convenciones de Nomenclatura:
◦ PascalCase para Clases, Métodos y Propiedades (CuentaCliente, ObtenerSaldo).
◦ camelCase para variables locales y parámetros (montoTotal, idUsuario).
◦ Prefijo _ camelCase para campos privados de clase (_saldoActual).

Ejemplo Integrador: Calculadora de Descuentos Empresariales

''' <summary>
''' Demostración de arquitectura limpia en una sola unidad funcional
''' </summary>
Public Interface ICalculadoraDescuento
Function AplicarDescuento(monto As Decimal) As Decimal
End Interface

Public Class DescuentoVIP


Implements ICalculadoraDescuento

Public Function Aplicar(monto As Decimal) As Decimal Implements


[Link]
If monto > 1000.0D Then
Return monto * 0.8D ' 20% Descuento
End If
Return monto * 0.9D ' 10% Descuento
End Function
End Class

Public Module ModuloPrincipal


Public Sub Main()
[Link]("=== SISTEMA DE CÁLCULO DE DESCUENTOS ===")

Try
Dim servicio As ICalculadoraDescuento = New DescuentoVIP()
Dim montoInicial As Decimal = 1500.0D
Dim montoFinal As Decimal = [Link](montoInicial)

[Link]("Monto Original: " & [Link]("C"))


[Link]("Monto con Descuento: " & [Link]("C"))

Catch ex As Exception
[Link]("Error en ejecución: " & [Link])
End Try

Manual y Tutorial Resumido de Visual Basic Página 20 de 21


End Sub
End Module

FIN DEL TUTORIAL RESUMIDO DE VISUAL BASIC


¡Felicidades! Ha completado la guía técnica integral de Visual Basic para entornos de desarrollo
.NET moderno.

Manual y Tutorial Resumido de Visual Basic Página 21 de 21

También podría gustarte