03
octubre
2019

WPF es la abreviación de Windows Presentation Foundation. Está destinado a proporcionar una API (Application Programming Interface),  interfaz de programación de aplicaciones, para crear interfaces de usuario enriquecidas y sofisticadas para Windows.

Lo que más me gusta del WPF, si lo comparamos con el interfaz clásico de los Windows Forms, es el aspecto visual. Tal como se puede apreciar en la siguiente figura:

Aplicación WPF

Otro punto a su favor, es que coge características de aplicaciones Windows, como lo hace su antecesor Windows Forms, y por otro lado características de aplicaciones web; aquí es donde más se ha notado la mejora, ya que permite crear la interfaz gráfica a través del XAML.

Esta integración se consigue a través de System.Windows.Forms.Integration.

Características principales de WPF

  • Animaciones
  • Gráficos diseñados en vectores
  • Separación diseño y código
  • Gráficos 3D
  • Gráficos 2D, formas y transformaciones.
  • Controles personalizados
  • Resolución independiente

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.

Cabe destacar que WPF posee un motor de representación gráfica que se basa en vectores y utiliza toda la potencialidad del hardware para gráficos. Al contrario que los gráficos basados en imágenes rasterizadas (.jpg, .png, .bmp…), los gráficos basados en vectores pueden ser escalados sin deformaciones. Otra ventaja es que este tipo de gráficos ocupan menos espacio al ser guardados. Tenemos la posibilidad de trabajar de las dos formas.

Otro punto a tener en cuenta es que combina diferentes plataformas de desarrollo. Desde elementos propios del desarrollo web, pasando por elementos propios de las aplicaciones de Internet enriquecidas y, por supuesto, del desarrollo de aplicaciones para Windows.

Estas aplicaciones WPF se pueden alojar para su ejecución en un navegador Web, como Internet Exlorer. Una grata experiencia es la construcción de Yahoo Messenger, donde se implementa esta tecnología.

En Visual Studio tenemos la vista diseño al estilo de las aplicaciones Windows Forms. La diferencia es que hay un editor donde puedes escribir el código XAML directamente. Si has trabajado alguna vez con HTML, te resultarán muy familiares los conceptos de este lenguaje. XAML es un lenguaje más potente que el propio HTML. A la vez se puede programar mediante código subyacente utilizando Visual Basic.net o C#.

Existe una importante reducción del costo de programación y mantenimiento dado que hay una separación de la parte de diseño y de programación. Los diseñadores realizan trabajen en la apariencia visual de la aplicación y los desarrolladores lo hagan en la parte de codificación del comportamiento de esta interface visual.

Desventajas

Obviamente que podemos encontrar características a mejorar, por ejemplo, el estilo de programación, si colocamos muchos elementos en el formulario, es mucho más lento. Pensemos que es una tecnología relativamente novedosa en la programación. Además pensemos que Windows Forms es el predecesor de WPF. Esto le otorga cierta ventaja ya que se trata de una librería madura, gracias al tiempo que lleva en desarrollo. Sólo hace falta comprobar la gran cantidad de información que encontramos con relación a los Windows Forms en Internet.

Aplicación Windows Form

Conclusión

Con este blog he intentado que reflexionéis sobre dar un paso adelante y os planteéis crear aplicaciones WPF. Pensemos, por un momento, que aún programásemos controles en Visual Basic 6.0, para poner un ejemplo. Cada vez más encontramos aplicaciones tipo web, como sustitutas de aplicaciones de escritorio.

Además, aunque a corto plazo los Windows Forms no desaparezcan, Micosoft no está por la labor de realizar mejoras sobre ellos.

La plataforma .NET de Microsoft es una de las formaciones más demandadas en la actualidad. Conoce más acerca de nuestro Máster Programador .NET.

Autor

Jordi Llort

Profesor de Programación, Gestión, Videojuegos y SAP. Formador en CIPSA, con más de 30 años de experiencia.