Componentes de Visual Basic 2005 para el desarrollador que utiliza Visual Basic 6.0

Diciembre de 2005

Publicado: 27 de Marzo de 2006

Por Scott Swigart
Microsoft Corporation

Este artículo se aplica a:
Microsoft Visual Basic 2005
Microsoft Visual Basic 6.0
Desarrollo

Resumen: conozca los interesantes cambios incluidos en la versión 2.0 de la interfaz de Microsoft Visual Basic .NET que facilitan y hacen más práctica la migración para los desarrolladores que utilizan Visual Basic 6.0. (18 páginas impresas.) (Este artículo contiene vínculos a páginas en inglés.)

En esta página
Todavía no precisé .NET para nada...Todavía no precisé .NET para nada...
Parte de la culpa es míaParte de la culpa es mía
Hay que reconocer cuando hacen las cosas bienHay que reconocer cuando hacen las cosas bien
RecargadoRecargado
Lo que la cuadrícula se llevóLo que la cuadrícula se llevó
Quiero esa barra de herramientasQuiero esa barra de herramientas
Ya saben a lo que me refieroYa saben a lo que me refiero
Dirección asistidaDirección asistida
Pruébelo, es gratisPruébelo, es gratis
Es mío, mío y míoEs mío, mío y mío
¿Qué parte de "no quiero instalar Visual Studio 2005" no comprenden?¿Qué parte de "no quiero instalar Visual Studio 2005" no comprenden?
¿Qué parte de "no quiero instalar Visual Studio 2005" no comprenden?¿Qué parte de "no quiero instalar Visual Studio 2005" no comprenden?
ConclusiónConclusión
Recursos adicionalesRecursos adicionales
Acerca del autorAcerca del autor
*

Todavía no precisé .NET para nada...

La máquina publicitaria de Microsoft ya se puso en marcha para destacar las virtudes de Visual Studio 2005. La pregunta es, si trabaja principalmente con Visual Basic 6, le gusta y no encontró en .NET nada que necesite, ¿por qué le tendría que importar el lanzamiento de Visual Studio 2005? Si tiene en cuenta que MSDN tuvo la amabilidad de publicar este artículo, se debe imaginar mi conclusión. Pero siga leyendo porque hay algunas cosas muy interesantes para los desarrolladores que utilizan Visual Basic 6.

Antes que nada, reconozcamos que, para muchos, Visual Basic .NET dejaba algo que desear. Si hace un esfuerzo recordará que, cuando Microsoft anunció al mundo el lanzamiento de .NET, sólo vociferaba dos cosas: Servicio Web y C#. Bueno, muchos de los desarrolladores que utilizan Visual Basic 6 no precisábamos (y tampoco queríamos) Servicios Web. Tampoco nos interesaba demasiado aprender este nuevo lenguaje llamado C# porque ya teníamos uno bastante bueno. Además de estas dos cosas, la otra atracción era ASP.NET. Si bien muchos de nosotros hacemos algo de desarrollo Web, el interés primario de la mayoría son las aplicaciones de escritorio. Por lo tanto, si .NET se basaba en Servicios Web, C# y ASP.NET, Microsoft tenía que comprender que muchos no lo precisáramos.

Para concluir, digamos que Visual Basic .NET no era totalmente compatible con Visual Basic 6. Esto no incentivaba a migrar una aplicación de Visual Basic 6 a .NET aunque uno estuviera interesado.

Principio de la páginaPrincipio de la página

Parte de la culpa es mía

Al igual que la mayoría de los desarrolladores que utilizan Visual Basic, existían algunas cosas que quería para mi lenguaje. Quería que eliminaran las barreras. Estaba cansado de "no se puede hacer X en Visual Basic 6". Quería que mi lenguaje pudiera hacer todo. También quería que el lenguaje admitiera, al menos, algunos conceptos simples orientados hacia los objetos, como la herencia. Tengan cuidado con lo que desean...

Visual Basic .NET otorga acceso completo a toda la interfaz de .NET. No hay barreras. En .NET se pueden utilizar todas las funciones de Visual Basic .NET. También está completamente orientado hacia los objetos, quizás demasiado. En lugar de utilizar algo sencillo como "Form1.Show", ahora hay que tratar a todo como la clase que es en realidad. Por ende, para mostrar un formulario hay que hacer lo siguiente:

Listado 1. Visualización de un formulario con Visual Basic .NET

Dim f as New Form1() 
f.Show()

Además, parece que algunas de mis funciones preferidas eran muy difíciles de incluir en la arquitectura de .NET v1.0. Por ejemplo, Editar y continuar quedó afuera.

