J'ai programmé Aqua, Macintosh Tirage Rapide, Windows GDI et GDI+, Qt, et .NET Winforms et WPF est de loin le plus sophistiqué de l'API que j'ai utilisé. Bien qu'il a une jolie capables ensemble de fonctionnalités qui est mieux que la précédente technologies comme la balançoire, c'est pas de match pour WPF. Il résout certains problèmes majeurs qui ont affecté à des programmes graphiques. Si vous venez du HTML/JS monde, il est facile à apprendre, mais si vous êtes en provenance de la traditionnelle programmation graphique du monde, c'est un changement de paradigme majeur. Peu importe, il est beaucoup plus facile à apprendre que le CSS/HTML/JS. C'est une rupture nette de l'héritage des concepts qui peste autres graphiques environnements de programmation.
La plus grande force de WPF est qu'il est indépendant de la résolution. Il peut évoluer à travers les dispositifs avec peu ou pas de modifications. Il nécessite peu de travail à prendre une version d'écran de dessin et de sortie sur une imprimante haute résolution sans perte de résolution.
Il prend également en charge de l'événement de déclenchement. Éléments de l'INTERFACE utilisateur de réagir aux événements des autres éléments de l'INTERFACE utilisateur ou à vos applications de code, faire des interfaces dynamiques possibles. Il est facile de séparer votre code à partir de l'INTERFACE utilisateur dans une manière que même le HTML/JS ne peut pas atteindre. Les éléments peuvent diffuser et d'écouter les événements et réagir en conséquence.
Un autre point fort est sa très orientée objet et déclarative capable de l'API. L'utilisation de XAML, vous pouvez facilement construire une interface de travail rapidement et efficacement avec quelques lignes. À la différence du HTML/JS, il est plus facile à apprendre et sa sortie est beaucoup plus prévisible et plus efficace. Vous pouvez même programme WPF complètement dans le code, mais il est généralement ne vaut pas le mineur gain de performance. Une meilleure méthode est de compiler votre code Xaml dans .NET code.
En outre, l'outillage disponible pour WPF est très vaste par rapport à JavaFX. Il ya des tonnes d'outils, y compris l'Expression de Mélange. Il y a aussi de nombreux outils pour la prise de graphiques vectoriels tels que les formats SVG et Adobe Illustrator et de les convertir dans le code XAML. Maintenant, les concepteurs et les programmeurs peuvent collaborer à l'édition de bureau d'une manière qui était très difficile de le faire avant.
En résumé, WPF est tellement complet que l'équipe de Mono opté pour le port à la Mono base de code. Ils ont affirmé qu'il faudrait de nombreuses années humaines à mettre pleinement en œuvre raisonnable de fonctionnalités. Si un Mono version compatible de WPF existait, il serait .NET, de facto, de la croix-plate-forme de cadre d'application. En fait, il pourrait même supplanter HTML/CSS, car il est beaucoup plus puissant et plus facile à obtenir autour de votre tête. Malheureusement, Microsoft n'a pas vu un cas d'entreprise pour une croix-plate-forme activée de WPF. C'est pourquoi SilverLight/WPF perdu en HTML5/JS. Grâce à cette erreur, ils sont maintenant contraints à la main, pas seulement sur le web mais une partie de leur bureau en HTML 5/JS.