Visual Basic (.NET)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Lenguaje de programación informática orientado a objetos

Visual Basic (VB), originalmente llamado Visual Basic.NET (VB.NET), es un lenguaje de programación orientado a objetos de múltiples paradigmas, implementado en.NET, Mono y.NET Framework. Microsoft lanzó VB.NET en 2002 como sucesor de su lenguaje Visual Basic original, cuya última versión fue Visual Basic 6.0. Aunque el ".NET" parte del nombre se eliminó en 2005, este artículo usa "Visual Basic [.NET]" para referirse a todos los lenguajes Visual Basic lanzados desde 2002, para distinguirlos del Visual Basic clásico. Junto con C# y F#, es uno de los tres principales lenguajes dirigidos al ecosistema.NET. Microsoft actualizó su estrategia de lenguaje VB el 6 de febrero de 2023 indicando que VB es un lenguaje estable ahora y Microsoft seguirá manteniéndolo.

El entorno de desarrollo integrado (IDE) de Microsoft para desarrollar en Visual Basic es Visual Studio. La mayoría de las ediciones de Visual Studio son comerciales; las únicas excepciones son Visual Studio Express y Visual Studio Community, que son software gratuito. Además, el SDK de.NET Framework incluye un compilador de línea de comandos gratuito llamado vbc.exe. Mono también incluye un compilador VB.NET de línea de comandos.

Visual Basic se usa a menudo junto con la biblioteca GUI de Windows Forms para crear aplicaciones de escritorio para Windows. La programación para Windows Forms con Visual Basic implica arrastrar y soltar controles en un formulario utilizando un diseñador de GUI y escribir el código correspondiente para cada control.

Utilizar para hacer programas GUI

La biblioteca de Windows Forms se usa más comúnmente para crear interfaces GUI en Visual Basic. Todos los elementos visuales de la biblioteca de clases de Windows Forms se derivan de la clase Control. Esto proporciona la funcionalidad mínima de un elemento de la interfaz de usuario, como ubicación, tamaño, color, fuente, texto, así como eventos comunes como hacer clic y arrastrar/soltar. La clase Control también tiene soporte de acoplamiento para permitir que un control reorganice su posición debajo de su padre.

Los formularios normalmente se diseñan en el IDE de Visual Studio. En Visual Studio, los formularios se crean utilizando técnicas de arrastrar y soltar. Se utiliza una herramienta para colocar controles (p. ej., cuadros de texto, botones, etc.) en el formulario (ventana). Los controles tienen atributos y controladores de eventos asociados con ellos. Los valores predeterminados se proporcionan cuando se crea el control, pero el programador puede cambiarlos. Muchos valores de atributos se pueden modificar durante el tiempo de ejecución según las acciones del usuario o los cambios en el entorno, lo que proporciona una aplicación dinámica. Por ejemplo, se puede insertar código en el controlador de eventos de cambio de tamaño del formulario para cambiar la posición de un control de modo que permanezca centrado en el formulario, se expanda para llenar el formulario, etc. Al insertar código en el controlador de eventos para presionar una tecla en un cuadro de texto, el programa puede traducir automáticamente el caso del texto que se ingresa, o incluso evitar que se inserten ciertos caracteres.

Sintaxis

Visual Basic usa sentencias para especificar acciones. La declaración más común es una declaración de expresión, que consta de una expresión para evaluar, en una sola línea. Como parte de esa evaluación, se pueden llamar funciones o subrutinas y se pueden asignar nuevos valores a las variables. Para modificar la ejecución secuencial normal de instrucciones, Visual Basic proporciona varias instrucciones de flujo de control identificadas por palabras clave reservadas. La programación estructurada es compatible con varias construcciones, incluidas dos construcciones de ejecución condicional (If... Then... Else... End If y Select Case... Case... End Select) y tres construcciones de ejecución iterativa (bucle) (Do... Loop, For... To y For Each). La declaración For... To tiene secciones separadas de inicialización y prueba, las cuales deben estar presentes. (Consulte los ejemplos a continuación). La instrucción For Each recorre cada valor de una lista.

