He programado aguamarina, Macintosh Quick Draw, Windows GDI y GDI +, Qt, y .NET Windows Forms y WPF es por Hasta ahora, la API más sofisticada que he usado. Aunque tiene un conjunto de funciones bastante mejor que las tecnologías anteriores, como el swing, no es rival para WPF. Resuelve algunos de los principales problemas que han plagado la programación de gráficos. Si vienes del mundo HTML/JS, es fácil de aprender, pero si vienes del mundo de la programación gráfica tradicional, es un gran cambio de paradigma. De todos modos, es mucho más fácil de aprender que CSS/HTML/JS. Es una ruptura limpia de los conceptos heredados que plagan otros entornos de programación de gráficos.
La mayor fortaleza de WPF es que es independiente de la resolución. Puede escalar a través de dispositivos con poca o ninguna modificación. Requiere poco trabajo tomar una versión de pantalla de un dibujo y enviarla a una impresora de alta resolución sin pérdida de resolución.
También es compatible con la activación de eventos. Los elementos de la interfaz de usuario pueden responder a eventos de otros elementos de la interfaz de usuario o a su código de aplicaciones, lo que hace posibles las interfaces dinámicas. Hace que sea fácil separar el código de la interfaz de usuario de una manera que incluso HTML/JS no puede lograr. Los elementos pueden transmitir y escuchar eventos y responder en consecuencia.
Otra fortaleza es su API orientada a objetos y declarativa. Usando XAML, puede construir fácilmente una interfaz de trabajo de manera rápida y eficiente con unas pocas líneas. A diferencia de HTML/JS, es más fácil de aprender y su resultado es mucho más predecible y eficiente. Incluso puede programar WPF por completo en el código, pero generalmente no vale la pena la ganancia de rendimiento menor. Un mejor método es compilar su Xaml en el código .NET.
Además, las herramientas disponibles para WPF son muy extensas en comparación con JavaFX. Hay toneladas de herramientas que incluyen Expression Blend disponible. También hay numerosas herramientas para tomar formatos de gráficos vectoriales como SVG y Adobe Illustrator y convertirlos en XAML.Ahora, los diseñadores y programadores pueden colaborar en la publicación de escritorio de una manera que era muy difícil de hacer antes.
En resumen, WPF es tan completo que el equipo Mono optó por no transferirlo a la base de código Mono. Afirmaron que tomaría muchos años para implementar completamente un conjunto de características razonables. Si existiera una versión compatible con Mono de WPF, convertiría a .NET en el marco de aplicación multiplataforma de facto. De hecho, incluso puede reemplazar HTML/CSS, ya que es mucho más poderoso y fácil de entender. Desafortunadamente, Microsoft no vio un caso de negocios para un WPF multiplataforma habilitado. Es por eso que SilverLight/WPF perdió con HTML5/JS. Gracias a este error, ahora están obligados a entregar no solo la web, sino parte de su escritorio a HTML 5/JS.
JavaFX se ve prometedor. –
No hay compatibilidad con 3D verdadero, especialmente para el lenguaje de sombreado que se encuentra en DirectX HLSL y OpenGL SL. Además, cualquier soporte de IDE actual para JavaFX no puede igualar el poder de Expression Blend XAML designer y Visual Studio 2008 y Visual Studio 2010 Cider (diseñador de WPF en Visual Studio). –
¿Se encarga de la vinculación de datos de forma fluida? –