Microsoft Visual Studio Team System 2008

El liderazgo de Microsoft en lo que se refiere a herramientas de desarrollo se consolida gracias a este Visual Studio que se adapta al programador y a equipos de trabajo. Os contamos más detalles en este artículo

Microsoft Visual Studio Team System 2008

5 septiembre 2008

Visual Studio 2008 tiene un abanico de ediciones dirigidas a cubrir desde las necesidades más básicas de los programadores aficionados hasta las más exigentes de equipos profesionales. Su gama de precios está en consonancia con la funcionalidad que ofrece, partiendo de una edición gratuita, Express Edition, hasta los 11.000 euros de la Team System, que nosotros analizamos.

El producto va acompañado de la versión 3.5 de la plataforma .NET y cuenta con compiladores para tres lenguajes distintos, Visual Basic, Visual C# y Visual C++, que también han evolucionado. En conjunto, se aporta más potencia, flexibilidad y menos esfuerzo. La finalidad de este artículo es ofrecer una visión general de un completo sistema que cubre necesidades para las que era preciso recurrir a múltiples aplicaciones por separado.

Servicios .NET 3.5

Desde Visual Studio 2005, Microsoft ha desarrollado dos nuevas versiones de la plataforma .NET, la 3.0 y la 3.5, y ambas han ido agregando capas de servicios, si bien las más importantes corresponden a la 3.0. A ella, se debe la existencia de WPF (Windows Presentation Foundation), WCF (Windows Communication Foundation), WWF (Windows Workflow Foundation) y CardSpace.

WPF representa un modelo para la confección de interfaces de usuario en aplicaciones cliente, una alternativa a los clásicos formularios Windows (WinForms) de versiones previas. Estas interfaces se describen en un lenguaje denominado XAML (eXtensible Application Markup Language) y construido por Microsoft para este fin. Se consigue, de esta forma, que las interfaces sean independientes del lenguaje de implementación, de manera análoga a cómo las interfaces de las aplicaciones web, basadas en XHTML/CSS, son independientes del lenguaje empleado en el servidor para generarlas. Visual Studio 2008 cuenta con asistentes para generar aplicaciones WPF, un diseñador WPF y el editor de código, que reconoce la sintaxis de XAML, lo cual permite aprovechar al máximo esta API.

Mediante WCF se simplifica la construcción de sistemas informáticos estructurados como servicios distribuidos, incluyendo el control de transacciones seguras. Con WCF es posible utilizar un modelo unificado a la hora de desarrollar servicios y aplicaciones clientes que los consumen, pudiendo sustituir a otras soluciones de versiones previas como los servicios web ASMX o .NET Remoting.

El uso de protocolos estándar, como el archiconocido SOAP (Simple Object Access Protocol), hace posible la integración de proyectos WCF con otros existentes sin importar la plataforma en que se ejecuten o el lenguaje en que se hayan escrito. CardSpace es un sistema cuyo objetivo es incrementar la seguridad en el acceso a servicios y a aplicaciones mediante la gestión de la identidad digital del usuario. Su base se encuentra en los servicios WS (definidos como estándares OASIS, por ejemplo WS-SecurityPolicy).

En la versión 3.5 de la plataforma se han introducido mejoras en todos estos servicios, así como en otros que no habían eperimentado cambio alguno desde la versión 2.0, como ASP.NET, ADO.NET, servicios criptográficos, etc.

Modernos lenguajes

Para aprovechar algunos de los servicios que incorpora la plataforma .NET 3.5, en especial los relativos a acceso a datos como LINQ (Language Integrated Query), ha sido preciso introducir en los lenguajes funcionalidades inexistentes. Muchas de ellas tendrán aplicaciones no relacionadas con las bases de datos y, en gran parte, contribuirán a simplificar el código que escribamos.

Es el caso, por ejemplo, de la inferencia de tipos y la inicialización de objetos complejos en la propia declaración, dos de las novedades de Visual Basic y Visual C#. En estos lenguajes, el compilador es capaz de determinar (inferir) el tipo de una variable a partir de los datos con que se inicialice, manteniendo la comprobación estricta de tipos en la fase de compilación. En cuanto a la inicialización de objetos, se trabaja con variables complejas sin tener que definir con anterioridad una estructura o clase, gracias a los denominados Tipos anónimos.

El modelo de delegados que existía en los lenguajes .NET, se ve extendido en los compiladores mediante lo que se denominan expresiones lambda. Básicamente, se trata de escribir directamente el código que debe ejecutar un delegado in situ, una idea tomada de los lenguajes funcionales.

Mediante los métodos de extensión, es posible ampliar la funcionalidad de tipos ya existentes sin necesidad de crear derivados. Basta con escribir los métodos a agregar al tipo, siguiendo una cierta estructura o usando atributos, y colocarlos en el ámbito donde se desean utilizar. Tampoco se trata de un concepto nuevo, ya que existen lenguajes que los usan, pero lo interesante es que son dinámicos.

Herramientas de ingeniería

Las ediciones Express, Standard y Professional aúnan en el entorno los elementos que se han descrito en los apartados previos, mientras que las ediciones superiores, Architecture, Development, Database y Test, suman un gran conjunto de herramientas adicionales.

La primera cuenta con herramientas de diseño de alto nivel con las que es posible planificar aplicaciones y sistemas completos, por lo general siguiendo una arquitectura distribuida, estableciendo los elementos que lo conforman, la manera en que se comunican, la configuración en que serán ejecutados, restricciones a tener en cuenta, etc.

Mediante las opciones que añade la segunda edición es posible analizar el código de los proyectos, detectando potenciales problemas de seguridad, encontrando cuellos de botella y preparando el código para el posterior proceso de prueba siguiendo unos patrones.

Para los responsables de bases de datos, la tercera ofrece utilidades para comparar esquemas y el contenido, facilitando el control de los cambios introducidos; opciones de refactorización y un editor específico para Transact-SQL, el lenguaje en el que se escribe los procedimientos almacenados y funciones en SQL Server.

Con la última versión se obtiene todo lo necesario para diseñar casos de prueba, tanto clásicos como con conexión a datos o para aplicaciones web. Una vez diseñados es posible ejecutarlos individualmente o por lotes para hacer pruebas de carga en la aplicación.

Estas ediciones de Visual Studio 2008, que pueden adquirirse conjuntamente con el nombre Team Suite integrando todas las herramientas en un mismo entorno, se complementa con TFS (Team Foundation Server), un producto que actúa como servidor de colaboración del equipo de desarrollo.

Más allá del Escritorio

Además de aplicaciones para la plataforma .NET, Visual Studio 2008 cuenta con los componentes y herramientas adecuados para construir otro tipo de soluciones dirigidas a entornos diferentes.

Gracias a ASP.NET 3.5, es posible desarrollar aplicaciones de este tipo de una forma sencilla con el diseñador de interfaces XHTML/CSS y un gran conjunto de componentes prefabricados. Entre ellos, se incluyen los necesarios para elaborar interfaces AJAX de última generación, con la biblioteca Microsoft AJAX Library.

Si nos interesa crear aplicaciones para dispositivos móviles, elegiremos el tipo de dispositivo y la versión de la plataforma .NET compacta sobre la que se ejecutarán losprogramas, la 2.0 o la 3.5. El entorno de diseño y la biblioteca de componentes se ajustará según las opciones elegidas. Los emuladores de dispositivo facilitan la prueba de las aplicaciones sin necesidad de transferirlas a un equipo físico y simplificando la depuración.

Con las plantillas para Office 2003 y 2007, no disponibles en las ediciones más básicas de Visual Studio 2008, es posible crear complementos y plantillas para Word, Excel, PowerPoint, Project, Outlook, Visio e InfoPath, así como flujos de trabajo de SharePoint. Este tipo de proyectos requieren que en el sistema se tenga instalado el producto correspondiente.

La integración de la plataforma .NET en las últimas versiones de SQL Server, la 2005 y la 2008, hace posible el desarrollo de funciones y procedimientos almacenados en lenguajes distintos a T-SQL, que es el lenguaje propio de este RDBMS. Visual Studio 2008 también cuenta con los elementos necesarios para desarrollar este tipo de proyectos.

Resumiendo

En conjunto se obtiene un sistema completo formado por la plataforma de servicios .NET, los compiladores de varios lenguajes, editores y diseñadores específicos para cada tipo de tarea, opciones de depuración y análisis de código, de modelado de sistemas y aplicaciones, de desarrollo y ejecución de pruebas, administración de bases de datos, etc.

Asistentes, diseñadores y editores

El entorno de Visual Studio 2008 también se ha actualizado. Uno de los cambios es la posibilidad de elegir, en el momento en que se inicia un nuevo proyecto, la versión de la plataforma a la que se dirige. Las opciones son 2.0, 3.0 y 3.5. Dependiendo de la que se elija, estarán o no disponibles ciertas herramientas y servicios.

Entre los diseñadores, cabe destacar la introducción en el entorno del diseñador para interfaces WPF, que facilita el aprovechamiento de las avanzadas propiedades de este servicio sin necesidad de recurrir a herramientas externas. Se contempla tanto las nativas como las web con interfaces WPF, distribuidas en forma de paquetes XBAP.

El editor de código de Visual Studio 2008 reconoce ahora la sintaxis de XAML, de forma que es posible modificar las interfaces WPF de forma manual. Al trabajar con JavaScript también se apreciarán mejoras notables, ya que, ahora, IntelliSense ofrece ayuda en forma de listas desplegables al trabajar con dicho lenguaje. Esas ventanas emergentes, que ofrecen listas de miembros, información sobre parámetros y datos similares, pueden hacerse semitransparentes cuando interese ver lo que hay debajo sin llegar a cerrarlas.

Además de las mencionadas, hay mejoras menos importantes en diversos elementos del entorno, como el diseñador de clases, que puede ser utilizado también con el lenguaje C++ o los diseñadores y editores de páginas de estilo CSS.

Algunos datos técnicos