Además, en Visual Basic:

  • No existe una forma unificada de definir bloques de declaraciones. En su lugar, ciertas palabras clave, como "Si... Entonces" o "Sub" se interpretan como principiantes de sub-blocks de código y tienen palabras clave de terminación iguales como "End If" o "End Sub".
  • Las declaraciones se terminan con un colon (":") o con el final de la línea. Las declaraciones de múltiples líneas en Visual Basic están habilitadas con " _" al final de cada línea. La necesidad del carácter de continuación del subrayado se removió en gran medida en la versión 10 y versiones posteriores.
  • El signo igual ("=") se utiliza tanto en asignar valores a variables como en comparación.
  • Los corchetes redondos (padres) se utilizan con arrays, tanto para declararlos como para obtener un valor en un índice dado en uno de ellos. Visual Basic utiliza soportes redondos para definir los parámetros de las subrutinas o funciones.
  • Una sola marca de citas (') o la palabra clave REM, colocado al principio de una línea o después de cualquier número de caracteres de espacio o pestaña al principio de una línea, o después de otro código en una línea, indica que la línea (remanente de la) es un comentario.

Ejemplo sencillo

El siguiente es un programa de Visual Basic muy simple, una versión del clásico "¡Hola, mundo!" ejemplo creado como una aplicación de consola:

Módulo Módulo1 Subsidio Main() ' El clásico programa de demostración "¡Hola, Mundo!" Consola.WriteLine()"¡Hola, Mundo!") Final SubsidioFinal Módulo

Imprime "¡Hola, mundo!" en una ventana de línea de comandos. Cada línea tiene un propósito específico, de la siguiente manera:

Módulo Módulo1

Esta es una definición de módulo. Los módulos son una división del código que puede contener cualquier tipo de objeto, como constantes o variables, funciones, métodos o clases, pero no se pueden instanciar como objetos como clases y no pueden heredar de otros módulos. Los módulos sirven como contenedores de código al que se puede hacer referencia desde otras partes de un programa.
Es una práctica común que un módulo y el archivo de código que lo contiene tengan el mismo nombre. Sin embargo, esto no es obligatorio, ya que un solo archivo de código puede contener más de un módulo y/o clase.

Subsidio Main()

Esta línea define una subrutina llamada "Principal". "Principal" es el punto de entrada, donde el programa comienza a ejecutarse.

Consola.WriteLine()"¡Hola, mundo!")

Esta línea realiza la tarea real de escribir la salida. Console es un objeto del sistema que representa una interfaz de línea de comandos (también conocida como "consola") y otorga acceso programático a las secuencias estándar del sistema operativo. El programa llama al método Console WriteLine, que hace que la cadena que se le pasa se muestre en la consola.

En lugar de Console.WriteLine, se podría usar MsgBox, que imprime el mensaje en un cuadro de diálogo en lugar de una ventana de línea de comandos.

Ejemplo complejo

Este fragmento de código envía el Triángulo de Floyd a la consola:

Importaciones Sistema.ConsolaMódulo Programa Subsidio Main() Dim filas As Integer Validación de entrada. Do Hasta luego Integer.TryParse()ReadLine()"Introduzca un valor para cuántas filas se mostrarán: " " vbcrlf), filas) Y también filas >= 1 WriteLine()"El rango adecuado es 1 y {0}", Integer.MaxValue) Loop  Salida del Triángulo de Floyd Dim corriente As Integer = 1 Dim fila As Integer  Dim columna As Integer Para fila = 1 A filas Para columna = 1 A fila Escriba()"{0,-2} ", corriente) corriente += 1 Siguiente WriteLine() Siguiente Final Subsidio '' Como Consola. ReadLine pero toma una cuerda rápida. ''' Función ReadLine()Facultativo pronta As String = Nada) As String Si pronta No Nada Entonces... Escriba()pronta) Final Si Regreso Consola.ReadLine() Final FunciónFinal Módulo

