Je me suis intéressé à WPF, mais je n'ai jamais vraiment travaillé dessus (sauf pendant 15 minutes, ce qui a suscité cette question). J'ai regardé ceci poste mais il s'agit en fait du "Flash" d'un WPF. Quelle est donc la différence entre une application Windows Forms et une application WPF ?
Réponses
Trop de publicités?WPF est une couche de présentation de l'interface utilisateur basée sur les graphiques vectoriels, ce qui n'est pas le cas de WinForms. Pourquoi est-ce important/intéressant ? Le fait d'être basé sur des vecteurs permet à la couche de présentation d'adapter en douceur les éléments de l'interface utilisateur à n'importe quelle taille sans distorsion.
WPF est également un système de présentation composable, ce qui signifie que pratiquement tous les éléments d'interface utilisateur peuvent être composés de n'importe quel autre élément d'interface utilisateur. Cela vous permet de construire facilement des éléments d'interface utilisateur complexes à partir d'éléments plus simples.
WPF est également entièrement compatible avec le databinding, ce qui signifie que vous pouvez lier n'importe quelle propriété d'un élément d'interface utilisateur à un objet .NET (ou à une propriété/méthode d'un objet), à une propriété d'un autre élément d'interface utilisateur ou à des données. Oui, WinForms supporte la liaison de données, mais de manière beaucoup plus limitée.
Enfin, WPF est "skinable" ou "themeable", ce qui signifie qu'en tant que développeur, vous pouvez utiliser une boîte de liste parce que ce sont les comportements dont vous avez besoin, mais quelqu'un peut la "skinner" pour qu'elle ressemble à quelque chose de complètement différent.
Pensez à une boîte de liste d'images. Vous voulez que le contenu soit réellement l'image, mais vous voulez toujours avoir le comportement d'une boîte de liste. Il est tout à fait possible de le faire dans WPF en utilisant simplement une boîte de liste et en modifiant la présentation du contenu pour qu'il contienne une image plutôt que du texte.
Une bonne façon d'aborder la question est de se demander ce qu'est exactement Winforms.
Winforms et WPF sont tous deux des cadres conçus pour faciliter le codage de la couche d'interface utilisateur d'une application. Les personnes les plus âgées d'entre nous pourraient parler de la façon dont l'écriture de la version Windows de "Hello, World" pouvait prendre environ 4 pages de code. De plus, les roches étaient beaucoup plus molles à l'époque et nous devions nous battre contre des lézards géants pendant que nous codions. La bibliothèque et le concepteur Winforms prennent en charge un grand nombre de tâches courantes et les rendent plus faciles à écrire.
WPF fait la même chose, mais en sachant que ces tâches courantes peuvent maintenant inclure des choses beaucoup plus intéressantes visuellement, en plus d'inclure beaucoup de choses que Winforms ne considérait pas nécessairement comme faisant partie de la couche UI. La façon dont WPF prend en charge les commandes, les déclencheurs et les liaisons de données est une excellente partie du cadre de travail, mais la raison fondamentale de cette prise en charge est la même que celle pour laquelle Winforms existait à l'origine.
L'amélioration de WPF réside dans le fait qu'au lieu de vous donner la possibilité d'écrire un contrôle entièrement personnalisé à partir de zéro ou de vous forcer à utiliser un ensemble unique de contrôles aux capacités de personnalisation limitées, vous pouvez désormais séparer la fonction d'un contrôle de son apparence. La possibilité de décrire l'apparence de nos contrôles dans XAML et de la séparer du fonctionnement des contrôles dans le code est très similaire au modèle HTML/Code avec lequel les programmeurs Web ont l'habitude de travailler.
Une bonne application WPF suit le même modèle qu'une bonne application Winforms : garder autant de choses que possible en dehors de la couche UI. La logique de base de l'application et la couche de données devraient être les mêmes, mais il y a maintenant des moyens plus faciles de rendre les visuels plus impressionnants, ce qui est probablement la raison pour laquelle la plupart des informations que vous avez vues sur ce sujet concernent les trucs visuels plus flashy. Si vous cherchez à apprendre WPF, vous pouvez en fait commencer par l'utiliser presque exactement comme vous le feriez avec Winforms, puis remanier les autres fonctionnalités au fur et à mesure que vous les saisissez. Pour un excellent exemple, je recommande vivement la série d'articles de blog de Scott Hanselman sur le développement de BabySmash, qui commencent ici . Il s'agit d'un excellent aperçu du processus, tant au niveau du code que de la réflexion.
Pour répondre à votre question, une application WPF est une application Windows. WPF est le nouveau cadre de Microsoft (en fait, il s'agit d'un sous-système du cadre .NET 3.0) pour l'écriture d'applications Windows riches. Il est censé remplacer à terme WinForms (même s'il est vrai que le taux d'adoption est beaucoup plus lent que ce que MS espérait).
Commencez ici, il y a des dizaines et des dizaines de vidéos : http://www.windowsclient.net/learn
Dans ce cas, le schpiel marketing est plutôt bon :
* "Windows Forms est un ensemble de classes du Framework .NET qui permet le développement rapide d'applications clientes Windows riches, avec des bibliothèques puissantes et extensibles pour les contrôles de l'interface utilisateur et les graphiques. Vous pouvez incorporer WPF dans vos applications Windows Forms grâce à l'interopérabilité WPF-Windows Forms dans le Framework .NET 3.5."
*WPF, un composant de Microsoft .NET Framework 3.5, vous permet de créer la prochaine génération d'expériences utilisateur Windows. WPF prend en charge l'interface utilisateur, les médias, les documents, l'accélération matérielle, les graphiques vectoriels, l'évolutivité en fonction des différents facteurs de forme, la visualisation interactive des données et la lisibilité supérieure du contenu. "**.
Avec WPF, vous bénéficiez d'une bien meilleure prise en charge graphique, d'une liaison de données bien plus puissante et flexible (si vous travaillez avec des données, utilisez WPF).
WPF signifie W indows P resentation F oundation. Alors que la technologie WinForms dépend de GDI/GDI+, WPF est construit directement au-dessus de DirectX. Cela signifie que vous pouvez faire beaucoup plus que ce que vous pouvez faire avec WinForms, tout en utilisant la bibliothèque de classes du .NET Framework. Vous pouvez créer des interfaces utilisateur riches, des jeux 2D/3D, des présentations et bien plus encore. WPF ressemble beaucoup à un film Flash (swf), sans l'élément "Movie". WPF est basé sur .NET et peut être utilisé pour créer des applications web riches côté client.