7
votes

WPF avec code uniquement

J'ai vu beaucoup de questions sur les mérites du WPF ici, et essentiellement toutes les réponses indiquent que ce sont les genoux de l'abeille, mais essentiellement chaque réponse parle également de choses comme XAML, dans de nombreux cas, des concepteurs graphiques et un mélange d'expression, etc. My La question est que cela vaut la peine d'entrer dans WPF si vous êtes un codeur solo travaillant uniquement dans C # uniquement?

Plus précisément, je n'ai pas de graphiste, ni de grand talent dans cette zone moi-même; Je n'utilise pas les outils de points et de clic; J'écris tout en C #, pas XML.

Winforms fonctionne bien dans ces conditions. Est la même vraie du WPF, ou est-ce qu'il éteint que des fonctions importantes ne peuvent être effectuées que dans XAML, les paramètres par défaut ne sont pas destinés à une utilisation réelle et que vous devez avoir un graphiste de l'équipe pour que les choses soient fières, etc. ., Et quelqu'un de ma position serait mieux à rester à Winforms?


3 commentaires

Suis-je trompé, ou êtes-vous en réalité fier de refuser d'utiliser des outils appropriés?


Je ne pense pas fier ou approprié sont les bons mots. Je pense que c'est une question de préférence. Je trouve que les outils de Drag-and-Drop me donnent toujours mal à la tête, alors je refuse de les utiliser. Je vais éditer XML à la main si je dois, bien que je préfère travailler purement en C # si raisonnablement possible. Je me demande comment bien WPF accueille ces préférences.


WPF accueillera vos préférences, mais vous serez très fortement encouragé à apprendre la manière du WPF de faire des choses. Avoir un concepteur de WPF décent avec une bonne fonctionnalité de prévisualisation pourrait considérablement raccourcir le cycle "Modify -> Aperçu -> Modifier". Si "bricolage" avec l'interface utilisateur est moins douloureux, vous êtes susceptible de passer du temps à passer du temps et éventuellement sortir avec des conceptions plus jolies.


6 Réponses :


3
votes

IMHO, il vaut la peine d'aller la route WPF si seulement pour vous assurer de construire ces compétences. J'ai joué avec Silverlight qui est basé sur XAML et je pourrais transférer une grande partie de cette connaissance au WPF même si SL est un sous-ensemble.

Et pour être honnête une fois que vous vous y êtes habitué, la plupart des UIS sont construits aussi facilement avec WPF comme avec Winforms. Et l'outillage est assez agréable, en utilisant Sketchflow pour le prototypage est utile et fait Ne vous oblige pas à avoir de véritables compétences artistiques autres que ce que vous avez pour faire des trucs Winforms. Je crois qu'à l'avenir, cela ne ferait que d'en apprendre davantage sur le WPF, et je pense que ce serait le cas pour les autres.


2 commentaires

Comme vous le dites, il existe certainement une valeur dans la recherche d'une compétence dans la conception d'interfaces attrayantes. D'autre part, si on a une préférence pour construire lesdites interfaces en C # plutôt que XML, le WPF peut-il accueillir cela?


@Rwallace, ce n'est pas la compétence de la conception d'interfaces attrayantes que je me réfère, mais de la connaissance et de la compréhension du WPF, c'est la compétence que je me réfère. Vous pouvez certainement construire l'interface utilisateur dans le code, vous pouvez vous en tenir au designer de l'IDE ou vous pouvez faire fonctionner le XAML ou même un mélange de tout ce qui précède.



6
votes

Je suis une personne de code moi-même et d'être honnête, peu importe. Même si vous ne connaissez rien sur la conception graphique, vous pouvez toujours utiliser l'éditeur dans Visual Studio pour concevoir une interface utilisateur. Le concepteur comporte un concepteur de glisser-déposer en tant que formulaires gagnants, de sorte que cela ne pose pas vraiment de problème. Même si je suis une personne de code, je n'ai aucun problème avec XAML, comme cela est, d'une certaine manière, code à nouveau. J'ai eu des problèmes avec le XAML au début également, mais je m'y suis habitué, et des trucs que je devais faire dans le code de Win Forms était assez facile dans XAML.

Databinding Simply Rocks, vous n'avez pas à vous soucier de recevoir les données à l'interface utilisateur, vous avez simplement un Observablecollection ou similaire, et une propriété du code XAML et tout obtient fini pour toi. Voulez-vous formater les données? Ajoutez simplement une propriété de formatage à la liaison. Voulez-vous colorer le texte en fonction de la valeur? Classe de sélecteur de modèle avec 15 lignes de code de code, de liaison et de modèle dans le code XAML d'environ 10 lignes. Je croît vraiment à l'aimer et avec le temps (comme avec une autre nouvelle technologie), vous vous y habituez et produisez de belles choses.


0 commentaires

1
votes

Je dis que WPF peut être pour vous, et si vous ne voulez pas aller à la manière XAML et que le code que vous ne devriez pas aller de l'avant et faire cela, dans XAML, certaines choses sont impossibles mais c'est la manière préférée de faire la mise en page. , mais personne ne vous oblige pas à ne pas le faire dans le code, cependant, si vous apprenez XAML, vous produirez des éléments de l'interface utilisateur plus rapidement, alors vous seriez en code, alors c'est quelque chose à retenir.


2 commentaires

Merci, cela semble prometteur. Je demanderai comment XAML vous permettra de produire des choses plus rapidement que dans le code? J'ai essayé des technologies similaires dans d'autres cadres et je ne les ai pas trouvés pour stimuler ma productivité, mais peut-être que WPF est différent?


XAML est un marquage, vous décrivez donc une constellation absolue sans vous soucier de "chronométrage" correct, des chaînes d'événements et de faire des choses dans le bon ordre. Cela aide à garder les choses faciles faciles. Les calculs de base, etc. resteront toujours dans votre code derrière, comme auparavant.



3
votes

Tout ce qui peut être fait dans XAML peut également être effectué en code en raison du fait que XAML est simplement une DSL pour instantifier et configurer des graphiques d'objets - spécifiquement ceux de la bibliothèque WPF ( System.Windows ). Si vous construisez une ligne de construction d'applications commerciales, alors il y a très peu de propositions WPF qui n'est pas disponible du tout dans Winforms. La différence clé est que le WPF vous permet de faire de nombreuses choses beaucoup plus facilement et de manière flexible, en raison de son modèle d'objet plus avancé.

Je pense que WPF vaut certainement la peine d'apprendre, mais si vous voulez le faire sans apprendre xaml, je pense que vous trouverez probablement plus difficile grok.

Il est également utile d'envisager que de nombreux développeurs WPF écrivent le XAML à la main (alors que leurs homologues de concepteur seront plus susceptibles d'utiliser le mélange en première instance) partiellement par nécessité (le concepteur WPF avant Visual Studio 2010 n'était pas très bon. ) Et en partie parce que le modèle d'objet se prête à une expression plus concise en XAML que dans C #. XAML est lui-même une petite langue, mais le modèle d'objet qu'il est utilisé pour définir (le modèle d'objet WPF) est énorme - et c'est là que vient la complexité.

Si vous n'avez aucune raison convaincante d'arrêter d'utiliser des winforms, alors ne le faites pas. Toutefois, si vous pouvez réduire de côté vos idées préconçues sur le code d'écriture dans XML plutôt que C #, je pense que vous pourriez être surpris de savoir comment cette approche différente de la construction d'une interface utilisateur pourrait nettoyer votre code.


0 commentaires

4
votes

réponse courte : est oui, vous pouvez faire WPF avec code uniquement.

réponse plus longue : la partie d'un concepteur pouvant fonctionner sur l'interface utilisateur et un développeur sur la fonctionnalité n'est vraiment qu'un effet secondaire de la fonctionnalité de découplage de la présentation.

Ce que WPF apporte à la table d'une manière puissante est la liaison de données qui vous permet d'utiliser une gamme plus large de modèles de conception. MVVM a été discuté assez un peu .


0 commentaires

0
votes

C'est un vieux post mais ... À mon avis, il n'y a pas de délivrance lorsque vous codez par vous-même dans n'importe quel environnement et que quelque chose doit toujours être découvert. Les personnes ont créé des mises en page en code pendant de nombreuses années dans le passé, mais certains facteurs ont déplacé la communauté pour créer des outils graphiques et d'interface utilisateur. Mais encore une fois, rien ne dure jamais et les tendances changent rapidement. N'oubliez pas non plus la transition du codage en ligne ASP au style de composition de mise en page d'ASP.NET, puis de retourner en ligne avec ASP.NET MVC. Était-ce un pas en arrière? Certainement pas, car il a été soutenu d'autres techniques et outils tels que le rasoir, la langue dynamique, les liants de modèle et plus encore. Donc, en fait, personne ne peut vous dire la bonne façon de travailler aussi longtemps que vous suivez les règles et les normes de base et réalisez que ce n'est pas seulement du code, mais plutôt du code d'aujourd'hui, avec tous les Lambdas, Linqs, Expressions, Anonymes, DLRS, etc. Qui sait? Peut-être que vous serez celui qui crée une nouvelle façon d'exprimer et de conduire du contenu.


0 commentaires