Avalon & Indigo (WPF & WCF)

Muchos hemos escuchado todo el “hype” de las nuevas tecnologías que MS actualmente está desarrollando. Entre las dos más prominentes e importantes es la liberación de Windows Presentation Foundation (Avalon) y Windows Communication Foundation (Indigo). He recibido varias preguntas sobre de estas tecnologías y me gustaría hacer una pequeña disección de cada una de ellas, para que nos quede más claro a todos. En este post hablaremos un poco sobre Windows Presentation Foundation.

Windows Presentation Foundation
Hace algunos años, desarrollamos aplicaciones en diferentes tecnologías y con diferentes técnicas, aplicaciones monolíticas, aplicaciones cliente servidor, aplicaciones distribuidas, lo que sea… y mucho ha cambiado la manera en que hemos desarrollado nuestas aplicaciones durante los años. Sin embargo, hay algo que no ha cambiado considerablemente: la interfase de usuario.

Es un hecho que seguimos usando el mismo GDI para la creación de las aplicaciones de escritorio y realizar aplicaciones más complicadas nos lleva bastante tiempo. ¡¡Es exactamente el mismo motor que se desarolló hace 10 o 20 años!!

Es por eso, que para facilitar el uso de aplicaciones, MS decidió desarrollar una nueva tecnología denominada Avalon (que después se publicó con su nombre de mercado como Windows Presentation Foundation).

¿Qué es exactamente esta tecnología/plataforma/framework?
Básicamente es un motor unificado de presentación de interfases de usuario basado primordialmente en DirectX explotando al máximo todos los servicios que las tarjetas gráficas de hoy en día poseen.

La idea es que podamos como desarrolladores crear interfases de usuario consistentes y más ricas en cuanto a gráficos se refiere, haciendo uso de las herramientas o del motor gráfico de WPF. Si alguna vez has tenido la necesidad de incorporar gráficos complicados en una de tus aplicaciones, te habrás dado cuenta que no es un trabajo trivial; además de esto que no todos los desarrolladores tenemos las habilidades como para diseñar una interfase gráfica muy avanzada.

Entonces, esto nos lleva a una separación de roles a la hora de diseñar aplicaciones. Va a existir un nuevo rol de “diseñador” para los que desarollan con Avalon. Pero el gran problema de esto es: ¿como permitir una integración sencilla para que el diseñador se dedique al diseño y el codificador al código? La respuesta: XAML. XAML es un lenguaje declarativo (derivado de XML) que permite generar descripciones completas de cada uno de los objetos de la interfase de usuario permitiendo asociar código a cada uno de estos elementos, permaneciendo como un lenguaje neutral y estándar.

Si hacemos una comparación, desarrollar con XAML y código administrado (managed code) es como usar ASP.NET con HTML y código administrado. El diseñador se encarga de desarrollar en XAML y el codificador se encarga de desarrollar C# (o su lenguaje .NET de preferencia). Pero, ¿si el codificador usa Microsoft Visual Studio NET 2005 como herramienta de codificación del llamado código atrás, con que se desarrolla o diseña en XAML ? Hoy en día, muchos usan Notepad para crear sus archivos en XAML… pero siendo un lenguaje declarativo requiere de bastante código para crear una UI compleja, para eso Microsoft (y terceros) están desarrollando herramientas de diseño que nos creen código XAML. La herramienta oficial es Sparkle aunque existen otras como Aurora o ZAM3D.

Ahora, hablando de 3D; XAML nos provee con un soporte a primitivos de tercera dimension e incluso animaciones dentro del mismo motor, sin necesidad de escribir toneladas de código. Otra cosa interesante, que al estar separadas la interfase del código, el diseñador puede echar a volar su imaginación sin que le diga al codificador “ahora quiero que cuando le den clic en el botón de OK gire tres veces la pantalla, se desvanezca y se mueva al infinito”.

WPF es una tecnología que en futuro reemplazará las aplicaciones basadas en Windows Forms. Sin embargo, esto se hará gradualmente. Además de esto las aplicaciones sufrirán una “evolución” (así me gusta llamarla) ya que nos abre unas puertas a un nuevo tipo de aplicaciones, las “Navigation Applications”. El escenario va así, aplicaciones desarrolladas como aplicaciones de escritorio que permanecerán con la misma funcionalidad con las que inicialemente fueron creadas sin embargo, estas residirán en un servidor Web y tendrán más ventajas que las aplicaciones de escritorio tradicionales, son como las aplicaciones que desarrollamos alguna vez con Visual Studio 2003 y no-touch deployment, web-like applications.

Windows 1.0 Windows 2.0 Windows 3.0 Windows 95 Windows 98 Windows XP
Evolución de la interfase gráfica de Windows

Espero que esta breve introducción sobre Windows Presentation Foundation (codename Avalon) les haya servido un poco. Continuaremos el siguiente post con información sobre Windows Communication Foundation (codename Indigo) muy pronto. Todos sus comentarios son bien recibidos y cualquier omisión y/o duda siempre será bien recibido.

Cheers!


Comentarios

Deja una respuesta