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

Windows Forms Discussion :

Organisation 3 tiers


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut Organisation 3 tiers
    Bonjour,

    Je me pose beaucoup de questions quand au developpement de mon application. Comme a mon habitude je suis parti tête baissé dans le développement de celle ci, et je me rend bien compte que au bout d'un moment je suis bloqué ou je suis obligé d'inventer des solutions très détournées pour résoudre certains problemes. Bref je décide de faire de la conception J'ai fais des recherches assez générales sur le net et appriori il faudrait que je m'orienté vers une architecture 3 tiers. Je disposerai donc des Windows Forms pour l'affichage des données, d'une "couche métier", et d'une gestion de fichiers Xml.
    Si j'ai bien compris la partie gestion des données ne doit pas accéder directement à la partie affichage et vice versa. Dites moi si je me trompe.
    Donc me voici avec mes trois couches et j'en viens à ma question. Comment les faire communiquer efficacement ?
    Mais tout d'abord est ce que une couche égal à une classe ?
    Est ce qu'il vaut mieux que :
    1. faire communiquer les différentes couches avec des évenements ?
    2. donner systématique la référence à une couche à sa voisine ?
    3. utiliser un singleton, ce qui permet à une couche de pouvoir acceder à une autre à n'importe quel endroit ?

    Bref beaucoup de questions. Peut etre ai je mal cherché sur internet. En tous cas merci d'avance pour vos réponses.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Salut

    beh , reponse de normand, ca depend du contexte

    Ma réponse : Je suis assez fan du concept ou de la pattern : "Document et vue"

    C'est quoi, c'était un truc qui etait fait automatiquement (enfin, en template)
    dans les projets C++

    L'idée est que la couche "Interface Utilisateur" va demander à la couche "métier" de lui fournir les informations... et la couche métier va "notifier" les interfaces que quelque chose à changer et que c'est à elle de s'en debrouiller.. donc, la couche métier ne fait "qu'avertir" les Interfaces qu'elle à changer... apres, chaque interface se débrouille pour "exploiter" les informations dont elle a besoin...

    Apres, la couche métier s'appuie sur d'autres couches eventuellement pour fournir un certain nombre de service ou d'information

    L'idée est que la couche Métier est "l'unique" "objet" vu par la couche interface

    En terme de code, ca peut etre

    1 objet pour la couche Métier.. (et cet objet contient pleins d'autres objets)
    X objets pour les interfaces (des forms, etc...)
    etc..

    Désolé, c sommaire comme expliations, mais bon

    The Monz, Toulouse

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut
    Bonjour

    Disons que ca pourrait etre une méthode que je pourrais employer. De toute facon à l'heure actuelle je me sens pas d'inventer ma propre méthode de fonctionnement.
    Alors j'ai a peu pres compris sauf que je comprend pas comment tu fais pour "notifier" les interfaces d'un changement dans la couche métier. Comment le faire ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    ET beh, ta classe "Document" expose des event, et chaque interface au moment ou elle est implémenté "s'enregistre" sur les evenements qu'elles acceptent de recevoir...

    Comme cela, le document va lever un event, "notifier", toutes les objets qui se seront abonnés sans pour autant savoir qui.. et ce qu'ils vont faire avec les données...

    Apres, tu peux avoir différents niveaux de granularités par rapport à tes notifications.. tu peux avoir des event du genre : "J'ai changé".. ou bien plus précis du genre "J'ai changé et je te dis ce qui a changé en te le passant"..

    C'est un exemple bien sur

    The Monz, Toulouse

  5. #5
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Pour ma part, le principe de base du découpage en 3-tiers se base sur son utilité première : l'indépendance des couches.

    Ca veut dire quoi ?
    Ca veut dire que si je fais une couche donnée, c'est pour pouvoir changer ma source de données sans modifier une seule ligne de code de la couche métier.
    ex : dans la v1 de mon appli je bosse sur une BDD SQL server. Dans la v1.1 sur un fichier XML, dans la v1.2 sur une base oracle, ...

    Si je fait une couche interface, c'est pour pouvoir changer d'interface graphique sans avoir à modifier une seule ligne de la couche métier.
    ex : dans la V1 c'est une appli windows, dans la v1.1 c'est une appli web, dans la v1.2 une appli console, ...

    Moralité : la couche métier, c'est la couche qui fait tous les traitements communs, quels que soient le type d'application et le support des données.
    ex : calculer la fiche de paye d'un employé, changer la couleur d'un véhicule, redimensionner une photo, ...

Discussions similaires

  1. [VB.Net 2.0] Comment organiser un projet 3-tiers ?
    Par errant dans le forum Services Web
    Réponses: 3
    Dernier message: 07/03/2006, 21h09
  2. Comment mettre en place une structure 3 tiers.
    Par WOLO Laurent dans le forum Débats sur le développement - Le Best Of
    Réponses: 13
    Dernier message: 27/07/2003, 22h01
  3. [Packages] Problème d'organisation
    Par lolo... dans le forum JBuilder
    Réponses: 5
    Dernier message: 22/04/2003, 13h05

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