2009-09-01 10 views
7

Estoy razonablemente familiarizado con las diversas formas de VB que existían antes de .NET (VB6, VBA, VBScript ...), pero todavía tengo que profundizar en The Sweet New Flavor que es VB.NET.¿Cuáles son las diferencias entre VB.NET y las versiones anteriores de VB?

Así que agradecería muchísimo si alguien proporcionara un resumen rápido de las principales diferencias en el lenguaje traídas por VB.NET.

+0

¿Qué te hace hacer una pregunta tan amplia? Y, responderlo también? – shahkalpesh

+8

No hay nada de malo en responder sus propias preguntas. De hecho, es alentador. Solo quieres estar seguro de que tienes una muy buena respuesta cuando lo haces, y que dejas una oportunidad para que la comunidad también proporcione su opinión. También es una buena etiqueta para SO hacer tu _answer_ (no la pregunta) Wiki de la comunidad. –

+4

@sakthivignesh: creo que te llamó la atención un montón al escribir una pregunta tan vaga * y luego publicar inmediatamente una respuesta muy inadecuada *. En el futuro, querrás evitar esto a menos que, como señala Joel, * sabes * que tienes una buena respuesta. En su lugar, dedique más tiempo a escribir una buena pregunta ... – Shog9

Respuesta

10

Suponiendo que digas vb te refieres vb 6. Bastante grande. El Visual Basic original no utiliza el entorno de tiempo de ejecución .net, y aunque tienen nombres similares, son lenguajes bastante diferentes. Visual Basic no está completamente orientado a objetos, pero VB.net sí lo está. El manejo de errores es muy diferente entre los dos. VB.Net ha intentado capturar bloques donde vb tradicional usa sentencias On Error GOTO. Estas son solo algunas diferencias. La lista sigue y sigue.

Aquí hay un enlace que describe el nombre "Visual Fred".

+2

No olvidemos el apodo de "Visual Fred". – Kawa

+0

OMG Me olvidé por completo de ese nombre. – kemiller2002

+1

VB.Net aún admite las sentencias On Error GOTO por razones de compatibilidad con versiones anteriores. – Kibbee

3

Hay bastantes: demasiadas para enumerar, creo. Casi podría considerar VB.Net un lenguaje completamente diferente que comparte una sintaxis similar a VB. El mayor cambio es familiarizarse con las clases de .NET.

5

VB.Net es simplemente la versión de Visual Basic diseñada para funcionar con .Net framework. También realiza otros cambios y adiciones al idioma, pero no es posible contrastar VB.Net con VB, porque son lo mismo.

Lo que puede hacer es contrastar con VB.Net con VBA, o VB6, o VBScript, o alguna otra variante de Visual Basic. Pero VB.Net todavía IS una posible variante de VB. De hecho, si nos fijamos en el idioma parte del producto por sí mismo, ahora están llamando a la última versión VB9, con VB10 que saldrá a finales de este año.

De la misma manera, no puede contrastar "Pespi" y cola, porque Pepsi es una cola, pero puede contrastar Pepsi y Coca-Cola.

Dicho esto, el dialecto VB.Net de VB trae consigo un número significativo de cambios y mejoras en el lenguaje, incluido un verdadero soporte para los paradigmas orientados a objetos y funcionales, hasta el punto de que el código VB.Net idiomático a menudo es muy diferente de Código de la era VB6.

+3

Habiendo usado ambos, debo estar en desacuerdo. – Kawa

+2

No, no lo es. Aunque ambos son dialectos de Basic, pero con diferentes compiladores y una sintaxis similar. – svinto

+3

VB.Net es uno de los sabores de VB. No es el único sabor, sin duda, pero creer que no es VB porque no es lo mismo que otra variante específica de VB que puedes haber usado es simplemente ignorancia. –

1

VB.Net es una versión más reciente que utiliza el código administrado/Framework Dot Net.

VB es la versión anterior.

1

VB compila código p o código nativo, VB.net compila en MSIL. También la sintaxis difiere un poco. Como VB.net es la ruta de actualización para usuarios y programas de VB, hay un conjunto de objetos y funciones auxiliares que hacen que mover código de VB a VB.net sea más fácil, estos objetos y funciones no se usan normalmente en programas escritos en otros. lenguajes netos.