Principio de la páginaPrincipio de la página

Hay que reconocer cuando hacen las cosas bien

Hay que reconocer que Microsoft sabe escuchar. Desde el lanzamiento de Visual Basic .NET, Microsoft ha estado trabajando mucho para agregar varias de las funciones más populares de Visual Basic 6, sin afectar el lenguaje. Como resultado, en Visual Studio 20005, "Form1.Show" vuelve a funcionar.

Figura 1. Visualización de formularios similar a la de Visual Basic 6

Editar y continuar también regresó. De hecho, es mejor que nunca. En Visual Basic 6, esa función era casi demasiado buena. Se podía presionar F5 por mucho tiempo al trabajar en la aplicación pero al intentar crear el ejecutable uno se enteraba de que no se compilaba porque había un error en alguna parte. En Visual Basic .NET, cada vez que se presiona F5, el programa se asegura de que se compile todo el código y también permite modificarlo y continuar con la ejecución.

Figura 2. Editar y Continuar

Mire el video (Editar y Continuar)

Principio de la páginaPrincipio de la página

Recargado

Visual Studio 2005 no sólo incluye las funciones ausentes de Visual Basic 6. En muchos casos, las mejora. En primer lugar, piense en el diseño de formularios en Visual Basic 6. Siempre hubo cosas que me molestaron de esa tarea. Si uno hace doble clic en un control de la barra de herramientas, lo ubica en el formulario con un tamaño predeterminado, pero no el que uno desea. En segundo lugar, la alineación de los controles se hace según los puntos de la cuadrícula. Esto hace bastante simple alinear los controles superiores o los de la izquierda, pero no es tan fácil alinear los inferiores o los de la derecha. Además, es casi imposible lograr que el texto dentro de los controles aparezca en el mismo renglón.

Figura 3. Diseño de un formulario en Visual Basic 6

Mire el video (Alinear controles)

Principio de la páginaPrincipio de la página

Lo que la cuadrícula se llevó

Lo primero que pensé al ver por primera vez el diseñador de formularios de Visual Studio 2005 fue: "¿Dónde está la cuadrícula? ¿Cómo se puede diseñar un formulario sin una cuadrícula?". Cuando vea el diseñador de formularios de Visual Studio 2005 le parecerá fabuloso. Me di cuenta de que lo que uno desea es alinear los controles en relación con otros controles o los bordes de los formularios y poder ubicar con facilidad a todos a la misma distancia. Visual Studio 2005 lo permite mediante "líneas de ajuste". También permite regresar los controles al tamaño correcto predeterminado y muchos otros detalles que hacen muy productiva la creación de formularios.

Figura 4. Líneas de ajuste para alinear los controles

Principio de la páginaPrincipio de la página

Quiero esa barra de herramientas

Otra causa habitual de quejas acerca de Visual Basic 6 eran algunos de los controles incluidos. Por ejemplo, las barras de herramientas y los menús eran muy limitados en comparación con los de las aplicaciones de Microsoft.

Figura 5. La barra de herramientas de Office

Tomemos la barra de herramientas de Office como ejemplo. No sólo tiene botones, sino que también admite cuadros de texto, menús desplegables y controles de separadores. Además, se puede arrastrar las barras y colocarlas donde uno desea. La barra de menús también admite cuadros de texto y otros controles. La queja popular de los usuarios de Visual Basic 6 era ¿por qué no pueden incluir los mismos controles para nosotros?

La respuesta de Visual Studio 2005: "hecho".

Figura 6. Apariencia de Visual Studio 2005 similar a la de Office

Mire el video (Apariencia similar a la de Office)

Principio de la páginaPrincipio de la página

Ya saben a lo que me refiero

Es fácil cometer errores menores al crear código. Visual Studio 2005 reconoce estos errores habituales, genera un mensaje de error específico y le pregunta si desea que lo corrija de forma automática.

Figura 7. Corrección automática en Visual Studio 2005

Si no se puede corregir de forma automática al escribirlo ni se puede detectar al compilar, la mejor alternativa es recibir ayuda cuando aparezca en el momento de la ejecución. En Visual Basic 6, si se olvida de utilizar "New" en un objeto recibe el error "Variable de objeto o de bloque With no establecida". En Visual Studio 2005, el mensaje de error es más específico ya que informa "se olvidó de utilizar New".

Figura 8. El Ayudante de excepciones

Mire el video (Administrador de excepciones)

Principio de la páginaPrincipio de la página

Dirección asistida

Lo último que quiero en un entorno de desarrollo es un montón de asistentes. Si se tratara de un automóvil, no querría un piloto automático porque, en primer lugar, probablemente me haga estrellarme y, en segundo lugar, no confiaría en que eligiera el camino correcto. No obstante, me encanta la dirección asistida, los servofrenos, el control de velocidad, etc. Me gustan porque simplifican la tarea. Mantengo el control absoluto de cada movimiento del automóvil pero no preciso hacer tanto esfuerzo para conducirlo.

En los entornos de desarrollo busco las mismas características. Quiero tener el control total de qué código se escribe pero también deseo que el IDE me simplifique el trabajo.

Visual Basic 6 comenzó a desandar ese camino con la herramienta Agregar procedimiento. Yo la uso bastante para las propiedades porque escribe sola gran parte del texto modelo.

Figura 9. Herramienta Agregar procedimiento

Visual Studio 2005 incluye esta herramienta y, además, muy mejorada. Si escribe "Public Property UserName as String", el IDE generará todo el texto modelo:

Listado 2. Generación automática de un procedimiento de propiedades en Visual Studio

Public Property UserName as String 
    Get 
 
    End Get 
    Set 
 
    End Set 
End Property

Y con la inclusión del complemento gratuito Refactor!, parece que el IDE leyera la mente.

Figura 10. Uso de Refactor! para crear un procedimiento de propiedades

Mire el video (Demo de 30 segundos de Refractor)

Mire el video (Demo de tres minutos de Refractor)

El complemento Refactor! automatiza varias tareas habituales. Por ejemplo, si desea convertir una sección de código en una función separada, Refactor! le permitirá extraerla y hasta sabrá qué argumentos deben pasarse. Se puede convertir con facilidad cadenas o números de código fijo en constantes. También se puede resaltar alguna expresión y convertirla en una variable local (yo lo hago todo el tiempo).

Principio de la páginaPrincipio de la página

Pruébelo, es gratis