Comparativa con el clásico Visual Basic

Si Visual Basic.NET debe ser considerado como una versión más de Visual Basic o como un lenguaje completamente diferente es un tema de debate. Hay nuevas incorporaciones para admitir nuevas características, como el manejo estructurado de excepciones y expresiones en cortocircuito. Además, se produjeron dos cambios importantes en el tipo de datos con el paso a VB.NET: en comparación con Visual Basic 6, el tipo de datos Integer se duplicó en longitud de 16 bits a 32 bits, y el tipo de datos Integer se duplicó en longitud de 16 bits a 32 bits, y Largo se ha duplicado en longitud de 32 bits a 64 bits. Esto es cierto para todas las versiones de VB.NET. Un entero de 16 bits en todas las versiones de VB.NET ahora se conoce como Short. De manera similar, el editor de Windows Forms es muy similar en estilo y función al editor de formularios de Visual Basic.

Lo que ha cambiado significativamente es la semántica, desde un lenguaje de programación basado en objetos que se ejecuta en un motor determinista con recuento de referencias basado en COM hasta un lenguaje totalmente orientado a objetos respaldado por el.NET Framework, que consiste en una combinación de Common Language Runtime (una máquina virtual que usa recolección de basura generacional y un motor de compilación justo a tiempo) y una biblioteca de clases mucho más grande. La mayor amplitud de este último también es un problema con el que los desarrolladores de VB tienen que lidiar cuando llegan al lenguaje, aunque esto se soluciona de alguna manera con la función My en Visual Studio 2005.

Los cambios han alterado muchas suposiciones subyacentes sobre el "derecho" qué hacer con respecto al rendimiento y la mantenibilidad. Algunas funciones y bibliotecas ya no existen; hay otras disponibles, pero no tan eficientes como las alternativas "nativas".NET. Incluso si se compilan, la mayoría de las aplicaciones de Visual Basic 6 convertidas requerirán cierto nivel de refactorización para aprovechar al máximo el nuevo lenguaje. La documentación está disponible para cubrir los cambios en la sintaxis, la depuración de aplicaciones, la implementación y la terminología.

Ejemplos comparativos

Los siguientes ejemplos simples comparan la sintaxis de VB y VB.NET. Suponen que el desarrollador ha creado un formulario, ha colocado un botón en él y ha asociado las subrutinas demostradas en cada ejemplo con el controlador de eventos de clic del botón mencionado. Cada ejemplo crea un mensaje "Hello, World" cuadro de mensaje después de hacer clic en el botón del formulario.

Visual Basic 6:

Privado Subsidio Command1_Click() MsgBox "Hola, Mundo"Final Subsidio

VB.NET (se puede usar la clase MsgBox o MessageBox):

