El futuro de VisualBasic
WebForms (formularios web), servicios web (servicios web) y mejoras de idioma que aparecerán en una versión
Los lectores de este artículo son usuarios que ya están familiarizados con Visual Basic.
Descripción general: la próxima versión de Microsoft Visual Basic tiene tres mejoras principales: mejoras en WebForms, Webservices y sintaxis orientada a objetos. WebForms permite a los usuarios experimentados de Visual Basic desarrollar aplicaciones de red tan simplemente como escribir programas independientes en la actualidad. A través de la interfaz SOAP, los servicios web le permiten implementar los componentes que diseñe en cualquier lugar donde tenga acceso a Internet. Además, varias mejoras clave en los lenguajes orientados a objetos hacen que el código de Visual Basic sea tan flexible como C, incluidas la herencia, el polimorfismo y la sobrecarga. Para obtener información sobre este aspecto, consulte la "nota clave de VBITS sobre la próxima generación de VisualBasic" de Steve Ballmer.
isualBasic ha sufrido muchas mejoras. Pero una cosa que me ha encantado desde sus inicios es que, en esencia, todavía puedes escribir tus programas de la misma manera que en 1991. Por supuesto, su paquete de software se ha mejorado mucho en comparación con esa época, pero estas mejoras son generalmente complementarias y no oscurecen el propósito de ser una herramienta de programación en sí. Este propósito es: hacer que Visual Basic sea más fácil y rápido para diseñar y escribir. y depurar aplicaciones destacadas orientadas a objetos.
La versión actual de Visual Basic 6.0 presenta WebClasses como un medio simplificado para configurar aplicaciones robustas orientadas a la red. De hecho, las WebClasses proporcionan una gran cantidad de formas de portar programas a Internet a través de herramientas comunes. (Para obtener una discusión detallada sobre la escalabilidad de Visual Basic 6.0 en la red, consulte la "Columna de conceptos básicos avanzados" de Ted Pattison (publicada por Microsoft Internet Developer en octubre de 1999).
Recientemente tuve la oportunidad de conocer algunas de las nuevas mejoras planeadas para la próxima versión de Visual Basic. La principal mejora está en la capacidad de almacenamiento, que ha triplicado la capacidad de almacenamiento disponible para los desarrolladores. Está previsto que la próxima versión de Visual Basic incluya una función en el entorno de Visual Studio® llamada WebForms. WebForms representa una nueva solución de red basada en componentes. Los servicios web se convertirán en una nueva solución basada en XML que publica funciones de procesamiento de eventos de nivel medio a través de protocolos de red estándar. Al mismo tiempo, el lenguaje Visual Basic incluirá algunas construcciones que los desarrolladores han solicitado durante mucho tiempo, haciendo que Visual Basic sea consistente con los hábitos de programación orientados a objetos familiares para los usuarios de C y Java.
Estas mejoras se anunciarán en la próxima versión beta de Visual Basic. Aquí daré algunos fragmentos de código, pero no la solución completa. Entonces, ¿de qué hay que preocuparse ahora? Es simple, siempre que esté decidido a aprovechar estas nuevas características, ahora puede diseñar sus programas a través de estos métodos específicos y obtener los mejores ejercicios prácticos que lo ayudarán a realizar una transición sin problemas a la próxima versión de Visual Basic. Incluso si no lo hace, no tiene nada que perder siempre que organice sus programas futuros de acuerdo con los principios que expongo al final de este artículo.
VisualStudioWebForms
La próxima versión de Visual Basic será parte del entorno de desarrollo de Visual Studio y probablemente introducirá el nuevo concepto de WebForm a los desarrolladores web. El propósito de introducir el concepto WebForm es expandir la función de acceso aleatorio de Visual Basic para que Visual Basic pueda aplicarse a la escritura de programas de red que tienen un impacto cada vez más amplio. Los desarrolladores que utilizan cualquier lenguaje en Visual Studio pueden compartir estos formularios web de Visual Studio.
Una página de WebForms consta de dos partes: un archivo HTML que implementa la interfaz visual de la página de WebForms y un archivo fuente que maneja los eventos de la página de WebForms. Dado que un tercio del desarrollo actual basado en el entorno Visual Basic está orientado a la red, Microsoft planea mejorar aún más las capacidades en esta área. En la próxima versión de Visual Basic, podrá diseñar formularios web de la misma manera que utiliza Visual Basic para generar formularios actualmente. Tendrás una caja de herramientas de controles web. Puede arrastrar y soltar controles directamente en el editor HTML para usarlos. Sólo necesita configurar sus propiedades y escribir el código apropiado. (Ver Figura 1). En resumen, puede realizar estas tareas tal como usaría Visual Basic para generar formularios. Dispondrá de diseños de formularios y código compilado que son totalmente compatibles con IntelliSense®, formato WYSIWYG. Entonces, siempre que sepa cómo escribir aplicaciones usando Visual Basic, WebForms le permitirá convertirse en desarrollador web sin cambiar en absoluto su forma de trabajar.
Figura 1Construyendo un formulario web en cuatro pasos
WebForms se ejecuta en el servidor y solo transmite formularios en formato HTML a los usuarios. Al igual que ActiveServerPage(asp), no es un navegador específico ni una aplicación basada en WebForm, sino que todo el proceso también se ejecuta en el servidor. De hecho, estás ejecutando un programa que genera una interfaz en formato HTML 3.2 para usuarios remotos. A diferencia de las páginas web ASP, estos códigos se compilan y ejecutan en lugar de interpretarse, por lo que la velocidad de ejecución mejora significativamente.
El propósito de diseñar WebForms es obtener las mejores características tanto de ASP como de WebClass. Puede utilizar cualquier lenguaje de la familia Visual Studio para generar formularios web. Por lo tanto, puede utilizar lo que sabe para escribir aplicaciones web eficientes orientadas al servidor.
servicios web
Los servicios web son la segunda mejora importante realizada por el sistema de herramientas de desarrollo Visual Studio. En esencia, un servicio web es un controlador de eventos de nivel medio publicado a través de un protocolo de red estándar. Dado que utilizan HTTP como mecanismo de transporte (consulte la Figura 2), pueden comunicarse a través de firewalls. Simplemente puede construir múltiples servicios web en una aplicación web siempre que las URL estén asignadas adecuadamente. Cuando el programa se está ejecutando, las llamadas entre todos estos componentes internos se empaquetan y llaman automáticamente a través de la interfaz XML. Los desarrolladores pueden escribir y utilizar servicios web en cualquier plataforma y en cualquier idioma. Si necesita confidencialidad, puede utilizar SecureSocketLayer (SSL) o tecnología de verificación estándar.
Figura 2Servicios WebArquitectura
Si algo de esto empieza a resultarle familiar, es un buen lugar para empezar. El mecanismo utilizado para transferir datos entre componentes es SOAP, el Protocolo de licencia de objeto simple. DonBox presentó SOAP en detalle en la revista MSDN™ publicada en marzo de 2000.
Todas estas nuevas características están diseñadas para permitir a los desarrolladores de aplicaciones web componer servicios web reutilizables existentes para que puedan escribir sus aplicaciones más rápido sin tener que escribirlas de nuevo cada vez. Esto marcará el comienzo de una nueva era para los proveedores de códigos de programas y los desarrolladores de programas.
Con la próxima versión de Visual Basic, pronto podrá publicar e implementar las funciones en un proyecto específico en forma de servicio web. Quizás esté familiarizado con el proceso de hacer pública una clase de Visual Basic. Habrá un nuevo logo en la próxima versión de Visual Basic, llamado temporalmente webpublic. Esto significa que el programa se publicará como un servicio web. No sólo puede ser utilizado por proyectos locales que lo necesiten a través de la interfaz COM, sino que también puede servir a cualquier programa de red que haga referencia a su dirección URL. Así como puedes agregar una referencia a un objeto público en un nuevo proyecto, puedes agregar una referencia a un programa de red y usarlo como si fuera un programa local.
Por supuesto, el mecanismo operativo es algo diferente. Visual Basic puede resolver referencias a objetos locales a través de la interfaz COM. Cuando agrega una referencia a un servicio de red a su aplicación, el objeto remoto generará automáticamente la definición de interfaz y la enviará al entorno de desarrollo de Visual Studio utilizando el protocolo SOAP. Aunque se generarán en formato XML, no es necesario que usted mismo realice ningún trabajo de conexión. VisualBasic lo manejará automáticamente. Después de recibir la definición de la interfaz, puede usar IntelliSense como si hubiera escrito código que hiciera referencia al objeto.
He aquí un ejemplo sencillo. En algunos casos, es posible que desee escribir esta función llamada Seahawks, que puede parecerse al siguiente código:
PublicFunctionSeahawks(PorValopponentAsString)AsString
Seahawks = "perder"
Función final
Si el proyecto que construye incluye esta función, Visual Basic generará automáticamente una descripción en formato XML de esta función y la publicará en Internet.
<?xmlversion='1.0'?>
<methodshref='http://julian/Fútbol/Equipos'>
<methodname='Halcones Marinos'href='Halcones Marinos'>
<solicitud>
<paramdt='string'>oponente</param>
</solicitud>
<responsedt='cadena'/>
</método>
</métodos>
Este archivo XML se utilizará para describir las funciones de Seahawks. Si está utilizando el entorno de desarrollo de Visual Studio, puede arrastrar y soltar cualquier servicio web publicado directamente en la aplicación para crear una nueva clase. Si desea llamar a un servicio web en cualquier lugar de Internet, solo necesita crear una instancia de la clase que contiene el servicio web y luego llamar a sus métodos publicados.
Cuando se llama a la función Seahawks, se comunica automáticamente mediante paquetes XML. Si está utilizando Microsoft® Internet Explorer 5.0 (que incluye soporte XML), puede intentar ejecutar esta función en su navegador. También puede llamar a esta función utilizando una dirección URL de la siguiente manera:
http://julian/webservice1/component1.methods/Seahawks?opponent=Miami
Devolverá datos en formato XML de la siguiente manera:
<?xmlversion="1.0"?>
<Response>perder</Response>
Para facilitar el desarrollo de servicios web, Visual Basic introducirá un nuevo tipo de objeto, WebService. Puede diseñar e implementar su servicio web en un servicio remoto tan simplemente como crear un archivo DLL local ahora.
Mejoras en el idioma
Durante mucho tiempo ha existido una relación tensa entre los programadores que prefieren Visual Basic y los programadores que prefieren otros lenguajes más "sofisticados". Más de una vez he defendido mi lenguaje de programación favorito contra las acusaciones de que es un "lenguaje de juguete" y que Visual Basic carece de funciones de programación orientada a objetos.
Bien, ¿adivinen qué pasó? La próxima versión de Visual Basic pondrá fin por fin a sus quejas. Microsoft planea agregar tres características principales de la programación orientada a objetos: herencia, polimorfismo y sobrecarga. ¡Eso no es todo! También se introducirán en el lenguaje Visual Basic construcciones adicionales, incluido el manejo estructurado de errores y la navegación.
La función de herencia le permite diseñar una clase base y luego escribir algunas clases derivadas que heredan las funciones de la clase base. Esto puede ahorrar tiempo y mejorar la reutilización del programa. Por ejemplo, escribes una clase base llamada BaseClass, que tiene una función:
FunciónGetCustomerName()
'Dosomestuff
Función final
Ahora desea escribir otra clase que pueda llamar a la función GetCustomerName de la clase base como si fuera su propia función. ¿Cuál era el antiguo método? Esto no era posible en el pasado. Sin embargo, el nuevo método ahora sólo requiere insertar una línea simple encima de la nueva clase:
HeredaBaseClass
FunciónGetCustomerID()
'Dosomestuff
Función final
Escribir dos o más funciones con el mismo nombre pero con identificadores diferentes se denomina sobrecarga. Hasta cierto punto, Visual Basic ha implementado la sobrecarga en la conversión de tipos internos y la configuración de propiedades al llamar a funciones. Compare las dos líneas siguientes de código válido de Visual Basic:
Texto1.Text="7"
Texto1.Texto=7
En ambas llamadas, el texto en Texto1 se establecerá en la cadena "7". Esta es una llamada sobrecargada porque Visual Basic sabe cómo manejar los diferentes tipos de datos de entrada. Los trata como variables y los convierte automáticamente. Cuando llama a algunas funciones con tipos de parámetros claramente definidos, Visual Basic también realizará la misma conversión. Las siguientes dos llamadas a funciones:
a=SetVal("Esto")
a=EstablecerVal(7)
Las siguientes funciones se pueden llamar correctamente:
FunciónSetVal(xAsString)
Formulario1.Texto1.Texto=x
Función final
Dado que Visual Basic ya puede transferir muchos tipos de variables diferentes, ¿por qué necesita sobrecargar funciones? Esto se debe a que, aunque una sola función actualmente puede manejar múltiples tipos de datos, no puede producir diferentes acciones basadas en los diferentes tipos de datos pasados. En su lugar, compare las dos funciones siguientes:
FunciónGetCustomerID(customerasstring)AsInteger
'Buscar ID de cliente basado en el nombre del cliente
Función final
FunciónGetCustomerID(compra larga)AsInteger
'Buscar ID de cliente basado en pedido SE de compra
Función final
Mediante la sobrecarga, puede implementar funciones basadas en el tipo de datos de entrada. Esto es muy importante para la próxima versión de Visual Basic, porque tiene una nueva característica: protección de tipo de datos predeterminada. Generalmente la conversión automática de variables es beneficiosa, pero puedes imaginar que a veces puede causarte problemas. Por ejemplo, en el ejemplo anterior de SetVal, ¿qué pasaría si quisieras transmitir el carácter 7 en lugar de la cadena "7"? La próxima versión de Visual Basic detectará automáticamente este error. (Si su código se basa en la funcionalidad anterior sin reconocimiento de tipos de Visual Basic, esta característica estará deshabilitada)
Finalmente, el polimorfismo es el proceso de redefinir una clase ya definida. Por ejemplo, desea escribir una clase derivada de BaseClass, pero desea reescribir la función GetCustomerName. En la próxima versión de Visual Basic, podrá implementar esta definición de clase utilizando un nuevo método similar al siguiente: (Nota: la sintaxis final depende de la versión oficial)
HeredaBaseClass
FunciónGetOrders()
Anula FunciónGetOrders()
•••
Función final
Más funciones de sintaxis
La próxima versión de Visual Basic puede tener algo más que las mejoras orientadas a objetos que mencioné anteriormente. También hay generación de subprocesos, manejo de errores y muchas nuevas mejoras tan esperadas en términos de escalabilidad y reutilización.
Actualmente, Visual Basic admite el modelo de subprocesos de apartamento. Si bien este modelo proporciona eficiencias reales para el desarrollo de aplicaciones, no es ideal. La próxima versión de Visual Basic tendrá mejoras en esta área. Adopta un modelo de subprocesos libres, que será útil al escribir aplicaciones de red escalables. Visual Basic también incluirá algunas construcciones de sintaxis que puede utilizar para generar múltiples subprocesos. Las operaciones típicas que ocurren con subprocesos son las siguientes:
sett=NuevoHilo(NuevoHiloinicio
(Dirección de (BaseClass.Function1))
En este ejemplo, puede ver que la próxima versión de Visual Basic tiene la estructura AddressOf, que se utiliza para devolver la dirección de la función. ¡Ya no está obligado a omitir funciones API que requieren punteros de función! Si necesita que le devuelvan la llamada, puede utilizar esto para hacerlo.
Otra mejora planificada es el manejo estructurado de errores. No hace mucho, Visual Basic requería que insertaras numerosas declaraciones OnError en tu código. Durante años me he sentido incómodo al insertar tantas declaraciones GOTO. ¡Estas declaraciones me advirtieron repetidamente que no las volviera a utilizar! Ahora afrontemos el problema: necesitamos un mecanismo de manejo de errores.
La próxima versión de Visual Basic centralizará el manejo de errores. VisualBasic soportará la construcción try...catch...finally como esos lenguajes "nobles". Puede colocar una subrutina que contenga manejo de errores en la parte superior de su código. A continuación se muestra un ejemplo de implementación del manejo de errores:
SubSafeWrite()
Intentar
Abrir "archivo de prueba"
•••
Escribir #1
Atrapar
Mata "archivo de prueba"
Finalmente
Cerrar#1
FinIntentar
FinSub
Hay otras mejoras interesantes con las que los usuarios actuales de Visual Basic se familiarizarán. En la próxima versión de Visual Basic, puede inicializar variables al mismo tiempo que se declaran:
Dimasentero=10
También puede crear e inicializar un nuevo objeto en una expresión. También puedes compartir variables a través de clases. Finalmente, pero no solo, el concepto de herencia se extiende a la base de la interfaz de usuario del proyecto. Una crítica típica a Visual Basic es que dificulta la creación de muchas formas diferentes basadas en la misma base. (Esto suele ser un requisito en un entorno de desarrollo conjunto). En la próxima versión de Visual Basic, podrá hacer esto mediante tipos de plantillas.
Estas mejoras se han anticipado durante años. vamos a ver. Las comunicaciones de Visual Basic (que he estado haciendo durante casi una docena de años) se han vuelto cada vez más complejas, mucho más allá de la primera versión de 1991. Visual Basic se utilizó originalmente para el diseño y desarrollo rápido de prototipos de herramientas pequeñas y portátiles en sus inicios. Como resultado, Visual Basic ganó una reputación (inesperada, en mi opinión) como "lenguaje de juguete". Ahora que claramente ya no es un juguete, cualquiera que diga eso está actuando por prejuicio ciego. En la actualidad existe una gran cantidad de paquetes de software basados en Visual Basic en diversos campos. VisualBasic está evolucionando. El año pasado, en el Centro de Investigación, hablé con un desarrollador de software que escribía programas usando Web-Class que recibían millones de visitas por semana.
Los cambios en la próxima versión de Visual Basic son sorprendentes. Si desea obtener los beneficios que aportan, utilícelos. Si no lo desea, puede utilizar con confianza lo que todavía está utilizando. Sin embargo, es bueno saber que las funciones que realizan C y Java se pueden implementar en un lenguaje como Visual Basic que es mucho más fácil de usar que C y Java.
Tendencias de desarrollo futuras
¿Qué tipo de impresión te dejó esta presentación preliminar? Es una buena pregunta, pero puedes encontrar la respuesta. El año pasado, podemos ver claramente los cambios en el desarrollo ASP. Estos programas de desarrollo a menudo constan de algunos scripts ASP fáciles de leer y todo el programa se ejecuta en base a estos scripts. Dado que ASP interpreta y ejecuta todo el código script, la gente descubre gradualmente las limitaciones inherentes de esta tecnología al ensamblar cada componente. Escucho que cada vez más desarrolladores dicen que quieren separar completamente sus controladores de eventos del código de script e implementarlos bajo un modelo de compilación más rápido, escrito en C++ o Visual Basic, a través de una interfaz COM para ensamblaje.
Por cada motivo que se te ocurra, Visual Basic puede satisfacerlo. En realidad, diseñar componentes con Visual Basic no es más difícil que usar VBScript o JScript®. Puede escribir código que se ejecute más rápido y cumpla sus requisitos fácilmente. Cuando se lance la próxima versión de Visual Basic, podrá utilizar Visual Basic para generar objetos orientados a la red que sean compatibles con ASP. En resumen, tomar la ruta de la combinación de componentes se considerará la mejor opción ahora y en el futuro.
Como mencioné anteriormente, existe una amplia base de aplicaciones orientadas a Internet escritas con Visual Basic (y WebClasses). El problema es que la mayoría de las aplicaciones basadas en WebClasses no están bien diseñadas. No distinguen bien entre las diferentes capas de la aplicación, confundiendo los procesos de nivel medio con interfaces de usuario basadas en DHTML.
La próxima versión de Visual Basic introducirá WebClasses, que son herramientas cuidadosamente seleccionadas para el desarrollo web. Porque es más escalable, más potente y verdaderamente independiente del idioma. Funciona en todas las herramientas de Visual Studio. Si presta atención a algunas reglas básicas del desarrollo multicapa, podrá realizar esta transición fácilmente. Se debe prestar especial atención a la separación del proceso de la capa intermedia y el proceso de la capa de visualización. Se recomienda encarecidamente consultar la arquitectura Windows® DNA2000 al realizar estas tareas. Las funciones principales de procesamiento de eventos deben completarse en la capa intermedia y puede utilizar varios componentes escritos en su lenguaje compilado favorito para implementar estas funciones. Luego, estos componentes se ensamblan en un archivo de script ASP para que puedan funcionar juntos. Sería ideal si pusieras la mayor parte de tu lógica en objetos de eventos en lugar de scripts. No sólo es una buena idea para futuras transiciones a servicios web, sino que también es una práctica que vale la pena emular. ->