¿Qué es WPF?
De una manera rápida, WPF (Windows Presentation Foundation) es una tecnología que nos permite aprovechar al máximo las características gráficas de nuestros equipos ofreciendo interfaces más ricas de las que estamos acostumbrados. El objetivo de WPF es proporcionar avances en el entorno de las aplicaciones de escritorio que permitan crear interfaces mucho más atractivas evitando una disminución del rendimiento de nuestras aplicaciones, como ocurre actualmente con Windows.Forms.
Arquitectura de WPF
- PresentationCore.dll: Es donde encontramos el soporte para todos los tipos base como “UIElement” y “Visual”, y es de donde todas las formas (shapes) y controles (controls) derivan.
- WindowsBase.dll: Es donde encontramos clases de apoyo que puede ser usadas fuera del ámbito de WPF, como por ejemplo el “DispatcherObject” o el “DependencyObject”.
- milcore.dll: Es el núcleo del sistema de renderizado de WPF. Su misión es transformar los elementos visuales en los triángulos y texturas que Direct3D espera. Aunque sea considerado como parte de WPF esta dll forma parte de Windows Vista. De hecho, el Desktop Window Manager (DWM) en Windows Vista usa esta dll para renderizar el escritorio.
- WindowsCodecs.dll: Es una API de bajo nivel que nos da soporte para el tratamiento de imágenes.
- Direct3D: Es la API de bajo nivel que se encarga del renderizado de los gráficos generados mediante WPF.
- User32: Pese a que forma parte de WPF no interviene en el renderizado de los controles.
Ventajas
- Existe una separación clara entre nuestro código y la presentación (XAML).
- Es bastante fácil crear estilos lo que nos permite hacer aplicaciones muchos más ricas de cara al usuario final.
- Usa directamente la potencia de las tarjetas gráficas modernas para el renderizado de nuestras aplicaciones, liberando al procesador. Con esto evitamos que el dibujado interfaces complejas disminuya el rendimiento de nuestras aplicaciones.
Aquí termino esta pequeña introducción teórica de WPF. Próximamente explicaré algunas cosas como estilos, animaciones…
