Avantage de l'application WPF par rapport à Winform pour les applications professionnelles? [fermé]

84

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

Quels sont les avantages de WPF par rapport à 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, etc. fournis par WPF. 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 aidera-t-il ces applications? Meilleure liaison de données plus riche? WinForm est une technologie éprouvée mature et j'aime le fait que je puisse tout faire dans Visual Studio par rapport à 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 soutiendra toujours Winforms pendant de nombreuses années.

Essayez de convaincre quelqu'un comme moi de changer.

Abdu
la source
1
Je pense qu'il existe de puissantes raisons de passer à WPF. Je ne veux pas répéter un blog que je viens d'écrire , donc je mettrai un lien vers celui-ci ici
Andy Brown le
7
Ceci est une excellente question. Devrait être rouvert. Je suis un développeur winform qui passe à WPF. La courbe d'apprentissage est énorme. Mais WPF est l'avenir, car c'est un langage déclaratif par nature, comme HTML. Winform est principalement procédural, ce qui est plus adapté aux algorithmes, mais plus détaillé pour afficher l'interface utilisateur. Essayez de décompresser un fichier d'impression .XPS, vous y verrez WPF xaml. Il y a tout simplement trop de limitations avec Winforms. Bien que cela fonctionne toujours, le "eye-candy" WPF peut aider à réduire le niveau de stress des utilisateurs. Vous pouvez présenter plusieurs lignes d'enregistrement d'une manière plus significative autre que listview ou datagrid.
Jeson Martajaya

Réponses:

101

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

Pour mon équipe, WPF s'est avéré beaucoup plus rapide que WinForms pour développer des applications avec. 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é était impressionnante.

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

Vous considérez-vous comme un codeur manuel ou un codeur glisser-déposer? Si vous vous considérez comme un glisser-déposer, le recadrage actuel de l'outillage WPF peut ne pas vous convenir. Peut-être attendre Visual Studio 2010? Je travaille presque exclusivement en XAML. La plupart des utilisateurs de WPF conviendront probablement que c'est le moyen le plus efficace de créer des applications WPF pour le moment. Mais ensuite, je crée aussi mon HTML à la main, donc cela me semble naturel ...

Quels sont les avantages de WPF par rapport à 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, etc. fournis par WPF.

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 la couleur, les dégradés, l'animation qui rendent une application professionnelle 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 simplement 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 de la plate-forme. Consultez cette merveilleuse feuille de triche de liaison de données .

Essayez de convaincre quelqu'un comme moi de changer.

J'ai décidé que je n'essaierai pas de convaincre quiconque de passer à WPF. Les développeurs que j'ai essayé de «convaincre» (tous les développeurs Winforms expérimentés) ont généralement eu du mal avec la plate-forme. Ils ne sont pas investis dans la technologie. Ils ne «comprennent pas». J'encourage les gens à vérifier 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 cet article SO pour quelques mini-critiques sur les livres WPF. Si vous apprenez par des vidéos, consultez les vidéos WPF de windowsclient.net . Si vous apprenez par l'exemple, regardez ceci ou ceciPublier. Oubliez tout ce que vous savez sur WinForms. WPF semble vraiment plus proche de ASP que de WinForms. Créez des exemples d'applications. Voyez si cela fonctionne pour vous et votre équipe.

Comme vous êtes polyvalent (compétences asp.net/winform), vous pouvez voir l'avantage de la compétence dans WPF car elle est très étroitement liée à Silverlight. Silverlight comble cette lacune 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 se développer dans WinForms pour des travaux futurs. YMMV

Bonne chance avec votre décision.

