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

ASP.NET Discussion :

Technologie 3-tiers : eclaircissement


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut Technologie 3-tiers : eclaircissement
    Bonjour à tous,
    après avoir lu pas mal d'articles la-dessus j'aimerais avoir quelques informations sur la technologie que l'on nomme de 3-tiers.


    D'après ce que j'ai compris
    - premiere couche = la page web , avec son formulaire
    - deuxieme couche = le code behind et les classes qui gèrent les évènements
    - troisieme couche = les procédures stockées qui gèrent les données

    j'aimerais avoir confirmation...

    Je suis en même temps sur le site de wikipédia la mais je butte un peu sur ce langage purement technique.

    Etant en stage, j'utilise apriori les couches que je vous ai énoncé mais j'aimerais un peu d'éclaircissement.

    Je voudrais par exemple être sur de mes couches et que quand on parle de technologie 3 tiers on ne parle pas d'outil physique. En ce sens je ne comprends pas bien comment on peut séparer la couche dialogue et la couche métier.

    Merci par avance pour vos réponses.
    @+,
    Tid.



    Je tiens à préciser que google n'a pas été mon ami car il s'est montré trop technique et n'a pas pris en compte mon coté 'voudrait des explications claires'...

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Idéalement une architecture 3 couches est séparée dans 3 projets différents.
    La couche UI (ASP.NET dans ton cas) appelle la couche business par l'intermédiaire d'une facade (design pattern) dans la couche business.
    La couche business est responsable du traitement métier en général (validation des données, gestion de la sécurité) et se base sur la couche d'accès aux données pour enregistrer et récupérer des entités de la source de données.
    Les entités sont stockées dans une assembly séparée (toujours idéalement) et elles se promènent dans l'application au travers des différentes couches.
    Tu peux aussi distinguer entités métier (business) des entités data (accès aux données). Dans ce cas, c'est la couche business qui se charge de traduire les entités data en entités business. Cela te permet d'avoir une couche d'accès basée sur le MPD et une couche business basée sur le MCD correspondant.

    On peux aussi intercaller une couche de service (web service, WCF, etc) entre la couche business et la couche UI. Dans ce cas, tu peux décider que le service fasse office de facade ou conserver une facade au niveau business. La deuxième solution augmente le découplage.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Par défaut
    Bonjour Tidus,
    ta question est intéressante et je trouve aussi que l'on manque d'informations à ce sujet pour savoir comment, a priori, bien faire les choses.

    Si tu es à l'aise en anglais, je te conseille vivement cet article.
    http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=416

    Je me suis beaucoup appuyer dessus pour développer en asp.net.
    Développer en n-tiers est un concept de programmation très utilisé lorsque l'on développe en classe.
    Cela consiste à découper en plusieurs couches chaque partie.

    Pour ma part, maintenant, en asp.net, je développe un projet dans lequel j'ai une DLL et un site web.
    Dans ma DLL,
    j'ai 3 couches:
    Couche d'accès aux données
    Couche d'objet
    Couche Métier

    Pour faire simple:
    la couche d'accès aux données, comme son nom l'indique permet d'instancier des objets de ma couche d'objet en exécutant les requêtes SQL sur la base de données.
    La partie métier me permet de faire appel au méthodes de création d'objets de ma classe d'accès aux données, mais tu peux y ajouter des règles, de la sécurité...

    Enfin, dans ma partie site web, je référence ma DLL, et je ne fais qu'appel à ma classe métier pour avoir mes objets.
    De plus en ce moment, j'utilise bcp les webservices qui font appel à ma classe métier. En effet j'utilise maintenant bcp le javascript coté client. 'fin c'est un autre sujet.

    Personnellement, c'est comme ca que je travaille maintenant mais il existe d'autres manières de faire.

    J'espère avoir été clair

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Je plussoie pour le lien..

    en fr, tu as le cours suivant :
    http://plasserre.developpez.com/v5-10.htm

    l'exemple 1 correspond a une architecture "standard" (ui, bll, dal)

    Sinon, juste pour ajouter mon grain de sel, j'utilise un decoupage en 4 couches, (5 avec la couche service) , avec une couche core commune a toutes les autres couches contenant la gestion des fonctionnalites transverses (log, securite, etc...), chaque couche residant dans une assembly a elle.

    L'interet, c'est d'eviter a certains la tentation de faire glisser petit a petit du code de la dal vers la bll

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par pvialatte Voir le message
    l'exemple 1 correspond a une architecture "standard" (ui, bll, dal)

    Sinon, juste pour ajouter mon grain de sel, j'utilise un decoupage en 4 couches, (5 avec la couche service) , avec une couche core commune a toutes les autres couches contenant la gestion des fonctionnalites transverses (log, securite, etc...), chaque couche residant dans une assembly a elle.
    C'est une architecture 3 tiers standard alors. Si une couche est commune à toutes les autres, ça ne peut pas être une couche, j'appelerais ça un module (mais je chipote).
    Pour les problématiques tranversales, je fais de l'orienté aspect pour plugger des comportements sur des méthodes sans avoir à toucher aux différentes couches.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut
    Bonjour,
    et déjà merci pour ces réponses : c'est beaucoup plus clair.

    En s'intéressant plus a fond à l'asp.net
    J'ai réalisé une solution de 2 projets :
    - le site en lui même
    - ma bibliothèque de classe

    Cependant dans le site en lui même, ayant débuté l'asp.net avec ce projet, j'utilise des gridview qui appelle directement des procédures stocké (appelle de la couche acces aux données par la couche presentation)
    J'utilise cependant des object comme : les listes déroulantes qui utilisent mes object et des méthodes du style 'afficheNom' 'afficheIdpourValue'

    J'aimerais savoir si ce type de projet (assez mal organisé certes) peut etre considéré comme utilisant la technologie 3-tiers.

    @Promesses : je ne comprends pas bien comment tu peux insérer dans ta .DLL
    la couche présentation qui est logiquement sur ton site et présente les idées à l'utilisateur justement !

    Cordialement,
    Tid.

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Par défaut
    Citation Envoyé par Tidus159 Voir le message

    @Promesses : je ne comprends pas bien comment tu peux insérer dans ta .DLL
    la couche présentation qui est logiquement sur ton site et présente les idées à l'utilisateur justement !
    Euh excuse moi mais j'ai pas compris ta requête

  8. #8
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut
    Citation Envoyé par Promesses Voir le message
    Dans ma DLL,
    j'ai 3 couches:
    Couche d'accès aux données
    Couche d'objet
    Couche Métier
    Je te pose la question sur cette partie de ton post :p

    [edit] 3 couches sans parler de la couche présentation je pense que la toi tu utilises une technologie donc 4-tiers ?

  9. #9
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Si une couche est commune à toutes les autres, ça ne peut pas être une couche, j'appelerais ça un module (mais je chipote).
    Chipotaaage !!!

    c'est une couche, mais une couche transverse

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  10. #10
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Par défaut
    Citation Envoyé par Tidus159 Voir le message
    Je te pose la question sur cette partie de ton post :p

    [edit] 3 couches sans parler de la couche présentation je pense que la toi tu utilises une technologie donc 4-tiers ?
    Je t'avoue que je ne suis pas à l'aise avec ça.

    Mais la "couche d'objet" ne sont en fait que les classes d'objet donc je sais pas si c'est vraiment considéré comme une couche.

    Ma couche d'acces aux donnés instancie des objets, et ma couche métier fait appel à ma couche d'accès aux données pour renvoyer mes objets.

  11. #11
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut
    En tout cas merci à tous pour ces réponses! Je crois que j'ai encore des progrès à faire au niveau de la gestion de mes couches mais au moins c'est nettement plus clair à présent.

    Cordialement,
    Tid.
    [résolu]

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

Discussions similaires

  1. [Débat] Technologie .NET vs JAVA
    Par neo.51 dans le forum Débats sur le développement - Le Best Of
    Réponses: 1047
    Dernier message: 14/01/2019, 16h15
  2. [N-Tier] technologie objet et architecture n-tiers
    Par Conaclos dans le forum Autres
    Réponses: 1
    Dernier message: 25/01/2011, 11h08
  3. [3 tiers][EOleException]
    Par PpPool dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/08/2003, 17h29
  4. [Design Patterns] Architecture 3 tiers
    Par HPJ dans le forum Design Patterns
    Réponses: 1
    Dernier message: 29/07/2003, 11h49
  5. 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

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