IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Windows Discussion :

Quelle technologie pour réaliser des IHM C#


Sujet :

Développement Windows

  1. #1
    Membre confirmé Avatar de athlon64
    Profil pro
    Inscrit en
    Février 2009
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 243
    Points : 547
    Points
    547
    Par défaut Quelle technologie pour réaliser des IHM C#
    Bonjour,

    j'e suis habitué aux winforms et GDI+ car je programme généralement en C++.

    J'ai découvert C# et je continue toujours avec les winforms.

    J'ai entendu par ler de WPF qui va remplacer les winforms...

    Et maintenant avec windows 8 en approche on attend parler que de XAML...

    bon bref j'aimerais savoir aujourd'hui, quelle technologie utiliser pour développer une application robuste et durable basée sur C#.net...


    Merci à tous !

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Bonjour.

    D'abord XAML est un langage, commun à WPF, Silverlight et WinRT. Ce à quoi tu fais en réalité référence c'est à la partie UI de WinRT, la nouvel ensemble d'API de Windows 8 (qui remplaceront à terme les API Win32, COM, WMI, etc). Initialement l'accès à WinRT devait être réservé aux applications en mode métro, il semble que l'ensemble soit finalement utilisable en mode desktop. Cela étant dit, il n'est disponible que sous Windows 8, un OS qui ne sera pas majoritaire sur le desktop avant de très nombreuses années. Tu peux donc rayer cette option de ta liste pour aujourd'hui, à moins de faire du développement tablette ou métro.

    En revanche, WinRT sera incontestablement le futur standard et sa partie UI est très inspirée de WPF et Silverlight, au point que l'on peut copier-coller de larges pans de code. Passer de l'une à l'autre demande un certain temps d'adaptation mais rien de comparable avec la transition WinForms vers WPF. Donc si tu veux te préparer au futur, que ce soit en termes d'évolution de ton application ou de compétences personnelles, c'est WPF.

    Cela étant dit, WinForms garde encore quelques avantages aujourd'hui : si ton application a une UI type Windows XP sans originalité, à grands coups de DataGridview et de formulaires (au sens général, pas au sens "fenêtre" de WinForms), carré et standard mais pas toujours si efficace, WinForms est l'outil parfait. Pour ce type d'applis passer à WPF n'apportera que des problèmes, d'autant que c'est une API riche, complexe et difficile à manier. Même si, une fois bien maîtrisée, les inconvénients sont supplantés par les avantages. Enfin, pour tous les autres types d'applis, WPF l'emporte haut la main. Personnellement je ne retournerais sur WinForms pour rien au monde.

  3. #3
    Membre confirmé Avatar de athlon64
    Profil pro
    Inscrit en
    Février 2009
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 243
    Points : 547
    Points
    547
    Par défaut
    merci DonQuiche pour ta réponse...

    j'avoue que d'après mes recherches je m'en doutais aussi un peu.

    mais là où je t'ai pas suivi du tout c'est :

    Citation Envoyé par DonQuiche Voir le message
    Cela étant dit, WinForms garde encore quelques avantages aujourd'hui : si ton application a une UI type Windows XP sans originalité, à grands coups de DataGridview et de formulaires (au sens général, pas au sens "fenêtre" de WinForms), carré et standard mais pas toujours si efficace, WinForms est l'outil parfait. Pour ce type d'applis passer à WPF n'apportera que des problèmes, d'autant que c'est une API riche, complexe et difficile à manier.
    je connais pas mal les winforms et les datagridview et dataset sont tous simplement bluffant.

    Mais conne je ne connais pas du tout WPF je ne peux comparer donc...
    En gros que puis faire aujourd'hui avec winforms que je ne pourrais plus faire avec WPF... ?

  4. #4
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Pour te répondre, il n'y a rien que tu ne puisses faire en WPF. Mais si certains cas complexes sont simples à faire, en revanche certains cas simples sont complexes à faire !

    En général WPF ne ressemble à aucune autre biblio UI ayant existé avant lui (même si depuis beaucoup s'en inspirent), de Html à WinForms en passant par Cocoa ou XUL. En particulier les contrôles en WPF n'ont rien à avoir avec ceux de WinForms. Pour commencer un contrôle en WPF n'a aucune apparence : un bouton est simplement un élément ayant un événement Click qui sera invoqué en réaction à un clic sur lui-même. Tu peux le définir rond, carré, en faire une image, mettre tout ce que tu veux dedans, etc : WPF offre un mécanisme de templating très puissant pour ça. De même un treeview n'est qu'un système hiérarchique d'éléments : tu peux lui donner l'apparence d'un treeview classique mais tu peux aussi t'en servir pour définir un graphe avec la racine représentée par un rond au centre et ses enfants dispersés en cercle autour d'elle. Alors bien sûr, par commodité, chaque contrôle a une apparence par défaut mais tu peux totalement changer celle-ci et les contrôles sont conçus comme indépendants de leur apparence finale (même si, toujours par commodité, ils exposent des propriétés background, foreground, etc).

    Tout ça donne une grande puissance mais il y a un revers : puisqu'un ToolBarButton peut avoir n'importe quelle apparence, et notamment avoir ou non une icône, WPF ne cherchera pas à griser celle-ci si le bouton est désactivé ; c'est à toi de le gérer. De même, s'il est très simple de donner à un treeview l'apparence d'un treeview standard, il reste une foule de détails à régler : le système se prête mal à l'affichage de fonds sur toute la longueur de la ligne (reproduire le FullRowSelect de WinForms), il génère par défaut des indicateurs de focus incorrects (encadrant le noeud mais aussi tous ses enfants), tu devras toi-même ajouter une texbox invisible et câbler une pression sur F2 pour rendre tes noeuds éditables, la détection d'une pression sur espace ou entrée devra être faîte à la main (au moins c'est possible grâce au routage des événements), etc.

    Quant à la DataGridView... Et bien elle n'existe pas ! Tu as un système d'affichage en colonnes prévu pour ça mais c'est ensuite à toi de définir un modèle pour chaque colonne. Dans la mesure où le templating et le databinding sont les grandes spécialités de WPF, en théorie ça marche très bien. Sauf qu'en pratique, quand tu commences à vouloir régler les détails là aussi ça coince : réaction aux entrées utilisateurs, peaufinage de l'affichage, etc.

    Tout cela étant dit, je viens de te donner avec DataGridView et TreeView un aperçu du pire de WPF, le reste est beaucoup plus simple, souvent plus qu'en WinForms. Qui plus est, au bout d'un moment tu te seras constitué, via tes propres codes ou des biblios existantes, une boîte à outils que tu garderas sous la main pour rapidement résoudre ces problèmes (par exemple via System.Windows.Interactivity.dll livrée avec ExpressionBlend et redistribuable). Tu peux aussi choisir d'avoir recours à certains des composants tierce-parties (souvent payants) disponibles sur le net et qui sont prêts-à-l'emploi, à mi-chemin de WinForms et WPF.

    Mais autant t'avertir que la transition sera rude et longue, que le net fourmille d'exemples, conseils et tutoriels mauvais ou dépassés, même en provenance de MS (il a fallu du temps avant que les bonnes pratiques n’émergent), que WPF offre souvent dix façons de faire dont huit mauvaises et que tes premières centaines d'heures ressembleront sans doute à un chemin de croix avant d'enfin accéder au Nirvana. Raison de plus pour ne pas traîner et t'y mettre dès que possible sous peine d'obsolescence de tes compétences. Trouver un bon bouquin récent (il a fallu du temps pour que les bonnes pratiques émergent) serait une aide précieuse qui t'éviterait nombre d'heures de frustration mais je n'en connais pas. Expression Blend aidera lui aussi à adoucir la courbe d'apprentissage.

  5. #5
    Membre confirmé Avatar de athlon64
    Profil pro
    Inscrit en
    Février 2009
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 243
    Points : 547
    Points
    547
    Par défaut
    ok merci,

    je vois à peu près de quel côté serait la difficulté. Mais ça me va, je pratique pas mal de langages et l'apprentissage des nouvelles manières de procéder penser j'aime ça !


    Citation Envoyé par DonQuiche Voir le message
    ...WPF offre souvent dix façons de faire dont huit mauvaises et que tes premières centaines d'heures ressembleront sans doute à un chemin de croix avant d'enfin accéder au Nirvana

    Merci du conseil, c'est pour cela que je consulterai davantage des sites anglophones. Généralement c'est sur ces sites que je trouve des sujets concrets qui vont droit au but, avec des explications les moins vague possibles...


    Encore merci !

    ps : avec M$ on sait plus sur quel pied danser de nos jours...

  6. #6
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Si tu aimes les changements de paradigmes, tu vas effectivement être ravi. D'autant que ces nouveautés révèlent de nombreuses perspectives très intéressantes.

    Par rapport aux sources d'information, je formule moi aussi mes requêtes en anglais bien sûr mais il existe quelques très bons articles pour WPF en français. Surtout, plus que la langue, c'est l'année qui importe : comme je l'ai dit les bonnes pratiques ont mis du temps à s'imposer. Méfie-toi d'un article de MS s'il est daté de 2006, cherche plutôt quelque chose de 2009-2010 au plus tôt.

    Enfin, oui, W8 sème le trouble, même après avoir débroussaillé. Pas tant en termes de langages et de technologies de mon point de vue : c'est plutôt que la perspective de se retrouver avec deux familles d'applis, fonctionnant sous deux paradigmes UI différents, dont l'une sandboxée, et uniquement diffusée par un appstore propriétaire avec les restrictions d'usage, ne me réjouit guère. Surtout si l'on en tire la conclusion qu'il faut désormais deux à trois versions de chaque appli, avec des possibilités très différentes (le sandboxing notamment), dont certaines capables d'adapter leur UI dans un très large mesure.

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour.

    Citation Envoyé par DonQuiche Voir le message
    D'abord XAML est un langage, commun à WPF, Silverlight et WinRT.
    sans oublier WF.

    WPF l'emporte haut la main. Personnellement je ne retournerais sur WinForms pour rien au monde.
    Je plussoye.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  8. #8
    Membre confirmé Avatar de athlon64
    Profil pro
    Inscrit en
    Février 2009
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 243
    Points : 547
    Points
    547
    Par défaut
    Merci bien pour les conseils ! Ça permet en même temps de mettre un pied dans windows 8 (metro) avec C#/XAML.



    PS : La version Pro de Windows 8 à 15$ si on possède déjà Windows 7... M$ met trop en avant metro avec HTML5/JS ou c'est moi qui me trompe...

    De tout ce que je vois en vidéo ou texte sur le net c'est l'impression que j'ai ! On
    parle peu des autres langages...

    XobotOS aussi a l'air pas mal pour rebooster c# !

  9. #9
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par athlon64 Voir le message
    PS : La version Pro de Windows 8 à 15$ si on possède déjà Windows 7... M$ met trop en avant metro avec HTML5/JS ou c'est moi qui me trompe...
    Tu es sûr de ce tarif ? Cela me semble vraiment étrange.
    Quant à html5/js, il s'agissait d'attirer des dévs web. Ce ne sera en aucun cas la plateforme de prédilection. MS gardera le c++ pour Windows lui-même et continuera à recommander dotnet pour le reste.

    En fait, à long terme, W8 est plutôt une opportunité pour dotnet :
    * Via WinRT nous aurons désormais naturellement accès à toutes les API de Windows, comme s'il s'agissait d'API dotnet, laissant progressivement Win32 et l'ancien COM mourir aux oubliettes.
    * Le fait que WinRT soit la biblio UI utilisée par Windows lui-même nous garantit que de gros efforts seront faits pour améliorer les performances, un point qui restait encore fâcheux sous WPF.

  10. #10
    Membre confirmé Avatar de athlon64
    Profil pro
    Inscrit en
    Février 2009
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 243
    Points : 547
    Points
    547
    Par défaut
    Oui, même moins, exactement à $14,99...

    Mais tu n'as pas tort, car je viens de voir la condition qui tue : acheter windows 7 après le 2 juin 2012 !

  11. #11
    Membre confirmé Avatar de athlon64
    Profil pro
    Inscrit en
    Février 2009
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 243
    Points : 547
    Points
    547
    Par défaut
    http://joshsmithonwpf.wordpress.com/

    Les commentaires sont très intéressants...

Discussions similaires

  1. Quelle technologie pour des UI modernes ?
    Par DonQuiche dans le forum Débats sur le développement - Le Best Of
    Réponses: 34
    Dernier message: 14/11/2011, 01h32
  2. Réponses: 0
    Dernier message: 11/11/2011, 21h52
  3. Quelle application pour réaliser des graphiques ?
    Par giuseppe2 dans le forum Débuter
    Réponses: 1
    Dernier message: 01/06/2008, 04h42
  4. Quelle technologie pour vérifier l'âge des utilisateurs ?
    Par wikers dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 08/11/2006, 15h13
  5. Quelle technologie pour des représentations schématiques ?
    Par Jéjé81 dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 03/02/2006, 22h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo