En julio del año 2000 Bill Gates presentó en el Professional
Developer Conference de Orlando (PDC) una vista preliminar de la
nueva plataforma de desarrollo Microsoft .NET. Han pasado
tres años desde aquel evento y en este tiempo hemos sido testigos
de cómo .NET ha pasado de ser una visión de futuro a una realidad.
Hoy la industria de la informática no tiene dudas de la necesidad
de abrir las aplicaciones a estándares abiertos, y que los
servicios web proporcionan la tecnología para conseguirlo. Por
aquel entonces nos resultaba complicado imaginarnos una aplicación
sin componentes COM, modelo de hilos o contadores de referencias.
La integración entre aplicaciones se basaba en desarrollos a medida
sobre APIs o protocolos propietarios. Tres años después ya casi no
nos acordamos de todo eso. .NET ha conseguido introducirse en la
gran mayoría de las empresas de software y ha cambiado el modo en
el que desarrollábamos aplicaciones. Aquel PDC del año 2000 nos
sirvió para conocer la plataforma sobre la que íbamos a desarrollar
en el futuro.
Con estos precedentes se anunció una nueva conferencia PDC en Los
Ángeles el pasado mes de octubre. El interés superó todas nuestras
expectativas, de hecho dos semanas antes del evento se colgó el
cartel de "no hay billetes" por alcanzarse la capacidad máxima del
Centro de Convenciones. En esta ocasión Microsoft presentó las dos
siguientes oleadas de tecnologías que viviremos los próximos años,
entrando en detalle sobre el modelo de desarrollo de cada una de
ellas e incluso repartiendo entre los asistentes un juego de DVDs
con una vista preliminar de los bits definitivos.
La idea principal de todo este desembarco tecnológico gira en torno
a .NET. En la actualidad utilizamos la plataforma .NET para
construir la lógica de negocio, exponer su funcionalidad por
protocolos estándares y accederla en cualquier momento y desde
cualquier dispositivo (ya sea web, Windows o dispositivo móvil). El
objetivo próximo de Microsoft consiste en llevar este modelo de
arquitectura a otros dos elementos presentes en las aplicaciones:
el motor de almacenamiento de datos y el sistema operativo. Esto
significa que .NET y XML formarán parte de ambos, por lo que las
herramientas y el modelo de desarrollo que utilizaremos serán los
mismos que en el resto de nuestra aplicación.
Primera oleada: Yukon
y Whidbey
La primera oleada se centrará en el motor de almacenamiento
estrella de Microsoft, SQL Server. La próxima versión de SQL
Server, llamada provisionalmente Yukon, permite utilizar .NET como
modelo para el desarrollo de la lógica de servidor. Hasta ahora
teníamos que cambiar nuestra forma de desarrollar dependiendo de si
nuestro código se ejecutaba en la lógica de negocio o junto a los
datos. En el primer caso disponíamos de la ayuda del Framework
.NET, su librería de clases, la posibilidad de utilizar
cualquier lenguaje y un entorno como Visual Studio .NET. Sin
embargo, todo cambiaba si nuestro código debía ejecutarse en el
propio servidor. En ese caso teníamos que utilizar el lenguaje
T/SQL perdiendo la riqueza de las clases .NET, la orientación a
objetos, la facilidad de depuración y un sinfín de cosas más.
En Yukon podemos decidir si nuestro código .NET se ejecuta en la
capa de negocio o en el mismo servidor de datos, de hecho un
procedimiento almacenado en Visual Studio .NET no es más que otro
tipo de proyecto. Podremos utilizar cualquier lenguaje para
escribir el procedimiento almacenado y acceder a los tipos .NET,
por ejemplo de acceso al disco, cifrado de datos o tratamiento de
imágenes. Además, Yukon permite que el proceso de depuración e
instalación sean también automáticos. Cuando acabemos el
procedimiento almacenado será instalado en el servidor remoto y
podremos depurarlo como cualquier código .NET, ejecutándolo paso a
paso o consultando el valor de las variables.
.NET está presente en el resto de elementos de Yukon. Además de
procedimientos almacenados, podremos desarrollar triggers,
funciones, tipos definidos por el usuario y agregaciones de datos.
Visual Studio .NET se convierte también en la herramienta de
desarrollo de Analysis Server, DTS o el recién incorporado
generador de informes.
Los otros elementos presentes en una arquitectura .NET orientada a
servicios son el XML y los servicios web. Yukon está pensado para
el almacenamiento no sólo de información relacional, sino también
de datos semi-estructurados en forma de XML. Almacenar estos datos
puede parecer sencillo (un documento XML no es más que una cadena
de texto), pero el procesamiento de los mismos es mucho más
complejo. Yukon permite validar los documentos XML almacenados
según un esquema XSD que definamos y realizar búsquedas sobre los
mismos de forma indexada, con el mismo rendimiento que una búsqueda
tradicional. Incluso podremos relacionar los datos estructurados
con los elementos XML y tratarlos de forma conjunta. Todo ello
utilizando estándares como XQuery, que permite realizar consultas
sobre documentos XML del mismo modo que T/SQL permite realizarlas
sobre datos relacionales.
El acceso por servicios web a Yukon también está contemplado,
incluyendo un conector SOAP nativo que puede exponer vistas XML de
los datos relacionales y semi-estructurados o ejecutar
procedimientos almacenados y sentencias T/SQL dinámicas.
Whidbey
La próxima versión del Framework .NET y Visual Studio (nombre en
clave Whidbey) estará alineado con Yukon en esta primera oleada. El
cambio que veremos en esta versión del Framework será muy
importante, tanto que en lugar de 1.2 como correspondería llevará
el nombre de 2.0. Al estar alineado con Yukon, Whidbey estará
especialmente adaptado para el funcionamiento conjunto con éste.
Además de la capacidad de escribir la lógica de servidor de Yukon,
dispondremos de una nueva versión de ADO.NET que nos permitirá
sacar el máximo partido al motor de almacenamiento. La mayoría de
estas características están enfocadas a conseguir mayor rendimiento
y escalabilidad en nuestra capa de acceso a datos (operaciones
asíncronas, paginación de resultados), pero también nos permitirán
construir aplicaciones nuevas muy difíciles de desarrollar hasta
ahora (notificaciones sobre cambios, servicios de colas de
mensajes).
La mayoría de las nuevas características de Whidbey están dirigidas
a aumentar la productividad del desarrollador. Visual Studio .NET
incorpora mejoras espectaculares en el diseño de formularios web y
Windows, pero también incluye por primera vez herramientas que
asisten al desarrollador como el refactoring, plantillas de código
parametrizables, corrector automático, etiquetas inteligentes, etc.
Desde luego la línea de código más productiva es la que no tienes
que escribir. Por eso Whidbey aumenta considerablemente el número
de clases de la librería base para cubrir aspectos que antes
teníamos que programar nosotros mismos. ASP.NET incorpora
funcionalidad típica también lista para usar, como los webparts,
las páginas maestras, skins, membership, etc. También se añaden
características a los lenguajes de desarrollo para mejorar la
productividad, como los genéricos o el editar y continuar.
Para el desarrollo de aplicaciones empresariales se incluye un
nuevo modelo de programación denominado Business Framework, con la
funcionalidad de metadatos, persistencia de entidades, seguridad,
transacciones y análisis OLAP, normalmente necesarios en este tipo
de aplicaciones. Todo ello acompañado de un motor de mapeo de
objetos a bases de datos (ObjectSpaces) y diseñadores gráficos
integrados en Visual Studio, además de herramientas que soportan el
ciclo de vida completo de un proyecto software.
Segunda oleada: Longhorn
La siguiente oleada de tecnología vendrá liderada por la nueva
versión del sistema operativo, llamada provisionalmente Longhorn, e
incluirá también la actualización de la plataforma de desarrollo
.NET, denominada Orcas. Longhorn cambiará radicalmente el concepto
de sistema operativo Windows hasta la fecha y el modo en el que
desarrollamos las aplicaciones sobre él.
Como ocurría en Yukon, el primer cambio importante que notaremos en
Longhorn es la integración completa con .NET y XML. La API de
acceso al sistema operativo es manejada (WinFX) con un diseño de
clases pensado desde el principio para su uso desde lenguajes .NET.
Los servicios del sistema operativo para las aplicaciones
(transacciones, seguridad, colas de mensajes, etc.) evolucionan en
un nuevo sistema llamado Indigo pensado desde el principio para que
sea utilizado desde aplicaciones con arquitecturas basadas en
servicios XML. De hecho Indigo incluye también toda la fontanería
necesaria para distribuir estos servicios entre sistemas
heterogéneos, según los futuros estándares que añaden seguridad,
transaccionalidad o fiabilidad a los servicios web.
Longhorn redefine los actuales sistemas de almacenamiento en disco.
NTFS se hace transaccional, lo que permite acceder y modificar el
contenido del disco dentro de una transacción. Sobre esta
tecnología se monta WinFS, un sistema que guarda el contenido de
los archivos en NTFS y la información estructurada asociada a ellos
(propiedades, relaciones, categorías...) en un almacén relacional.
Esto proporciona capacidades de clasificación y búsqueda
impensables hasta ahora y que originará un nuevo concepto de
aplicación.
El subsistema de interfaz gráfico de Longhorn se denomina Avalon.
En un primer vistazo a esta tecnología nos llamará la atención su
nuevo motor basado en 3D, o las capacidades multimedia que posee,
lo que nos permitirá diseñar aplicaciones con un aspecto
alucinante. Sin embargo Avalon es mucho más que eso, y su principal
objetivo se centra en eliminar las barreras existentes entre
aplicaciones web y Windows. Con un mismo modelo de desarrollo ahora
podremos elegir qué características queremos en nuestra aplicación
de cada uno de esos mundos. Por ejemplo, Avalon permite un modelo
conectado, donde cada pantalla se descarga de un servidor (como las
páginas web), y un modelo desconectado, donde todas las pantallas
son compiladas junto a la lógica en un mismo ejecutable
descargable. Podremos optar también por un interfaz orientado al
documento (como una página HTML) o utilizar formularios con
controles Windows. Mostrar el interfaz mientras se descarga,
definirlo de forma separada al código o ejecutarlo de forma segura
son otras de las opciones que dispondrá este nuevo modelo de
desarrollo.
¡Quiero usarlo ya!
Estas dos oleadas no serán inmediatas. Yukon y Whidbey están
todavía en una fase de beta temprana, Longhorn todavía no ha
llegado a este nivel y sólo está disponible una vista preliminar de
la tecnología. Si quiere adelantarse a estos cambios le recomiendo
que conozca lo que supondrán (un buen inicio son los artículos de
Yukon, Whidbey y Longhorn que encontrará en este primer número de
doNetMania). Pero sobre todo tenga presente que el concepto básico
de estos cambios es llevar el modelo de desarrollo .NET a todos los
elementos de una aplicación, por lo que utilizar a día de hoy el
Framework .NET le garantizará una integración sencilla con estos
nuevos servicios y una curva de aprendizaje mucho más rápida.