web-dev-qa-db-fra.com

Avantage de l'application WPF par rapport à Winform pour les applications professionnelles?

Je connais le développement asp.net et winform. Je ne suis pas le type de développeur qui se lance dans une nouvelle technologie juste parce qu'elle est nouvelle. Il doit me donner des avantages supplémentaires comme une productivité plus élevée.

Quels sont les avantages de WPF sur Winforms pour les applications professionnelles pures? Je ne suis pas intéressé par le plaisir des yeux supplémentaire, l'animation, les dégradés, les effets d'affichage d'image et ainsi de suite que WPF fournit. Les applications professionnelles sont destinées à la saisie de données, à la communication de données et peut-être à certains graphiques et à l'affichage statique de photos.

Comment WPF va-t-il aider dans ces applications? Meilleure liaison de données plus riche? WinForm est une technologie éprouvée mature et j'aime le fait que je peux tout faire dans Visual Studio vs plusieurs IDE pour WPF (famille VS & Blend). De plus, je pense que WPF n'a pas de contrôles de liaison de données aussi riches que leurs homologues Winform (DataGridView..etc). AFAIK, Microsoft continuera à prendre en charge Winforms pendant de nombreuses années.

Essayez de convaincre quelqu'un comme moi de changer.

84
Abdu

Je connais le développement asp.net et winform. Je ne suis pas le genre de développeur qui se lance dans une nouvelle technologie juste parce qu'elle est nouvelle. Cela doit me donner des avantages supplémentaires comme une productivité plus élevée.

Pour mon équipe, WPF s'est avéré être beaucoup plus rapide que WinForms pour développer des applications. Nous avons récemment publié une application de taille moyenne en 32 jours-homme. Nous avions l'avantage d'un développeur WPF expérimenté dans l'équipe et de gars inexpérimentés désireux d'apprendre la technologie. Le moral était excellent et la productivité impressionnante.

WinForm est une technologie éprouvée mature et j'aime le fait que je peux tout faire dans Visual Studio vs plusieurs IDE pour WPF (famille VS & Blend).

Vous considérez-vous comme un codeur manuel ou un codeur par glisser-déposer? Si vous vous considérez comme un glisser-déposer, la récolte actuelle d'outils WPF peut ne pas vous convenir. Peut-être attendre Visual Studio 2010? Je travaille presque exclusivement en XAML. La plupart des WPF seront probablement d'accord pour dire que c'est la façon la plus efficace de créer des applications WPF pour le moment. Mais ensuite, je crée aussi mon HTML à la main, donc ça me semble naturel ...

Quels sont les avantages de WPF sur Winforms pour les applications professionnelles pures? Je ne suis pas intéressé par le plaisir des yeux supplémentaire, l'animation, les dégradés, les effets d'affichage d'image et ainsi de suite que WPF fournit.

J'avais l'habitude de penser de cette façon, mais j'ai récemment développé une application métier qui a des dégradés, une animation de base et des effets. Ces fonctionnalités sophistiquées ont été ajoutées pour améliorer l'expérience utilisateur. Pourquoi les applications professionnelles devraient-elles être Battleship Grey? Pourquoi devraient-ils être inutilisables? Certes, ce ne sont pas les couleurs, les dégradés, les animations qui rendent une application métier utilisable, mais l'utilisation de ces effets peut aider l'expérience utilisateur, et c'est ce qui est important pour moi. J'aurais pu faire tout ce que j'ai fait dans l'application WPF dans WinForms - cela aurait juste pris beaucoup plus de temps.

Meilleure liaison de données plus riche?

Le support de liaison de données est vraiment incroyable. C'est ma fonctionnalité la plus appréciée sur la plateforme. Découvrez cette merveilleuse Cheatsheet Databinding .

Essayez de convaincre quelqu'un comme moi de changer.

J'ai décidé de ne pas essayer de convaincre quelqu'un d'autre de passer à WPF. Les développeurs que j'ai essayé de "convaincre" (tous les développeurs expérimentés de Winforms) ont généralement eu des problèmes avec la plate-forme. Ils ne sont pas investis dans la technologie. Ils ne "comprennent" pas. J'encourage les gens à découvrir la technologie pour voir si elle leur convient en tant que développeur. La courbe d'apprentissage est énorme. Si vous apprenez par des livres, consultez this SO post pour quelques mini-critiques sur les livres WPF. Si vous apprenez par des vidéos, consultez windowsclient .net WPF videos . Si vous apprenez par l'exemple, consultez this ou this post. Oubliez tout ce que vous savez sur WinForms. WPF semble vraiment plus proche de ASP que WinForms. Créez des exemples d'applications. Vérifiez si cela fonctionne pour vous et votre équipe.

