Articulo de referencia

Comparación de Visual Basic y Visual Basic .NET

Visual Basic .NET fue lanzado por Microsoft en 2002 como sucesor del lenguaje de programación Visual Basic original . Se implementó en .NET Framework 1.0 . La característica pri...

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

Diferencias importantes obvias

La nueva plataforma tenía poco parecido con su predecesora. [ cita requerida ] Si bien los programadores esperaban poder recompilar su código fuente de Visual Basic en un destino .NET, la realidad de la situación era que Visual Basic .NET era un paradigma muy diferente. [ cita requerida ]

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

La sintaxis básica sigue siendo muy similar: las condiciones, los bucles, los procedimientos y las subrutinas se declaran y escriben de la misma manera (véase Visual Basic). La movilidad de las iteraciones anteriores de Visual Basic a Visual Basic .NET en realidad son partes del código existente: se requieren programadores con experiencia en ambos mundos para abordar de manera efectiva la nueva plataforma con la lógica más antigua. El desarrollador de Visual Basic .NET tendrá que aprender a utilizar los tipos básicos de .NET en lugar de lo que está acostumbrado a hacer en Visual Basic.

Un programador que sólo haya trabajado con Visual Basic puede encontrarse con una curva de aprendizaje muy pronunciada para migrar a Visual Basic .NET. Un programador que esté versado en otro lenguaje o que haya tenido contacto con el entorno de ejecución de .NET debería poder afrontarlo. Sería mejor pensar en Visual Basic .NET como un nuevo lenguaje inspirado en el Visual Basic clásico en lugar de como una continuación de Visual Basic 6.0, con la dificultad añadida para los programadores que migran de que VB.NET interactúa con .NET Framework mientras que VB6 se basaba en el Modelo de objetos componentes (COM). [ cita requerida ]

Comparación más detallada

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

Sintaxis más parecida a C

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

variable = variable + 1    

Ahora se puede escribir como:

variable += 1  

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

Lógica en cortocircuito

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

Si foo () y bar () entonces el código aquí se ejecuta si foo() y bar() ambos devuelven Verdadero, sin embargo, si foo() devuelve Falso, bar() todavía se evalúa Fin Si    
  
 

Esto no sólo era ineficiente, sino que podía generar resultados inesperados para cualquier persona acostumbrada a otro lenguaje. En Visual Basic .NET, se agregaron los nuevos operadores AndAlso y OrElse [1] para proporcionar una evaluación de cortocircuito como en muchos otros lenguajes.

Los tipos explícitos tipo puntero ya no existen

Los tipos de variables var* están en desuso en Visual Basic .NET. El entorno de ejecución común decide qué tipos son tipos de referencia y cuáles son tipos de valor, por lo que esto ya no es competencia del programador.

Propiedades: Let y Set

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

Depuración de impresión

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

Procedimientos

Una llamada a un 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 se puede omitir, lo que implica que ByRef es el valor predeterminado. 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 el código de Visual Basic a VB.NET, como el Asistente para 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, lo que preserva la semántica de la aplicación de Visual Basic.

Matrices basadas en cero

Visual Basic 5.0 y 6.0 han empleado tradicionalmente matrices basadas en cero (el límite inferior predeterminado), a menos que se declare "Option Base 1". Esta era la fuente de muchos errores de "uno por uno" en los programas de Visual Basic, especialmente cuando se trataba de interoperabilidad entre 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 basadas en cero, y .NET Common Language Specification requiere matrices basadas en cero para la interoperabilidad entre lenguajes .NET.

Matrices irregulares

Visual Basic .NET introdujo el concepto de matriz irregular , mediante el cual las filas pueden tener una longitud desigual a diferencia de la longitud uniforme de las matrices impuestas a los programadores de Visual Basic.

El tipo de datos de variante ha desaparecido

En los lenguajes que se compilan para la plataforma .NET, los tipos son estrictos. Si bien el entorno de ejecución permite objetos anónimos que no tienen un tipo predefinido con nombre, el tipo de una variable puede no cambiar a lo largo de su vida útil, de ahí la necesidad de eliminar el tipo de datos Variant. Sin embargo, el tipo "Object" 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 convirtieran 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 lenguaje orientado a .NET permite la herencia múltiple de clases, sí se admite la herencia múltiple de interfaces.

Cambiar de COM a NET

Si bien el IDE hace un trabajo razonable al ocultar este hecho, la dependencia de los objetos ActiveX se ha eliminado en Visual Basic .NET (aunque existen mecanismos para interactuar con COM en .NET [2] ) en 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 montones de código en controladores OnResize.

Opción explícita por defecto

En Visual Basic .NET, la opción Explicit está activada de forma predeterminada.

Referencias

  1. ^ "Operadores lógicos y bit a bit - Visual Basic". 15 de septiembre de 2021.
  2. ^ "Documentación técnica retirada de Visual Studio 2003".
  • Los 5 cambios principales entre VB 6 y VB.NET Archivado el 16 de octubre de 2011 en Wayback Machine
  • Matrices irregulares en VB.NET
Retrieved from "https://en.wikipedia.org/w/index.php?title=Comparison_of_Visual_Basic_and_Visual_Basic_.NET&oldid=1186437904"