+2

VB5 y VB6 se pueden compilar con código de máquina nativo. El código P se usó en versiones anteriores de VB (pero aún era opcional VB5 y VB6). –

8

Oh, el horror.

Lo sentimos, pero todas las respuestas existentes son incorrectas de una forma u otra. Joel es en realidad el mejor del grupo, pero su mala redacción alienta malentendido (lo siento, Joel - pero basta con ver sus comentarios!):

contraste VB.Net con VB no es posible, porque son la misma cosa .

Eso es exactamente como decir que "contrastar manzanas con frutas no es posible porque son lo mismo" y, como tal, no es muy útil; “VB6” sobre todo porque muchas personas (aún) utilizan “VB” como sinónimo de

modo que para aclarar un poco las cosas: tanto VB6 y VB.NET son dialectos de la familia Visual lenguaje Basic (hagamos llámalo así). Su parecido es superficial en el mejor de los casos; alguien que realmente tiene usado los dos (y no solo miró algunos códigos fuente) habrá notado que aparte de una similitud sintáctica somero, son bestias completamente diferentes. El uso de son experiencias fundamentalmente diferentes.

El único aspecto en el que realmente se parecen (aparte de la similitud de sintaxis) es que ambos son muy adecuados para el desarrollo rápido de aplicaciones (RAD) ... al menos hasta que haya probado lenguajes dinámicos como Python o Ruby en combinación con marcos ágiles GUI como Shoes. Pero incluso cuando los entornos de RAD van, hay una gran diferencia.

VB6 se desarrolló básicamente en do RAD, nada más. Y en su momento, VB6 fue lo mejor en el marcado para hacer RAD, por un amplio margen. VB.NET, por otro lado, era no seleccionado para el desarrollo de RAD, más que C#. Ambos son lenguajes de gama alta respaldados por un marco de propósito general, muy similar a Java pero con la aspiración de mejorar algunas de las fallas de Java, como su exceso de detalle al cortar una gran cantidad de código repetitivo (introducción de delegados, eventos, propiedades, sobrecarga del operador, autoboxing para nombrar solo algunas de tales características).

Y aunque VB.NET es en gran medida compatible con versiones anteriores, esto es muy engañoso. En primer lugar, ninguna persona sensata diría que C y C++ son los mismos lenguajes solo porque muchos programas C compilan bien en compiladores C++. Las diferencias entre VB y VB.NET son aún mayores en algunas métricas porque no el código VB6 completo es VB.NET válido. Necesita un "asistente de actualización" automatizado para producir código .NET válido, y la experiencia ha demostrado que este asistente de actualización no es adecuado incluso para proyectos de tamaño mediano, principalmente porque su traducción literal rompe muchas pautas y suposiciones del mundo .NET.

Decir, como Kibbee, que los compiladores de VB6 y VB.NET son "básicamente los mismos" es completamente erróneo. Del mismo modo, afirmar que "el tiempo de ejecución de .Net no es un cambio en el lenguaje" pasa por alto el punto por completo. Por supuesto es un cambio en el idioma. VB.NET fue construido completamente alrededor del framework .NET, no es cualquier otra biblioteca.

Afirma que

Si VB.Net estaba destinado a ser una lengua nueva, y no sólo una nueva versión de un viejo lenguaje, se habría librado de "On Error Goto" que dejase 't.

- que también es engañoso. "On Error Goto" se incluyó únicamente por compatibilidad con versiones anteriores (el asistente de actualización no puede convertir el manejo de errores al estilo antiguo en el manejo de errores basado en excepciones).

Permítanme resumir el punto principal de esta publicación bastante larga para que no se pierda: al igual que Java y JavaScript, VB6 y VB.NET tienen nombres muy similares (y por la misma razón: comercialización) pero esto es completamente engañoso. Hay algunas similitudes sintácticas.Aparte de eso, superficialmente y bajo el capó, son idiomas completamente diferentes.

+0

Diría que "son idiomas completamente similares" donde "similar" es equivalente a "diferente", como manzanas y peras. – andora

Cuestiones relacionadas