El
presente artículo tiene como objetivo dotar al lector de elementos básicos de
la tecnología WPF, como uno de los saltos positivos presentados por Microsoft
como parte del malogrado Sistema Operativo Windows Vista.
En general
WPF permite el desarrollo de interfaces
de interacción tomando características de aplicaciones Windows y de
aplicaciones web. Se incluye con Windows Vista, Windows 7 y Windows Server
2008, también está disponible para Windows XP Service Pack 2 o posterior y
Windows Server 2003.
Arquitectura básica
Desde el punto de vista arquitectónico
los componentes más importantes son los siguientes:
Entre ellos:
·
PresentationFramework
Contiene todos los controles WPF más otras funcionalidades usables.
Contiene todos los controles WPF más otras funcionalidades usables.
·
PresentationCore
API de bajo nivel que trata directamente con el sistema visual base (2D, 3D, etc) es una combinación de wrappers con la capa MilCore y un conjunto de características escritas en código manejado. Además se incluye en esta capa la implementación base de los elementos raíz UIElement y ContentElement.
API de bajo nivel que trata directamente con el sistema visual base (2D, 3D, etc) es una combinación de wrappers con la capa MilCore y un conjunto de características escritas en código manejado. Además se incluye en esta capa la implementación base de los elementos raíz UIElement y ContentElement.
·
MilCore
Esta parte ha sido escrita en código no manejado para poder soportarla integración con DirectX. Es decir, todo lo mostrado por WPF es realizado através del motor de DirectX, por lo que se consigue una gran eficiencia en el renderizado por Software y Hardware.
Esta parte ha sido escrita en código no manejado para poder soportarla integración con DirectX. Es decir, todo lo mostrado por WPF es realizado através del motor de DirectX, por lo que se consigue una gran eficiencia en el renderizado por Software y Hardware.
Primeros Pasos con WPF
Una de las
características más potentes dentro de WPF es el tema de gráficos. Debido
a que internamente utiliza la API Direct3D,
podemos crear aplicaciones muy atractivas y con movimientos dinámicos, algo
impensables con Windows Form. Nos permite interaccionar con animaciones, vídeo,
audio, documentos, aplicar efectos, etc… en las propias aplicaciones.
XAML es el acrónimo de eXtensible Application
Markup Language. Xaml es un lenguaje declarativo
basado en XML y que esta optimizado
para representar interfaces de usuario
visualmente ricas desde el punto de vista
gráfico.
XAML nace para ser el nexo de unión entre desarrolladores y diseñadores, facilitando la colaboración entre ambos en aplicaciones WPF. Aunque aparezcan dudas sobre por qué usar un lenguaje markup, es importante entender las posibilidades inherentes en la plataforma WPF.
Cuando se decidió crear XAML como un lenguaje markup para expresar interfaces, se comprobó la evolución de otros lenguajes como HTML, XUL, SVG, WordML, etc y como por ejemplo HTML ha sido un éxito para representar interfaces de usuario. En definitiva, XAML es un lenguaje al igual que HTML, entendible por un humano y para una máquina.
gráfico.
XAML nace para ser el nexo de unión entre desarrolladores y diseñadores, facilitando la colaboración entre ambos en aplicaciones WPF. Aunque aparezcan dudas sobre por qué usar un lenguaje markup, es importante entender las posibilidades inherentes en la plataforma WPF.
Cuando se decidió crear XAML como un lenguaje markup para expresar interfaces, se comprobó la evolución de otros lenguajes como HTML, XUL, SVG, WordML, etc y como por ejemplo HTML ha sido un éxito para representar interfaces de usuario. En definitiva, XAML es un lenguaje al igual que HTML, entendible por un humano y para una máquina.
Sintaxis
Es importante
recalcar y tener en cuenta con respecto a la diferencia entre por ejemplo HTML
y XAML que en la especificación de XAML se especifican una serie de
reglas que mapean espacios de nombres, tipos, propiedades y eventos de
.NET con sus correspondencias en XML.
Es decir, podemos crear un
elemento con XAML y realizar un elemento equivalente directamente con C#.
elemento con XAML y realizar un elemento equivalente directamente con C#.
Elementos=Objetos
Declarando
un elemento XML mediante la sintanxis
XAML podemos instanciar una clase o estructura Common Language Runtime
(CLR). Ha esto se le conoce como Object
Element Syntax. Esta sintaxis comienza con
un menor que (<) y seguido del
nombre de la clase o estructura a
inicializar.
Seguidamente se puden añadir sin que sean obligatorios atributos separados por un espacio y en el formato: nombre=”Valor”. Finalmente el elemento se
puede cerrar con un (/>).
Seguidamente se puden añadir sin que sean obligatorios atributos separados por un espacio y en el formato: nombre=”Valor”. Finalmente el elemento se
puede cerrar con un (/>).
Ejemplo:
Es importante
destacar la utilización del Data Binding para la comunicación
asíncrona entre la vista y el controlador. Esto se hace a través de un elemento
que se llama Binder que abre un canal de comunicación permanente entre
las dos capas, que permite actualizar la vista desde el controlador e incluso
desde la capa del modelo. Todo esto dota a las aplicaciones de una gran
usabilidad que en muchos casos no permite distinguir si es una aplicación
nativa o aplicación web. En WPF se utiliza una variante del Modelo-Vista-Controlador
(MVC) que se llama MVVM (Model View View-Model).
En el trabajo con WPF
se destaca la utilización de los siguientes frameworks: