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

C# Discussion :

Référence de dll dans une solution .NET


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut Référence de dll dans une solution .NET
    Bonjour,

    J'ai un petit soucis. Je cherche à créer un mini framework qui gerera mes accées base. Pour cela j'ai plusieurs projets qui corresponde à mes couches :
    - Core.Data contenant les classes qui fera appel à une DAL static
    - Core.Business héritant des objets de Code.Data
    - Business contenant mes objets metiers et héritant de Core.Business

    Le systeme fonctionne. Mon soucis est que pour le moment Core.Business référence Core.Data et Business référence Core.Business et... Core.Data.
    Donc dès que je veux créer les IHM dans un projets metiers je suis obligé de référencé Core.Data et Core.Business pour pouvoir utilisé les objets metiers du Business. J'aimerai pouvoir supprimer ces références. Je pense qu'il faut passer par des interfaces mais je ne vois pas trop comment faire, si quelqu'un a une idée merci de me la donné .

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    aurai tu un ptit diagramme à nous fournir? je ne suis pas sur de comprendre le shema de ton appli...

    Sinon

    je dirais pour tes classes Core.data et Core.Business de faire un clic droit dessus, puis refactoring puis extraire l'interface.
    ensuite tu place ces interfaces dans un nouveau projet librairie de classe

    Ainsi, désormais tes classes business et data dependent de cette dll

    Tu peux en plus de cela, placer dans ce nouveau projet un abstract Factory.

    Ainsi tout ce qui aurait besoin d'utiliser tes classes Core.Data et Core.Business aurait une reference vers ton nouveau projet uniquement, tu ne sera plus dépendant de Core.Data et Core.Business

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut
    Grosso modo on a :

    IHM --> classe metiers -héritage-> Core.Business -héritage-> Core.Data

    On retrouve le même shéma pour les listes.
    Je pense que tu as compris mon problème car j'aime bien ta solution et je vais ésséyé de la mettre en place.

    Merci beacoup

  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
    Citation Envoyé par silvinus Voir le message
    IHM --> classe metiers -héritage-> Core.Business -héritage-> Core.Data
    Pourquoi fais-tu de l'héritage entre ces couches ?

    Que tes classes métiers *utilisent* tes classes de Core.Business qui *utilisent* Core.Data, ok, mais pourquoi l'héritage ?

    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
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    je pense plutot que -> signifie "depend de"

    Que tes classes métiers *utilisent* tes classes de Core.Business qui *utilisent* Core.Data
    Je ne suis pas d'accord avec toi, d'ailleur silvinus dit lui meme que ca lui pose probleme.

    Tout ceci viole totalement le principe d'inversion des dépendances qui dit :

    1) Les modules de haut niveau doivent être modifiés lorsque les modules de bas niveau sont modifiés.
    2) Il n'est pas possible de réutiliser les modules de haut niveau indépendamment de ceux de bas niveau. En d'autres termes, il n'est pas possible de réutiliser la logique d'une application en dehors du contexte technique dans lequel elle a été développée.

  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
    Citation Envoyé par giova_fr Voir le message
    Tout ceci viole totalement le principe d'inversion des dépendances
    Rien a voir avec ta citation, le DIP, c'est justement l'inverse

    Avoir un module de haut niveau qui hérites d'un module de bas niveau *est* une violation du DIP, vu qu'une modif sur ton module de bas niveau impacte le module de haut niveau

    Citation Envoyé par giova_fr Voir le message
    je pense plutot que -> signifie "depend de"
    Non, c'est marque noir sur blanc dans chacun de ces posts, c'est un héritage

    Ajouter une interface intermédiaire si on conserve l'héritage ne changera rien a son problème

    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.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/03/2009, 10h51
  2. Réponses: 15
    Dernier message: 27/09/2006, 11h46
  3. Réponses: 1
    Dernier message: 02/05/2006, 10h50
  4. Réponses: 9
    Dernier message: 06/04/2006, 18h40

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