Microsoft está haciendo otra movida inteligente con Visual Studio 2005 al lanzar versiones gratuitas para desarrollo Web y Visual Basic .NET (además de C# y C++). También está lanzando un reemplazo de MSDE más sencillo de implementar con las aplicaciones. El liviano y gratuito entorno de desarrollo de Visual Basic se llama Visual Basic Express. Esto brinda una buena oportunidad para experimentar con .NET sin realizar una inversión importante.

Figura 11. Visual Basic Express

Visual Basic Express incluye las funciones comunes necesarias para crear aplicaciones independientes o bibliotecas de clases. Las herramientas, el diseñador, las clases base, el editor de código y otros componentes son similares a los del producto Visual Studio completo.

Principio de la páginaPrincipio de la página

Es mío, mío y mío

Antes mencioné el regreso de cosas como "Form1.Show". En la jerga de Visual Basic, se trata de una "instancia predeterminada", es decir que, de forma predeterminada, se crea un Form1 con el que se puede comenzar a trabajar y no es necesario crear uno nuevo. Sin embargo, también existen muchas otras instancias predeterminadas disponibles con la palabra clave "My".

Tabla 1 Comandos del espacio de nombres My

Principio de la páginaPrincipio de la página

¿Qué parte de "no quiero instalar Visual Studio 2005" no comprenden?

ComandoDescripción

My.Computer.Network.IsConnected

Determina si el equipo posee una conexión de red o está trabajando sin conexión.

My.Computer.Info.TotalPhysicalMemory

La cantidad de memoria instalada.

My.Computer.Screen.Bounds

Resolución de pantalla.

My.Computer.Audio.Play

Reproduzca un archivo de audio

My.Computer.FileSystem.Drives

Lista de unidades de disco lógicas

My.Computer.FileSystem.FindInFiles

Busca archivos en una carpeta y genera una lista de los que contienen una cadena determinada.

My.Computer.Network.Ping

Genera true o false según si una dirección de red responde a un Ping.

My.Computer.Network.DownloadFile

Descargue un archivo en el disco.

My.Application.SplashScreen

Obtiene o determina la pantalla de inicio de la aplicación.

My.Application.Info.*

Nombre de la compañía, nombre del producto, derechos de autor y otra información de la aplicación especificada por el desarrollador.

My.Settings.*

Obtiene, determina, guarda y vuelve a cargar configuraciones de aplicaciones personalizadas.

Figura 12. Uso del espacio de nombres

Mire el video (Espacio de nombres My)

Principio de la páginaPrincipio de la página

¿Qué parte de "no quiero instalar Visual Studio 2005" no comprenden?

Aunque no planee instalar nunca Visual Studio 2005, hay muchísimas cosas en la versión 2.0 de la interfaz de .NET que puede utilizar desde las aplicaciones de Visual Basic 6. Visual Basic Fusion se creó para poder utilizar todas las funciones de .NET desde Visual Basic 6, sin rescribir el código de Visual Basic 6. Esto corresponde tanto a la versión 2.0 de la interfaz como a la 1.1. Se puede crear una clase de contenedor simple alrededor de la función de .NET que la expone como un objeto COM. A partir de ahí, se puede utilizar la función desde Visual Basic 6, VBA, ASP o VBScript.

Listado 3. Uso de Visual Basic .NET para exponer la función de .NET como un objeto COM

<ComClass(MyWrapper.ClassId, MyWrapper.InterfaceId, MyWrapper.EventsId)> _
Public Class MyWrapper

#Region "COM GUIDs"
    ' These  GUIDs provide the COM identity for this class 
    ' and its COM interfaces. If you change them, existing 
    ' clients will no longer be able to access the class.
    Public Const ClassId As String = "36d8911d-0395-4961-9893-4325fcb5e522"
    Public Const InterfaceId As String = "ae2c5486-fbc4-4043-83f2-1687161858c9"
    Public Const EventsId As String = "0e5e9245-e331-41e8-b84c-6ad3dc69d9bd"
#End Region

    ' A creatable COM class must have a Public Sub New() 
    ' with no parameters, otherwise, the class will not be 
    ' registered in the COM registry and cannot be created 
    ' via CreateObject.
    Public Sub New()
        MyBase.New()
    End Sub

    Public Function NetworkIsAvailable() As Boolean
        Return My.Computer.Network.IsAvailable()
    End Function

End Class

Esto crea un objeto COM que puede utilizarse con facilidad desde Visual Basic 6 u otros entornos basados en COM.

Listado 4. Determinación de la disponibilidad de la red desde Visual Basic 6

Dim c as NetFrameworkWrapper.MyWrapper
Set c = new NetFrameworkWrapper.MyWrapper
If c.NetworkIsAvailable Then
   ...
End If
Principio de la páginaPrincipio de la página

Conclusión

Considero que la versión 2.0 de la interfaz de .NET es un gran obsequio para los desarrolladores que utilizan Visual Basic 6. Se puede redistribuir la interfaz de forma totalmente gratuita y Visual Basic Express ofrece un entorno de desarrollo gratuito que puede utilizarse para crear bibliotecas o aplicaciones completas. Esto quiere decir que se puede extender las aplicaciones de Visual Basic 6 con la interfaz de .NET sin invertir un centavo. Además, la versión 2.0 ofrece algunas funciones excelentes que no estaban incluidas en Visual Basic 6 y se remodeló Visual Basic .NET para que fuera mucho más similar a Visual Basic 6 pero sin afectar el lenguaje. El entorno de desarrollo permite diseñar formularios con gran rapidez y el IDE ahorra mucho tiempo al insertar el código de texto modelo, además de permitir modificar rápidamente el código existente. También se ofrece gran ayuda para corregir los errores de código y de tiempo de ejecución mediante la corrección automática y el Ayudante de excepciones. En conclusión, creo que se trata de una gran adquisición para los desarrolladores que utilizan Visual Basic 6. Si desea seguir utilizando Visual Basic 6, ahora posee miles de nuevas clases en la versión 2.0 de la interfaz que puede utilizar desde las aplicaciones existentes de Visual Basic 6. En caso de que le agrade el entorno de desarrollo, puede utilizarlo de forma gratuita con Visual Basic Express.

Disfrútelo.

Principio de la páginaPrincipio de la página

Recursos adicionales

A Sneak Preview of Visual Studio 2005

Visual Basic Express

Refactor!

What's New in Windows Forms and Controls for Visual Studio 2005

Visual Basic Fusion - Using everything in .NET from Visual Basic 6">Visual Basic Fusion - Using everything in .NET from Visual Basic 6

Principio de la páginaPrincipio de la página

Acerca del autor

Scott Swigart (http://www.swigartconsulting.com/) es consultor de compañías, a las que les enseña a aprovechar la tecnología actual y prepararse para la del futuro. También contribuye en el sitio VB Fusion, donde ofrece información y tácticas para los desarrolladores que utilizan Visual Basic y desean crear la mayor cantidad de funciones con el mínimo esfuerzo. Scott también es MVP de Microsoft y coautor de varios libros y artículos. Para ponerse en contacto con él, escríbale a scott@swigartconsulting.com.


Principio de la páginaPrincipio de la página