TOC

This article has been localized into French by the community.

A propos de WPF:

WPF contre WinForms

Dans le précédent chapitre, nous avons parlé de ce qu'était WPF et un peu de WinForms. Dans ce chapitre, j'essayerai de comparer les deux, parce que même si ils servent au même but, il y a BEAUCOUP de différences entre eux. Si vous n'avez jamais travaillé avec WinForms avant, et plus spécifiquement si WPF est votre tout premier framework GUI, vous pouvez sauter ce chapitre, mais si vous êtes intéressés par les différences alors lisez-le.

La différence la plus importante entre WinForms et WPF est la suivante: alors que WinForms est une simple couche supplémentaire sur les contrôles standards de Windows (ex: un TextBox), WPF est créé de toute pièce et n'est pas relié aux contrôles standards de Windows dans presque toutes les situations. Cela peut ressembler à une différence subtile, mais pas du tout, ce que vous remarquerez sûrement si vous avez déjà travaillé avec un Framework qui dépend de Win32/WinAPI.

Un bon exemple de cette différence est un bouton composé d'une image et d'un texte. Comme ce n'est pas un contrôle standard Windows , WinForms ne nous offre pas de possibilité toute faite. Au lieu de ça, il faudra dessiner notre image nous même, implémenter notre propre bouton qui supporte des images ou utiliser un contrôle tierce. Avec WPF, un bouton peut contenir n'importe quoi car c'est essentiellement une bordure avec du contenu et différents états (untouched, hovered, pressed). Le bouton WPF est sans apparence, comme la plupart des autres contrôles WPF, ce qui signifie qu'il peut contenir une certaine quantité de contrôles. Vous voulez un bouton avec une image et du texte ? Mettez juste une image et un TextBlock à l'intérieur du bouton et voila ! Vous n'avez tout simplement pas ce genre de flexibilité avec les contrôles WinForms standards, ce qui explique qu'il y ait un grand marché pour des implémentations de contrôles assez simples comme les boutons avec images et autres contrôles semblables.

L'inconvénient de cette flexibilité est que parfois vous aurez a travailler plus difficilement pour réaliser quelque chose qui serait très facile avec WinForms, parce que ça a été créé pour le cas dont vous avez besoins. Au moins c'est comme cela qu'on le ressent au début, quand vous vous retrouverez à créer un template pour faire une listview avec une image et un peu de texte joliment disposé, quelque chose que les ListViewItem des WinForms font en une simple ligne de code.

Ceci est juste une différence, mais en travaillant avec WPF, vous réaliserez que c'est en fait la raison principale de bien d'autres différences. WPF fait simplement les choses à ça façon, pour le meilleur et pour le pire. Vous n'êtes plus contraint de faire des choses à la façon de Windows, mais pour avoir ce genre de flexibilité, vous payez avec un peu plus de travail quand vous voulez juste faire des choses à la façon de Windows

Ce qui suit est une liste complétement subjective des avantages clés de WPF et WinForms. Ça devrait vous donner une meilleurs idée dans quoi vous engager.

Avantages du WPF

  • C'est le plus récent ainsi que le plus en phase avec les standards actuels
  • Microsoft l'utilise pour beaucoup de nouvelles applications, ex: Visual Studio
  • C'est plus flexible, donc vous pouvez faire plus de choses sans à avoir à créer ou acheter de nouveaux contrôles
  • Quand vous devez utiliser le contrôle d'un tiers, le développeur de ces contrôles va surement ce concentrer sur WPF car c'est plus récent
  • XAML rend plus facile la création et l'édition de votre GUI, et permet de travailler séparément entre le designer (XAML) et le programmeur (C#, VB.NET...)
  • Le Databinding, qui vous permet d'avoir une séparation plus nette entre la data et le layout
  • Utilise l'accélération graphique matérielle (GPU) pour dessiner la GUI, pour de meilleurs performances
  • Il vous permet de faire une GUI aussi bien pour les applications Windows que les applications web (Silverlight/XBAP)

Avantages des WinForms

  • C'est plus ancien donc plus éprouvé et testé
  • Il y a déjà beaucoup de contrôles tierces que vous pouvez acheter ou obtenir gratuitement
  • Le designer de Visual Studio est resté, comme pour le code, meilleurs pour WinForms que pour WPF, quand vous aurez plus de travail à faire vous-même avec WPF
This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!