Privado Subsidio Button1_Click()sender As objeto, e As EventArgs) Manijas Button1.Haga clic MsgBox()"Hola, Mundo")Final Subsidio
  • Ambos Visual Basic 6 y Visual Basic.NET generan automáticamente el Sub y End Sub declaraciones cuando el botón correspondiente se hace doble clic en la vista del diseño. Visual Basic.NET también generará lo necesario Class y End Class declaraciones. El desarrollador sólo necesita añadir la declaración para mostrar el cuadro de mensaje "Hola, Mundo".
  • Todas las llamadas de procedimiento deben hacerse con paréntesis en VB. NET, mientras que en Visual Basic 6 había diferentes convenios para funciones (los padres requeridos) y subs (no se permitían paréntesis, a menos que se llamara usando la palabra clave Call).
  • Los nombres Command1 y Button1 no son obligatorios. Sin embargo, estos son nombres predeterminados para un botón de comando en Visual Basic 6 y VB. NET respectivamente.
  • En VB.NET, Handles palabra clave se utiliza para hacer el sub Button1_Click un manejador para el Click evento del objeto Button1. En Visual Basic 6, el manipulador de eventos debe tener un nombre específico que consiste en el nombre del objeto ("Command1"), un subrayado ("_"), y el nombre del evento ("Click", por lo tanto "Command1_Click").
  • Hay una función llamada MessageBox.Show en el Microsoft.VisualBasic espacio de nombre que se puede utilizar (en lugar de MsgBox) similarmente a la función correspondiente en Visual Basic 6. Hay una controversia acerca de qué función utilizar como una mejor práctica (no sólo restringida a mostrar cajas de mensajes sino también con respecto a otras características de la Microsoft.VisualBasic namespace). Algunos programadores prefieren hacer cosas "la manera.NET", ya que las clases Framework tienen más características y son menos específicas para el lenguaje. Otros argumentan que el uso de características específicas de lenguaje hace que el código sea más legible (por ejemplo, usando int (C#) or Integer (VB.NET) en lugar de System.Int32).
  • In Visual Basic 2008, the inclusion of ByVal sender as Object, ByVal e as EventArgs se ha convertido en opcional.

El siguiente ejemplo demuestra una diferencia entre Visual Basic 6 y VB.NET. Ambos ejemplos cierran la ventana activa.

Visual Basic 6:

Subsidio cmdClose_Click() Descarga MeFinal Subsidio

VB.NET:

Subsidio btnClose_Click()sender As Objeto, e As EventArgs) Manijas btnClose.Haga clic Cerca()Final Subsidio

El 'cmd' el prefijo se sustituye por el 'btn' prefijo, conforme a la nueva convención antes mencionada.

Visual Basic 6 no proporcionaba atajos de operador comunes. Los siguientes son equivalentes:

Visual Basic 6:

Subsidio Timer1_Timer() 'Reduce formulario Altura por un pixel por garrapata Me.Altura = Me.Altura - 1Final Subsidio

VB.NET:

Subsidio Timer1_Tick()sender As Objeto, e As EventArgs) Manijas Timer1.Tick Me.Altura -= 1Final Subsidio

Comparación con C#

C# y Visual Basic son los primeros lenguajes de Microsoft creados para programar en.NET Framework (luego se agregaron F# y más; otros también agregaron lenguajes). Aunque C# y Visual Basic son sintácticamente diferentes, ahí es donde terminan la mayoría de las diferencias. Microsoft desarrolló ambos lenguajes para que fueran parte de la misma plataforma de desarrollo de.NET Framework. Ambos son desarrollados, administrados y respaldados por el mismo equipo de desarrollo de idiomas de Microsoft. Se compilan en el mismo lenguaje intermedio (IL), que se ejecuta en las mismas bibliotecas de tiempo de ejecución de.NET Framework. Aunque hay algunas diferencias en las construcciones de programación, sus diferencias son principalmente sintácticas y, suponiendo que uno evite la "Compatibilidad" de Visual Basic; bibliotecas proporcionadas por Microsoft para ayudar a la conversión de Visual Basic 6, casi todas las funciones de VB tienen una función equivalente en C# y viceversa. Por último, ambos lenguajes hacen referencia a las mismas clases base de.NET Framework para ampliar su funcionalidad. Como resultado, con pocas excepciones, un programa escrito en cualquiera de los dos idiomas se puede ejecutar a través de un simple convertidor de sintaxis para traducirlo al otro. Hay muchos productos de código abierto y comercialmente disponibles para esta tarea.

Ejemplos

¡Hola Mundo!

Aplicación de formularios de Windows

Requiere un botón llamado Botón1.

Público Clase Formulario1 Privado Subsidio Button1_Click()sender As Objeto, e As EventArgs) Manijas Button1.Haga clic MsgBox()"¡Hola mundo!", MsgBoxStyle.Información, "¡Hola mundo!") ' Mostrar un mensaje que dice "¡Hola mundo!". Final SubsidioFinal Clase
¡Hola mundo! ventana

Aplicación de consola

