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

Architecture Discussion :

Séparer la couche IHM


Sujet :

Architecture

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut Séparer la couche IHM
    Bonjour

    Quelqu'un peut me rappeler les meilleures pratiques pour séparer la couche interface graphique du reste de l'application, en particulier de la couche métier ? Histoire de pouvoir changer d'IHM facilement...

    Si il y a quelque part des exemples en C#, je suis prenneur .


    Merci

    Richard

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Points : 21
    Points
    21
    Par défaut
    Bonjour!!

    pour commencer tu peux regarder le pattern contrôleur (vers la fin du document, il y a aussi un petit exemple). En gros, tu vas déléguer tout le sale boulot au contrôleur afin de rien laisser dans ton ihm pour pouvoir par exemple, comme tu l'as mentionné, changer l'ihm aisément.


  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    En général c'est assez simple.

    Identifier en termes de fonctionalités ce que le logiciel doit faire.

    Normalement, au moins 90 % doivent être "métier" (évidemment, sauf si le logiciel fait du Traitement d'Images )

    Dans celles qui restent, il a les "purement IHM" : restrictions sur un bouton, changement de couleur, etc.
    Les autres ne devraient être qu'un accès vers les fonctions métiers (en général avec une seule ligne de code appellant la fonction métier correspondante).
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut
    Merci pour lien, Kungfoo .



    Souviron, avec une couche IHM agissant sur des interfaces, de façon à la découpler de la couche métier ?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    absolument....

    En dehors des fonctions purement interface, le plus "portable" et indépendant est que les "callbacks" ne contiennent rien qu'un appel à la fonction métier correspondantes (éventuellement complexe), additionné éventuellement de traitements graphiques (attente, mise en grisé d'un bouton, etc...).

    Exemple :

    Bouton "Executer telle opération" :

    code callback :

    afficher fenêtre "ceci peut prendre du temps"
    interdire nouvel accès au bouton

    appelle "Metier_Executer_Telle _Operation"

    eventuellement afficher résultat (dans une fonction à part)
    fermer fenêtre "ceci peut prendre du temps"

    autoriser de nouveau l'accès au bouton



    Pour être de plus vraiment indépendant, définir une structure indépendante de l'outil pour l'affichage (qui devient "Metier_Afficher_Resultat"), et qui elle appelle des commandes d'affichage "génériques" (exemple : trace "texte" à (x,y), affiche symbole '+' à (x,y) etc...) dont le code sera à remplir en fonction des outils graphiques utilisés.
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut
    Merci pour les conseils

    Citation Envoyé par souviron34
    Pour être de plus vraiment indépendant, définir une structure indépendante de l'outil pour l'affichage (qui devient "Metier_Afficher_Resultat"), et qui elle appelle des commandes d'affichage "génériques" (exemple : trace "texte" à (x,y), affiche symbole '+' à (x,y) etc...) dont le code sera à remplir en fonction des outils graphiques utilisés.
    Je n'irai pas jusque là, ce n'est pas utile pour nous, mais je suppose qu'il y a des cas où cela se justifie.
    L'exemple le plus intéressant que j'ai yrouvé et qui illustre bien une séparation entre la couche graphique et les autres est le PetShop DNG, où on voit bien l'intéret d'une couche graphique séparée quand ils sont passé de la version 1 à la 2.

    Je suis preneur de tout autres exemples .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Découpage Couche IHM/Objet métier/ADO.NET
    Par Wil14 dans le forum C#
    Réponses: 0
    Dernier message: 25/11/2010, 18h41
  2. Réponses: 4
    Dernier message: 21/02/2008, 17h05
  3. Séparer métier et IHM
    Par Tijee dans le forum Architecture
    Réponses: 13
    Dernier message: 26/07/2007, 13h36
  4. Réponses: 10
    Dernier message: 08/07/2007, 17h15
  5. Séparer IHM et Traitement
    Par chris_wafer_2001 dans le forum MFC
    Réponses: 6
    Dernier message: 22/03/2006, 10h47

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