web-dev-qa-db-fra.com

WPF ou Windows Forms

Je joue avec les applications de console C # depuis environ un an et je veux passer à la création d'applications GUI. Je n'ai jamais fait de développement graphique en plus des applications de base Java, mais je veux continuer à utiliser C #. Dois-je commencer à apprendre Windows Forms ou passer directement à WPF? Y a-t-il une énorme différence? Est-ce que WPF construit sur Windows Forms ou sont-ils totalement différents?

73
Juice

Si vous débutez, passez directement à WPF.

Il vous permettra de commencer à créer des interfaces riches en utilisant le balisage pour définir votre interface sans vous enseigner les mauvaises habitudes possibles (pour WPF) que vous apprendrez à partir de Windows Forms.

71
Justin Niessner

Ces deux technologies sont totalement différentes. Ils offrent des couches d'interopérabilité dans les deux sens, mais à part cela, ils n'ont rien en commun. Windows Forms est plus ou moins un wrapper léger au-dessus de Win32 / MFC , ce qui signifie que son extensibilité dans .NET n'est pas celle bon dans tous les cas. WPF est un nouveau cadre d'interface utilisateur implémenté à partir de zéro. WPF est également beaucoup plus flexible lorsqu'il s'agit de personnaliser les types existants.

Cependant, au moins d'après mon expérience, Windows Forms semble être le cadre d'interface utilisateur de bureau le plus couramment utilisé dans l'industrie. Cependant, Windows Forms ne peut pas être utilisé avec le développement Web tandis que WPF propose des applications Silverlight et XBAP.

Si vous avez déjà effectué un développement d'interface utilisateur, j'oserais dire que Windows Forms est plus facile à apprendre car il suit des paradigmes de programmation plus traditionnels. Le modèle de programmation de WPF est très différent de cela. Bien que WPF puisse être utilisé de la même manière que Windows Forms, la plupart de ses avantages ne sont pas obtenus tant que vous n'adoptez pas la liaison de données et l'encapsulation fournies par WPF.

En dépit de certains points en faveur de Windows Forms, choisir WPF plutôt que Windows Forms serait une évidence pour moi si tout ce que vous voulez faire est d'apprendre un cadre d'interface utilisateur. Il est supérieur à Windows Forms à tous égards. Je souhaite juste que l'industrie du logiciel en général l'adapte à plus grande échelle! (Bien que personne n'écrive plus d'applications de bureau depuis que nous avons le Web.)

22
Mikko Rantanen

Les deux technologies ont leurs avantages et leurs inconvénients.

WPF est meilleur pour le développement multiplateforme et la création d'interfaces graphiques "flashy". Cependant, il nécessite un framework .net plus récent que WinForms et nécessite un GPU compatible dx9 ou supérieur (que la plupart des gens auront).

Mais c'est un peu plus compliqué de créer l'interface/câbler tous les événements etc.

WinForms est toujours une technologie puissante qui peut souvent être développée à un rythme plus rapide que WPF cependant, au final, les deux technologies peuvent être utilisées pour atteindre la même chose. Cependant WPF est la norme "la plus récente".

WinForms est couramment utilisé pour développer des applications commerciales tandis que WPF est souvent utilisé pour créer davantage de logiciels, d'applications, etc. basés sur l'utilisateur final.

9
jasttim

WPF fournit des fonctionnalités très riches pour créer des interfaces utilisateur extrêmement complexes. Il simplifie l'intégration d'une carte graphique à accélération matérielle dans votre interface. Cependant, le concepteur Visual Studio WPF est vraiment mauvais (je ne l'utilise presque jamais). Je pense aussi que WPF est beaucoup plus complexe, et il est plus difficile de commencer. Mais c'est bien sûr subjectif.

4
n535