Comparación de Visual Basic y Visual Basic .NET - Comparison of Visual Basic and Visual Basic .NET

Visual Basic .NET fue lanzado por Microsoft en 2002 como sucesor del lenguaje de programación de computadoras Visual Basic original . Se implementó en .NET Framework 1.0 . La principal característica nueva fue el código administrado . Los programadores familiarizados solo con Visual Basic probablemente habrían tenido dificultades para trabajar con la nueva versión o adaptar programas existentes para ella.

Grandes diferencias obvias

La nueva plataforma se parecía poco a su predecesora. Si bien los programadores esperaban poder recompilar su fuente de Visual Basic en un destino .NET, la realidad de la situación era que Visual Basic .NET era un paradigma muy diferente.

Dejando a un lado las obvias diferencias de sintaxis, Visual Basic .NET proporciona prácticamente la misma funcionalidad que C # (ya que ambos se compilan en MSIL , siendo la diferencia más obvia la insensibilidad a mayúsculas y minúsculas de Visual Basic .NET, manteniendo la insensibilidad original a mayúsculas y minúsculas de Visual Basic) , que es más un problema para los programadores de C # que intentan interactuar con los desarrolladores de Visual Basic .NET que cualquier otra cosa.

La sintaxis básica sigue siendo muy similar: las condiciones, bucles, procedimientos, subrutinas se declaran y escriben de la misma manera (ver Visual Basic). La movilidad de las iteraciones anteriores de Visual Basic a Visual Basic .NET realmente son parte del código existente: se requieren programadores con experiencia en ambos mundos para apuntar de manera efectiva a la nueva plataforma con lógica anterior. El desarrollador de Visual Basic .NET tendrá que aprender el uso de los tipos básicos de .NET en lugar de lo que se les ha acostumbrado en Visual Basic.

Un programador que solo ha trabajado con Visual Basic puede encontrar una curva de aprendizaje pronunciada para migrar a Visual Basic .NET. Un programador que esté versado en otro idioma o que haya estado expuesto al tiempo de ejecución de .NET debería poder hacerlo. Sería mejor pensar en Visual Basic .NET como un nuevo lenguaje inspirado en el clásico Visual Basic en lugar de como una continuación de Visual Basic 6.0, con la dificultad adicional para migrar programadores que VB.NET interactúa con .NET Framework mientras que VB6 se basó en el Modelo de objetos componentes (COM).

Comparación más detallada

Hay algunos cambios inmediatos que los desarrolladores deben tener en cuenta:

Más sintaxis similar a C

Visual Basic .NET permite la +=, -=, *=, /=, \=, ^=, y &=los operadores compuestos de manera que las líneas más largas como:

variable = variable + 1

ahora se puede escribir como:

variable += 1

Sin embargo, no se admiten los operadores de incremento y decremento .

Lógica en cortocircuito

En iteraciones anteriores de Visual Basic, todas las declaraciones en una condición se habrían evaluado incluso si el resultado de la condición se pudiera determinar antes de evaluar una condición. Por ejemplo:

If foo() And bar() Then
  ' code here is executed if foo() and bar() both return True, however, if foo() returns False, bar() is still evaluated
End If

Esto no solo era ineficaz, sino que podía dar lugar a resultados inesperados para cualquier persona que estuviera acostumbrada a otro idioma. En Visual Basic .NET, los nuevos operadores AndAlso y OrElse se han agregado para proporcionar evaluación de cortocircuito como muchos otros lenguajes.

Los tipos explícitos similares a punteros ya no existen

Los tipos de variable Var * están en desuso en Visual Basic .NET. El tiempo de ejecución común decide qué tipos son tipos de referencia y qué tipos son tipos de valor, por lo que este ya no es el dominio del programador.

Propiedades: Let and Set

Las propiedades de clase ya no requieren las declaraciones Let y Set

Impresión de depuración

Debug.Print se reemplaza con Debug.Write y Debug.WriteLine

Procedimientos

Una llamada a procedimiento debe tener paréntesis en Visual Basic .NET.

Visual Basic .NET requiere una especificación ByVal o ByRef para los parámetros. En Visual Basic, la especificación podría omitirse, lo que implica ByRef de forma predeterminada. La mayoría de los entornos de desarrollo, como Visual Studio .NET , insertarán automáticamente un ByVal, por lo que, en efecto, el valor predeterminado es ByVal, no ByRef. Existen herramientas para convertir código de Visual Basic a VB.NET, como el Asistente de actualización de Visual Basic que se incluyó en Visual Studio .NET 2002 y 2003. Las herramientas de conversión insertan automáticamente un ByRef si es necesario, conservando la semántica de la aplicación de Visual Basic.

Matrices de base cero

Visual Basic 5.0 y 6.0 ha empleado tradicionalmente matrices de base cero (el límite inferior predeterminado), a menos que se declare "Option Base 1". Esta fue la fuente de muchos errores uno a uno en los programas de Visual Basic, especialmente cuando se trata de la interoperabilidad a través de los límites de la biblioteca de programas. Aunque .NET Common Language Runtime puede admitir matrices con cualquier valor base, Visual Basic .NET y C # solo proporcionan matrices y listas de base cero, y la Especificación de lenguaje común de .NET requiere matrices de base cero para la interoperabilidad entre lenguajes .NET.

Matrices irregulares

Visual Basic .NET introdujo el concepto de una matriz dentada , mediante el cual las filas pueden tener una longitud desigual en contraposición a la longitud uniforme de las matrices impuestas a los programadores de Visual Basic.

El tipo de datos de la variante se ha ido

En los lenguajes que se compilan hasta la plataforma .NET, los tipos son estrictos. Si bien el tiempo de ejecución permite objetos anónimos que no tienen un tipo con nombre predefinido, es posible que el tipo de una variable no cambie en el transcurso de su vida útil, de ahí la necesidad de eliminar el tipo de datos Variant. Sin embargo, el tipo "Objeto" tiene un comportamiento similar en la práctica.

Verdadera programación orientada a objetos

Visual Basic era un lenguaje basado en objetos. Admitía clases, pero no otros conceptos que lo convertirían en un lenguaje orientado a objetos. Visual Basic .NET es un verdadero lenguaje orientado a objetos con las siguientes características:

  1. herencia
  2. sobrecarga de funciones

Aunque ningún idioma orientado a .NET permite la herencia múltiple de clases, se admite la herencia múltiple de interfaces.

Cambiar de COM a NET

Si bien el IDE hace un trabajo razonable al ocultar el hecho, la dependencia de los objetos ActiveX se elimina en Visual Basic .NET (aunque existen mecanismos para interactuar con COM en .NET) a favor de los componentes .NET que ofrecen una funcionalidad similar. Este cambio es bueno para el desarrollador de Visual Basic, ya que muchos de los problemas de rendimiento en Visual Basic surgieron en torno al costo de la interfaz COM.

Gestión de geometría elemental a través del diseñador de formularios

Una de las verdaderas pesadillas de la vida de un desarrollador de Visual Basic siempre ha sido escribir código de cambio de tamaño. Si bien el paradigma de WinForms deja mucho que desear en el departamento de administración de geometría frente a kits de herramientas como Qt y GTK + , al menos el desarrollador puede anclar widgets en formularios en lugar de tener que escribir resmas de código en controladores OnResize.

Opción explícita por defecto

En Visual Basic .NET, Option Explicit está activada de forma predeterminada.

Referencias

enlaces externos