EL USUARIO PROPONE Y MICROSOFT DISPONE Se han añadido al producto las características que, según Microsoft, los programadores deseaban:
A tal fin, el objetivo prioritario del equipo de desarrollo de Visual C++ ha sido que su herramienta facilite y acelere la programación de aplicaciones y componentes altamente eficaces. El resultado es que el código que Visual C++ 5.0 genera es más pequeño y rápido, la productividad mejora a causa de las facilidades para el trabajo con ActiveX y COM en proyectos, y la escalabilidad se obtiene con soporte para el trabajo en grupo (mediante Visual SourceSafe 5.0 y el uso de SCCI) y un adecuado acceso a datos (optimizado con Microsoft Transaction Server 1.0, developer edition). MEJORAS EN EFICACIA El generador de código se ha cambiado casi por completo, siendo así que la velocidad del código ha aumentado (y su tamaño disminuido) en más de un 10% (respecto de una compilación equivalente con la versión 4.2). Además se ha añadido soporte específico para Intel MMX y Pentium Pro. Se han optimizado el proceso de enlazado (linking) y el de inlining, a la vez que ahora el producto cuenta con la biblioteca C++ normalizada de Plauger, con unas nuevas MFC (Microsoft Foundation Classes) multienhebradas y con la ayuda de la ATL (Active Template Library) 2.0, para la construcción de controles ActiveX optimizados en tamaño. De hecho la unión de MFC y ATL se denomina MFC&T, con la idea de dotar de un sólo nombre a la unión de la solidez y productividad de las MFC con la eficacia de las plantillas. Naturalmente el lector ya habrá adivinado que esto es sólo estiércol comercial, pues fácilmente las MFC podrían haberse basado directamente en plantillas sin cambiar el nombre. Y no es éste un nuevo asunto de Visual C++ 5.0. BIBLIOTECAS, PLANTILLAS Y COM Del éxito de las MFC no voy a quejarme ahora (aunque he de confesar que su diseño me causa frecuentes pesadillas y escalofríos neuronales). Tampoco puedo renegar del soporte industrial que otros fabricantes de compiladores C++ le han dado: Symantec, Borland, MetaWare, Watcom, etc. Ni siquiera podría decir que las 120.000 líneas de código en las que se basa la biblioteca son especialmente ineficientes. Pero el diseño, el diseño... En fin, dicen que a todo llega a acostumbrarse uno. Volviendo a las MFC, hay que decir que Visual C++ 5.0 proporciona asistentes para la construcción de aplicaciones basadas en tal biblioteca: |
||||||||||||
Figura 1: MFC AppWizard |
||||||||||||
| Claro que, con todo, faltaban las plantillas, que ahora llegan de la mano de la ATL. ¿Y qué es la ATL? Un conjunto de clases C++, sustentadas en plantillas (templates), con las que pueden fácilmente crearse objetos COM pequeños y eficientes (pues tales son, en el ámbito del lenguaje C++, los objetivos también de las plantillas). ATL nos proporciona plantillas de implementaciones de IUnknown, IClassFactory, IClassFactory2 e Idispatch, interfaces duales, interfaces de enumeración COM normalizados, puntos de conexión, interfaces desgajables y, por supuesto, controles ActiveX. Naturalmente el pertinente asistente nos será de gran ayuda: | ||||||||||||
Figura 2: ATL COM AppWizard |
||||||||||||
Se ha procurado la integración del IDE de Visual Studio respecto de Visual C++, Visual J++, Visual InterDev, Visual SourceSafe y MSDN, a la vez que se ha mejorado el sistema de compilación (build) de proyectos y añadido barras de comandos. La siempre deseable personalización del entorno viene, por otro lado, de la mano de Visual Basic Scripting Edition y de la posibilidad de construir servidores de automatización en cualquier lenguaje. |
||||||||||||
Figura 3: Integración de Visual C++ en Visual Studio |
||||||||||||
El nuevo entorno ha añadido soporte COM directamente embebido en el lenguaje, de forma que a la facilidad y eficacia con que mediante la ATL 2.0 se construyen objetos COM, se adicionan capacidades de edición visual COM y, sobre todo, la gran simplificación consecuente del código, como puede apreciarse en el siguiente ejemplo:
ASISTENTES Visual C++ 5.0 provee, además de los vistos, muchos y variados asistentes (wizards), clasificables en tres tipos:
|
||||||||||||
Figura 4: MFC ActiveX ControlWizard
Figura 5 : Custom AppWizard |
||||||||||||
ESTÁNDARES Visual C++ 5.0 contiene las últimas adiciones al borrador del estándar ANSI/ISO del lenguaje, incluyendo namespaces, plantillas, conversiones, excepciones y RTTI, además de las nuevas (no tan nuevas) palabras reservadas bool, explicit, mutable y typename. Hay que decir que hay otras características que no se han contemplado. Claro que se trata de un borrador. INTERNET La biblioteca de clases MFC encapsula WinInet (ActiveX, http, ftp, gopher, ISAPI, etc.), además de soportar URLs asíncronas. Pero además el IDE de Visual C++ 5.0 es sensitivo a HTML respecto de su edición y ayuda contextual. De esta forma el tan deseado código HTML puede ser ahora embebido, sin más, en el código C++.
El Asistente ISAPI permite, al fin, crear filtros y extensiones de servidores Web. BASES DE DATOS La edición corporativa (Enterprise Edition) de Visual C++ conlleva soporte SQL sustanciado en depuración SQL remota, edición SQL y... ¡en la inclusión del producto Microsoft SQL Server 6.5! Bueno, no sé si esto será soporte, pero queda muy bien dicho así. Por otro lado la herramienta aporta enlace con datos mediante DAO, RDO y Apex. Además las MFC constan de clasese ODBC de enhebramiento seguro, mientras que la ATL soporta Internet Information Server y objectos MTS. |
||||||||||||
Figura 6: Soporte de Bases de Datos |
||||||||||||
| Pº. Castellana 188, 14º e · 28046 - Madrid · info@a4devis.com |
||||||||||||