Brad Leach
la source
10
Excellente réponse Brad - notre entreprise est actuellement aux prises avec cette décision. Vos observations sont bien pensées et très cohérentes avec ce que nous avons vu jusqu'à présent. Nous n'avons pas encore pris de décision, mais votre paragraphe Battleship Grey résonne fortement avec nous, car nous avons vu l'impact d'une superbe interface utilisateur sur les ventes. Merci d'avoir pris le temps d'écrire une excellente réponse.
gidmanma
3
Il y a une énorme différence entre avoir un seul développeur WPF expérimenté dans une équipe et ne pas en avoir du tout. Ajoutez à cela une courbe d'apprentissage abrupte et si vous dirigez une entreprise, vous n'accomplirez pas grand-chose du tout. En réalité, WPF est génial si vous avez quelqu'un pour vous guider et pas tant si vous apprenez au fur et à mesure. Et si vous le faites, préparez-vous à une refactorisation majeure.
Sergey Akopov
3
+1 - "Pourquoi les applications professionnelles devraient-elles être Battleship Grey?" - Complètement d'accord!
Samuel Slade
5
-1 Si la seule raison de passer à WPF est basée sur la possibilité de créer des dégradés et de changer les dialogues de votre application de "cuirassé gris" alors vous devez réellement apprendre à utiliser WinForms.
deegee
1
+1, réponse complète. Le lien des vidéos WPF windowsclient.net est en panne, n'importe qui sait où les trouver?
Damien
11

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

Pourquoi?

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

  • Une 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)

Orion Edwards
la source
4

Quand j'ai commencé à regarder WPF, je l'ai traité comme "Winforms with Vector Graphics" et je suis tombé 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 afin d'oublier tout ce que vous savez, puis de repartir de zéro.

Sérieusement cependant, 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 , ce fil de discussion Google Groupes et Channel9

Ensuite, à un moment donné, vous aurez une révélation et commencerez à tout relier aux données. Votre code-behind ne deviendra rien de plus qu'un appel à InitializeComponent ().

geofftnz
la source
4

Merci pour le post. Mon entreprise a investi beaucoup de temps dans WinForms. Je ne peux pas imaginer obtenir une application de taille moyenne en 32 jours-homme; nos périodes de certification sont de plusieurs mois et des cycles de publication parfois annuels ou plus longs (malgré le fait de rester aussi proche 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 certains avantages de WPF dans WinForms en utilisant ElementHost. J'ai étendu une zone de texte WPF, puis enveloppé ma classe étendue dans un UserControl 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 que Microsoft a pensé à cela (héberger WPF dans WinForms et vice versa), car je ne peux vraiment pas voir mon entreprise passer à WPF à moins que nous ne puissions faire la transition sur une longue période de temps; il y a tout simplement trop d'investissements dans WinForms pour recommencer. Avec mon expérience récente, je peux commencer à parler à d'autres développeurs de mon expérience récente et voir ce qu'ils en pensent. Je pense que WPF prendra un certain temps pour s'y habituer et cela semble cohérent avec d'autres commentaires.

Wayne H
la source
0

Vérifiez simplement les résultats de cette recherche ici dans Stackoverflow pour obtenir de nombreuses réponses. https://stackoverflow.com/search?q=WPF+Winforms

Joie Jobi
la source
3
J'espère que vous pensez que j'ai déjà essayé!
Abdu
0

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 construisiez qu'une seule fois, mais vous le câbleriez à l'un ou l'autre ... c'est l'une des intentions de WPF / XAML ... sommes-nous vraiment là? Pas encore mais en se rapprochant.

Webjedi
la source
4
Essayer d'utiliser la même interface utilisateur dans Silverlight et une application de bureau est l'une de ces choses qui semble bien en théorie, mais en pratique, je pense que cela mènera simplement à une interface utilisateur merdique sur les deux plates-formes.
Orion Edwards
Oui, le chevauchement entre WPF et Silverlight2 est important, mais pas suffisant pour rendre votre code portable. Les différences dans les capacités de liaison limiteront excessivement votre développement WPF.
geofftnz
1
Eh bien, j'ai dit que nous n'en étions pas encore tout à fait là ... mais c'est l'intention ultime.
Webjedi
geofftnz: vouliez-vous dire restreindre le développement de Silverlight ?
Abdu