Módulo Módulo1 Subsidio Main() Consola.WriteLine()"¡Hola mundo!") Escribe en la consola "¡Hola mundo!" y comienza una nueva línea. Consola.Leer Clave() ' El usuario debe presionar cualquier llave antes de que termine la aplicación. Final SubsidioFinal Módulo

Hablar

Aplicación de formularios de Windows

Requiere un cuadro de texto titulado 'TextBox1' y un botón llamado Botón1.

Público Clase Formulario1  Privado Subsidio Button1_Click()sender As Objeto, e As EventArgs) Manijas Button1.Haga clic Crear objeto()"Sapi.Spvoice").Habla.()TextBox1.Texto) Final SubsidioFinal Clase

Aplicación de consola

Módulo Módulo1 Privado Voz = Crear objeto()"Sapi.Spvoice") Privado Texto As String Subsidio Main() Consola.Escriba()"Introduzca el texto a hablar: ") Di "Introduzca el texto a hablar: " Texto = Consola.ReadLine() ' El usuario debe introducir el texto para hablar. Voz.Habla.()Texto) ' Habla el texto que el usuario ha introducido. Final SubsidioFinal Módulo

Historial de versiones

Después de la clásica versión 6.0 de Visual Basic, la primera versión de Visual Basic.NET debutó en 2002. A partir de 2020, se lanzaron diez versiones de Visual Basic.NET.

2002 (VB 7.0)

La primera versión, Visual Basic.NET, se basa en.NET Framework 1.0. La característica más importante es el código administrado, que contrasta con el clásico Visual Basic.

2003 (VB 7.1)

Visual Basic.NET 2003 se lanzó con.NET Framework 1.1. Las nuevas características incluyeron soporte para.NET Compact Framework y un mejor asistente de actualización de VB. También se realizaron mejoras en el rendimiento y la confiabilidad de.NET IDE (en particular, el compilador en segundo plano) y el tiempo de ejecución. Además, Visual Basic.NET 2003 estaba disponible en la Edición Académica de Visual Studio.NET, distribuida a un cierto número de académicos de cada país sin costo alguno.

2005 (VB 8.0)

Después de Visual Basic.NET 2003, Microsoft eliminó ".NET" del nombre del producto, llamando a la próxima versión Visual Basic 2005.

Para esta versión, Microsoft agregó muchas funciones destinadas a reforzar el enfoque de Visual Basic.NET como una plataforma de desarrollo rápido de aplicaciones y diferenciarlo aún más de C#, que incluyen:

  • Editar y continuar función
  • Evaluación de la expresión en tiempo de diseño
  • Un espacio llamado "Mi", que proporciona:
    • Fácil acceso a ciertas áreas de la. Marco NET que de otra manera requieren un código significativo para acceder como My.Form2.Text = " MainForm " en lugar de System.WindowsApplication1.Forms.Form2.text = " MainForm "
    • Clases generadas dinámicamente (por ejemplo. Mis formos)
  • Conversor de VB-to-VB.NET mejorado
  • Una palabra clave "utilizando", simplificando el uso de objetos que requieran el patrón Dispose a recursos libres
  • Sólo mi código característica, que esconde (pasos por encima) código de calderas escrito por el Visual Studio. NET IDE y código de biblioteca del sistema durante la depuración
  • Data Source binding, easing database client/server development

Para cerrar las brechas entre sí mismo y otros lenguajes.NET, esta versión agregó:

  • Genéricos
  • Clases parciales, un método para definir algunas partes de una clase en un archivo y luego añadir más definiciones más tarde; particularmente útil para integrar el código de usuario con código autogenerado
  • Operador sobrecarga y tipos nullables
  • Soporte para tipos de datos enteros no firmados utilizados comúnmente en otros idiomas

Visual Basic 2005 introdujo el operador IsNot que hace que 'If X IsNot Y' sea equivalente a 'If Not X Is Y'. Ganó notoriedad cuando se descubrió que era objeto de una solicitud de patente de Microsoft.

2008 (VB 9.0)

Visual Basic 9.0 se lanzó junto con.NET Framework 3.5 el 19 de noviembre de 2007.

