Los tipos de datos.
- No se admite el tipo Variant, ha sido sustituido por Object. El valor predeterminado de Object es Nothing, en el caso de Variant era Empty.
- En vb6 el tipo Integer era un número de 16 bits, en vb .net el tipo Short reemplaza a Integer, el Interger pasa a tener 32 bits y el long 64 bits.
- El tipo de datos Currency se ha convertido en Decimal. Currency tenía 64 bits, con 4 dígitos a la derecha de la coma.
- Decimal es un número de 96 bits entero y puede constar de hasta 28 dígitos a la derecha de la coma.
- El tipo Date era un entero doble de 64 bits. En .net es un entero.
Cadenas.
- Vb .net no admite cadenas de longitud fija.
- La función DefType que asigna un tipo predeterminado a todas las variables declaradas sin tipo ya no se admite, al igual que DefInt, DefStr, DefBool y DefLng.
- VarPtr, StrPtr, ObjPtr. Estas funciones que devuelven las direcciones enteras de variables en invocaciones a la API, ya no se admiten. El método AddrOfPinnedHandle de las clase GCHand proporciona una funcionalidad similar.
Matrices.
- Todas las matrices tienen base 0.
- Las matrices no pueden ser fijas. No se pueden declarar matrices con tamaño fijo, mediante la especificación de su límite superior e inferior al diseñarlas. Tan solo se puede declarar el límite superior, ya que el inferior es 0.
- La instrucción Option base no se admite.
- La instrucción Redim se modifica. No se puede utilizar en la declaración de una variable de matriz.
Varios.
- El valor de True es -1, este no ha cambiando en .net, sin embargo en el motor CLR, True equivale a 1.
- Vb .net no admite los tipos de datos definidos por el usuario. Han sido sustituidos por estructuras. Constan de estructuras similares pero son mucho más potentes.
- La funcion MsgBox ha sido sustituida por el método Show de la clase MessageBox.
- Propiedades predeterminadas. Vb .net ya no admite las propiedades predeterminadas para cualquier objeto.
Operadores.
- El operador EQV se ha sustituido por el operador “=”.
- Se han añadido los operadores AndAlso y OrElse para procesar los cortocircuitos.
- Nuevos operadores de asignación.
+=, -=, *=, /=, \=, ^=, &=
Variables.
- Ámbito: las variables se pueden declarar dentro de bloques de instrucciones, en cuyo caso sólo estarán disponibles en su interior.
- Declaración: las variables se pueden definir en la misma línea en la que se declaran. También se pueden declarar múltiples variables en la misma línea.
Procedimientos.
- Invocación de procedimientos: ya se trate de subprocedimientos o funciones requiere el uso de paréntesis para incluir argumentos, aunque no se incluya ninguno.
- Procedimientos estáticos: estos ya no se admiten. Se deben definir las variables dentro del procedimiento como Static.
- ByVal, ByRef, As Any: en vb6 el mecanismo predeterminado para transferir parámetros es ByRef. En vb .net es ByVal. Ya no se admite la instrucción As Any de la instrucción Declare para invocaciones API.
Flujo de control.
- La instrucción While … WEnd ya no se admite.
- La bifurcación GoSub a otra subrutina dentro de una procedimiento ya no se admite.
- En vb .net la instrucción Return devuelve el control a la instancia que invoque la función. Si la función es de un determinado tipo, puede devolver también el valor.
Formularios.
- El método PrintForm ha dejado de ser válido. El entorno .net framework dispone de un nuevo subsistema de impresión, en el que se incluye una función de visualización previa.
- Circle, Cls, PSet, Line y Point ya no se admiten en vb .net. los métodos gráficos de vb6 se han sustituido por el espacio de nombre System.Drawing, el cual utiliza las nuevas clases GDI+ para dibujar.
- La propiedad Caption de los controles etiqueta y formularios ya no se admite. La propiedad Text ha pasado a sustituirla.
- La unidad de medida Twips utilizada en formularios ha sido sustituida por Píxeles.
- Fuentes: los formularios en vb6 se podían crear utilizando cualquier tipo de fuente admitida por Windows. Ahora solo se admiten fuentes True Type o Open Type.
- Matrices de controles: en vb .net los controles no se pueden agrupar en matrices, pero se puede utilizar el mismo procedimiento para utilizar controles múltiples con la palabra clave Handles.
- Menús contextuales y menús principales: en un formulario vb6 se puede tener un menú principal y un menú contextual.
- En vb .net solo se puede tener uno de los dos.
Controles.
- El control OLE ya no se admite.
- El control Image se ha sustituido por el PictureBox.
- El control Line ha sido sustituido por los métodos GDI+ Draw.
- El control Shape ha sido sustituido por los métodos GDI+ Draw.
Tipos de aplicaciones.
- Las aplicaciones Clases de Web, Documentos Active X, aplicaciones DHTML y las Propiedades de página ya no se admiten.
- Los controles de usuario creados en vb6 se pueden utilizar en vb .net, pero no existe un entorno de diseño para la edición y modificación de controles.
Acceso a datos.
- Vb .net no admite el estándar para el acceso a datos DAO. A partit de ahora se utilizará ADO .NET.