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

Autres Discussion :

Plusieurs petites questions


Sujet :

Autres

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut Plusieurs petites questions
    Bonjour à tous !

    Je développe actuellement en C# une grosse application qui va être amenée à évolué au cours du temps et où plusieurs développeurs vont travailler dessus.

    Pour faciliter le travail de tous et créer des bases solides pour cette application, j'ai décidé d'implémenter une architecture de type N-Tiers.

    Mais, je me pose pas mal de questions...

    Déjà, pensez-vous que ce choix est judicieux ?

    Ensuite, mes bases de données sont situées sur un serveur MySQL. Donc, j'hésite pour le composant à utiliser pour m'y connecter : DevArt ou MySQLConnector ? Selon vous, lequel offre le plus de possibilités ?
    Ou, en connaissez vous un autre plus adapté ?

    Ensuite, il y a la gestion des clés étrangères...
    Est-ce qu'il est judicieux d'inclure des objets dans des objets ou alors, il vaut mieux s'en tenir strictement aux champs des tables ? Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class Auteur
    {
       private int _idAuteur;
    }
    
    // Comme un livre est écrit par un et un seul auteur, 
    // est-ce que je met l'idAuteur en propriété de livre ?
    public class Livre
    {
       private int _idAuteur ;
    }
    
    // ou est-ce que je met un objet Auteur dans mon livre ?
    public class Livre
    {
       private Auteur _auteur;
    }
    Que me conseillez vous ?

    Encore une question : j'hésite à faire hériter ma DAL de la classe IDisposable...
    Pensez vous que c'est utile ?

    Merci beaucoup des réponses que vous m'apporterez ! Si vous avez des liens intéresants ou des tuto, je suis preneuse ! Merci !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Bonjour,

    Citation Envoyé par Sancha Voir le message
    Je développe actuellement en C# une grosse application qui va être amenée à évolué au cours du temps et où plusieurs développeurs vont travailler dessus.

    Pour faciliter le travail de tous et créer des bases solides pour cette application, j'ai décidé d'implémenter une architecture de type N-Tiers.

    Mais, je me pose pas mal de questions...

    Déjà, pensez-vous que ce choix est judicieux ?
    Il est toujours judicieux de "séparer" un travail conséquent en différentes couches d'abstraction. Maintenant, si vous n'en dites pas plus sur le rôle et responsabilité des différentes couches que vous avez arrêté, il sera difficile de vous répondre plus précisément.

    Ensuite, il y a la gestion des clés étrangères...
    Est-ce qu'il est judicieux d'inclure des objets dans des objets ou alors, il vaut mieux s'en tenir strictement aux champs des tables ? Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class Auteur
    {
       private int _idAuteur;
    }
    
    // Comme un livre est écrit par un et un seul auteur, 
    // est-ce que je met l'idAuteur en propriété de livre ?
    public class Livre
    {
       private int _idAuteur ;
    }
    
    // ou est-ce que je met un objet Auteur dans mon livre ?
    public class Livre
    {
       private Auteur _auteur;
    }
    Que me conseillez vous ?
    public class Livre n'est pas une table mais un "objet".
    Si vous voulez y inclure Auteur, un pointeur vers suffirait et vous n'avez pas besoin d'inclure (to nest) Auteur dans Livre, ni de n'en avoir que sa Clé.
    A mon sens et surtout si votre application est amenée à évoluer, il serait bon de définir:
    • le modèle conceptuel:
    • le modèle logique: quelles sont les branches du modèle conceptuel qui sera mis en base, seulement représenté sous forme d'objets, ... quelles sont les relations entre les différentes représentations externes...
    • le modèle physique: objets, tables, ...
    • éventuellement: un modèle externe si vous avec différentes "Views"


    Les autres questions relèvent plutôt du bon usage de clients MySQL à partir de C# ou de partitionnement / layering dans le monde C# de Microsoft.

    Indépendamment du fait que cà ne relève pas trop d'architecture mais d'utilisation de technologies particulières, je n'ai pas de bonne suggestion sur ces points.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/06/2009, 11h13
  2. Plusieurs petites questions
    Par Cocoboubs dans le forum C++Builder
    Réponses: 6
    Dernier message: 04/11/2008, 19h09
  3. Plusieurs petites questions
    Par newbiedelphi dans le forum Débuter
    Réponses: 6
    Dernier message: 07/11/2007, 16h13
  4. Plusieurs petites questions (base Access et VB)
    Par Chipsssit dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/05/2007, 19h52
  5. Plusieurs petites Questions de Bases
    Par Alpha31 dans le forum Access
    Réponses: 12
    Dernier message: 06/06/2006, 14h58

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