Para esta versión, Microsoft agregó muchas funciones, entre ellas:

  • Un verdadero operador condicional, "Si(condición como booleano, parte verdadera, falso)", para reemplazar la función "IIf".
  • Tipos anónimos
  • Apoyo a LINQ
  • Expresiones de lambda
  • XML Literales
  • Tipo Inferencia
  • Métodos de extensión

2010 (VB 10.0)

En abril de 2010, Microsoft lanzó Visual Basic 2010. Microsoft había planeado usar Dynamic Language Runtime (DLR) para esa versión, pero cambió a una estrategia de evolución conjunta entre Visual Basic y el lenguaje hermano C# para acercar ambos lenguajes a la paridad con unos y otros. La capacidad innata de Visual Basic para interactuar dinámicamente con objetos CLR y COM se mejoró para trabajar con lenguajes dinámicos integrados en DLR, como IronPython y IronRuby. El compilador de Visual Basic se mejoró para inferir la continuación de línea en un conjunto de contextos comunes, en muchos casos eliminando la necesidad de " _" caracteres de continuación de línea. Además, el soporte existente de funciones en línea se complementó con soporte para Subs en línea, así como versiones multilínea de Sub y Function lambdas.

2012 (VB 11.0)

Visual Basic 2012 se lanzó junto con.NET Framework 4.5. Las principales características introducidas en esta versión incluyen:

  • Programación asincrónica con declaraciones "async" y "await"
  • Alfabetizadores
  • La jerarquía de llamadas
  • Información de llamadas
  • Palabras clave "Global" en declaraciones "namespace"

2013 (VB 12.0)

Visual Basic 2013 se lanzó junto con.NET Framework 4.5.1 con Visual Studio 2013. También puede compilar aplicaciones.NET Framework 4.5.2 instalando Developer Pack.

2015 (VB 14.0)

Visual Basic 2015 (nombre en código VB "14.0") se lanzó con Visual Studio 2015. Las características del lenguaje incluyen un nuevo "?." operador para realizar verificaciones nulas en línea, y se incluye una nueva característica de interpolación de cadenas para formatear cadenas en línea.

2017 (VB 15.x)

Visual Basic 2017 (nombre en código VB "15.0") se lanzó con Visual Studio 2017. Amplía la compatibilidad con las nuevas características del lenguaje Visual Basic 15 con la revisión 2017, 15.3, 15.5, 15.8. Introduce nuevas refactorizaciones que permiten organizar el código fuente con una sola acción.

2019 (VB 16.0)

Visual Basic 2019 (nombre en código VB "16.0") se lanzó con Visual Studio 2019. Es la primera versión de Visual Basic centrada en.NET Core.

Desarrollo multiplataforma y de código abierto

El compilador oficial de Visual Basic está escrito en Visual Basic y está disponible en GitHub como parte de la plataforma del compilador.NET. La creación de herramientas de código abierto para el desarrollo de Visual Basic ha sido lenta en comparación con C#, aunque la plataforma de desarrollo Mono proporciona una implementación de bibliotecas específicas de Visual Basic y un compilador compatible con Visual Basic 2005 escrito en Visual Basic, así como bibliotecas de marco estándar. como la biblioteca GUI de Windows Forms.

MonoDevelop es un IDE alternativo de código abierto. El entorno de Gambas también es similar pero distinto de Visual Basic, al igual que Visual FB Editor para FreeBasic.

Contenido relacionado

Cronología de la informática 1980-1989

Este artículo presenta una cronología detallada de los acontecimientos en la historia de la informática desde 1980 hasta 1989. Para narraciones que...

Subasta electrónica

Una subasta en línea, subasta electrónica o e-puja es una subasta que se lleva a cabo a través de Internet. Al igual que las subastas en general, las...

Streaming

Un streaming, transmisión en directo o simplemente directo es contenido multimedia que se entregan y consumen de manera continua desde una fuente, con poco o...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save