Comme vous êtes polyvalent (compétences asp.net/winform), vous pouvez voir l'avantage de la qualification dans WPF car il est très étroitement lié à Silverlight. Silverlight comble cet écart entre vos applications clientes riches et vos applications Web.

Personnellement, je pense que WPF est la meilleure technologie côté client disponible pour le framework .NET et évitera généralement de développer dans WinForms pour les travaux futurs. YMMV

Bonne chance avec votre décision.

100
Brad Leach

J'ai pas mal d'expérience avec Winforms et je n'ai joué qu'avec WPF un peu, mais je suis vendu.

Pourquoi?

  • BEAUCOUP plus de flexibilité. Si vous voulez faire quelque chose de non standard dans les formes de victoire, la douleur et la souffrance s'ensuivent, mais dans WPF c'est simple.

  • Meilleure liaison de données

  • Plus facile à développer (une fois que vous comprenez les concepts de base, ce qui prendra malheureusement un certain temps)

10
Orion Edwards

Merci pour le post. Mon entreprise a investi énormément de temps dans WinForms. Je ne peux pas imaginer sortir une application de taille moyenne en 32 jours-homme; nos périodes de certification s'étalent sur des mois et les cycles de sortie sont parfois annuels ou plus longs (même si nous restons aussi proches que possible d'une philosophie de développement Agile), telle est la nature des applications que nous développons.

Je viens de jouer avec WPF pour la première fois et j'ai découvert que je pouvais bénéficier de WPF dans WinForms en utilisant ElementHost. J'ai étendu un WPF TextBox, puis enveloppé ma classe étendue dans un User Forms Win Forms et j'ai maintenant une application WinForms utilisant cette zone de texte WPF, avec prise en charge de la vérification orthographique.

Je suis impressionné de voir Microsoft y penser (héberger WPF dans WinForms et vice versa), car je ne peux vraiment pas voir mon entreprise passer à WPF à moins que nous puissions effectuer une transition sur une longue période de temps; il y a tout simplement trop investi dans WinForms pour recommencer. Avec mon expérience récente, je peux commencer à parler à d'autres développeurs de ma récente expérience et voir ce qu'ils pensent. Je pense que WPF prendra un certain temps pour s'y habituer et cela semble cohérent avec d'autres commentaires.

4
Wayne H

Quand j'ai commencé à regarder WPF, je l'ai traité comme "Winforms avec graphiques vectoriels" et j'ai couru directement sur le côté de la falaise d'apprentissage. La bonne façon de passer de WinForms à WPF est de prendre une dose héroïque de tout stupéfiant sur lequel vous pouvez mettre la main pour oublier tout ce que vous savez, puis recommencer à zéro.

Sérieusement, c'est beaucoup plus propre et plus facile si vous utilisez un modèle tel que Model-View-ViewModel. En savoir plus sur The Orbifold , this Google Groups thread and Channel9

Ensuite, à un moment donné, vous aurez une révélation et commencerez à tout lier les données. Votre code-behind ne deviendra pas beaucoup plus qu'un appel à InitializeComponent ().

4
geofftnz

Pas tout à fait un doublon, mais vous pouvez trouver cet article utile sur les avantages de WPF en dehors des nouveaux bits graphiques.

WPF ou WinForms pour les outils internes?

1
Andrew Grant

Il suffit de vérifier ces résultats de recherche ici dans Stackoverflow pour obtenir de nombreuses réponses. https://stackoverflow.com/search?q=WPF+Winforms

0
Jobi Joy

Imaginez si vous pouviez utiliser la même interface utilisateur (XAML) à partir de votre page ASP.NET/(Silverlight) avec votre application de bureau. Vous ne le construirez qu'une seule fois mais le câblerez à l'un ou l'autre ... c'est l'une des intentions de WPF/XAML ... sommes-nous vraiment encore là? Pas encore mais en se rapprochant.

0
Webjedi