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 :

Comment référencer les projets dans une application développée en 3 couches?


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut Comment référencer les projets dans une application développée en 3 couches?
    Bonjour à tous.

    Voilà, je développe une appli en 3 couche. J'aurais aimé savoir, comment rendre visible les éléments d'une couche de mon appli, dans une autre couche.

    Explication : je veux voir les éléments de la couche 2 dans la couche 1 :

    Dans ma couche 1 j'ai rajouté :

    est-ce bon? y-a-til d'autres éléments à rajouter?

    Merci de votre aide =)

    Cordialement

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 20
    Par défaut Développement 3 couches
    La solution la plus simple est effectivement de faire référence dans ta couche IHM à la couche dite Business qui doit contenir tes objets métier et les règles métier.

    Pour une solution Visual studio basique 3 tiers, tu vas créer à minima 4 projets qui vont correspondre à 4 namespace.

    Tu auras un projet DataAccess, un projet Business, un projet pour l'IHM (application web / application win32 / application console).
    Le 4ème projet sera un projet Helper ou tu vas ajouter les classes transverses (gestion des logs, des exceptions ...)

    Dans ton projet IHM, tu peux faire un click droit sur le projet et ajouter une référence. Tu choisiras alors une référence de type projet et tu sélectionneras le projet Business.

    Ensuite, dans tes pages web ou dans tes forms, tu pourras faire un using Business;

    Bon développement

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 472
    Par défaut
    Pour faire un peu plus sérieux, spécifiez des Interface dans la couche Business et DataAccess.
    L'IHM, n'utilisera que les Interfaces de la Business et la Business n'utilisera que les Interfaces de la DataAccess.

    Puis créez 2 projets qui ne contiendront que ces 2 groupes d'Interfaces.

    Vous aurez ainsi un vrai découplage entre vos couches.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    Merci pour vos réponses mais même en faisant cela, ça ne fonctionne pas =S

  5. #5
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Ce que tu essayes de faire est un modele MVC, il y a pas mal de tutoriaux sur le net qui expliquent bien ce que tu veux faire.

    Tes couches representent des projets dans la meme solution, et seront accessibles via les references.

  6. #6
    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
    Salut,

    Citation Envoyé par sicilianadev Voir le message
    Merci pour vos réponses mais même en faisant cela, ça ne fonctionne pas =S
    Quel est ton problème, exactement ?

    Citation Envoyé par topolino Voir le message
    Ce que tu essayes de faire est un modele MVC, il y a pas mal de tutoriaux sur le net qui expliquent bien ce que tu veux faire.
    Grrrr....nan, pas MVC, en couches, MVC/MVP = pattern de présentation (à force de répeter )


    Est-ce que tu as bien ajouté les références adéquates à tes différents projets ?

    Est-ce que tous tes projets compilent ?

    Est-ce que tu peux nous expliquer un peu ce que tu as déjà fait ?

    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.

  7. #7
    Membre éprouvé Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Par défaut
    Citation Envoyé par sicilianadev Voir le message
    Dans ma couche 1 j'ai rajouté :

    using system.couche2;

    est-ce bon? y-a-til d'autres éléments à rajouter?
    non c'est pas bon
    ta "couche2" ne fait pas partie du system, mais de ta solution/ projet...
    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using MonNamespace.couche2;

  8. #8
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2003
    Messages : 53
    Par défaut
    exactement il a raison c est monNameSpace.Couche
    et n oublie pas aussi de rendre la classe a laquelle tu veux accedez Public

  9. #9
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Voilà, je développe une appli en 3 couche. J'aurais aimé savoir, comment rendre visible les éléments d'une couche de mon appli, dans une autre couche.
    Faire 4 projets dans une solution:
    1. InterfaceUtilisateur
    2. BusinessLogiqueLayer
    3. DataAccessLayer
    4. BusinessObjects

    Pour référencer les projets les uns avec les autres clic droit sur le dossier "reference" de chaque projet > Ajouter une réference > onglet projet > tu selectionnes les projets sachant que:
    • 1 référence 2 et 4
    • 2 référence 3 et 4
    • 3 référence 4
    • 4 ne référence aucun projet
    Le resultat donne une architecture 3 tiers
    Citation Envoyé par Hafiz.B Voir le message
    exactement il a raison c est monNameSpace.Couche
    et n oublie pas aussi de rendre la classe a laquelle tu veux accedez Public
    Utiliser un espace de nommage en "system" peut préter à confusion avec l'espace "System" de Microsoft. Toutefois comme le C# est sensible à la casse il ne devrait pas y avoir de problème de compilation.

    Tu peux aussi parcourir cette discussion: http://www.developpez.net/forums/d24...multi-couches/

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Petite précision sur le vocabulaire: on va plutôt parler de couches là.
    On parle de tiers quand on a une séparation physique (typiquement, lorsque les couches sont sur des serveurs différents)

  11. #11
    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 lutecefalco Voir le message
    Petite précision sur le vocabulaire: on va plutôt parler de couches là.
    On parle de tiers quand on a une séparation physique (typiquement, lorsque les couches sont sur des serveurs différents)
    Ca y'est, on est deux à raler sur le vocabulaire

    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.

  12. #12
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Bataille de vocabulaire!

    Si tant est que wikipedia peut être pris comme référence:
    In software engineering, multi-tier architecture (often referred to as n-tier architecture) is a client-server architecture in which the presentation, the application processing, and the data management are logically separate processes.
    Séparation logique pas physique.

    Après c'est une question de point de vue. Certain nient encore que la terre est ronde, que le réchauffement climatique est du à l'effet de serre... Il n'y a pas une académie de la terminologie en informatique, si?
    Citation Envoyé par lutecefalco Voir le message
    On parle de tiers quand on a une séparation physique (typiquement, lorsque les couches sont sur des serveurs différents)
    Tu confonds aussi tier et couche Considérant le schéma ci-dessous. Toutes les couches de l'application sont sur le même serveur (le serveur web). Ce ne sont pas les couches mais les tiers.

    Si je fais un application console basée sur une architecture applicative 3 couches, que je pose cette application sur mon serveur de base de données pour lancer des batchs (ainsi je profite de l'authentification windows intégrée). C'est quoi comme déploiement?

    En faisant une application client serveur, en séparant la base de données du serveur web => on fait du 3 tiers sur au moins sur deux couches (BLL et DAL). Mais ma console 1tier 2 couches? Si je teste mon site web directement sur le serveur web je fais du 2 tiers 2 couches, mais depuis mon poste elle devient du 3 tiers 2 couches. Arrgh.

    On (je) fait donc peut-être un amalgame avec la façon de distribuer l'application.
    Cette image sur le site de M$ montre qu'à partir du moment où on fait du Client serveur on a une distribution en 3-tiers (sauf si on met la base de données sur le serveur web). Ce qui retirerait un peu de son sens au 3-tiers vu que c'est le concept de base d'une architecture client-serveur.
    Infrastructure Patterns

    The next set of patterns in this cluster focuses on the physical infrastructure. The context for these patterns is an infrastructure that supports an application distributed over more than one server. Specifically, these patterns do not address mainframe or other large multiprocessor infrastructure configurations.

    Tiered Distribution organizes the system infrastructure into a set of physical tiers to provide specific server environments optimized for specific operational requirements and system resource usage. A single-tiered infrastructure is not very flexible; the servers must be generically configured and designed around the strictest of operational requirements and must support the peak usage of the largest consumers of system resources. Multiple tiers, on the other hand, enable multiple environments. You can optimize each environment for a specific set of operational requirements and system resource usage. You can then deploy components onto the tier that most closely matches their resource needs and enables them to best meet their operational requirements. The more tiers you use, the more deployment options you will have for each component.

    Three-Tiered Distribution refines Tiered Distribution to provide specific guidance on structuring the infrastructure for Web applications with basic security and other operational requirements. The pattern suggests that the solution's servers be organized into three tiers: client, Web application, and data. The client and data tiers are self-explanatory, and the Web application tier hosts application business components as well as the Web presentation components. For solutions with more stringent security and operational requirements, you may want to consider moving the Web functionality into its own tier.
    Ok ok, 3 Tiers est un schéma de distribution, d'infrastructure.

    Abus de langage. Je devrais pourtant le savoir BLL = Business Logic Layer. Je fais du 3tiers 2 couches! Mince, on en apprend tous les jours.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/05/2015, 13h45
  2. Comment nommer les versions d'une application
    Par Bweb dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 15/02/2013, 15h07
  3. Les winsocks, comment les utiliser dans une application réseau ?
    Par JLDK007 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/04/2009, 12h45
  4. Réponses: 3
    Dernier message: 29/05/2007, 16h50
  5. Réponses: 2
    Dernier message: 24/01/2006, 09h41

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