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

MVC Discussion :

Mieux comprendre le développement en couche


Sujet :

MVC

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut Mieux comprendre le développement en couche
    salut tout le monde,

    Je viens de lire l'excellent article de morpheus
    ftp://ftp-developpez.com/morpheus/ar...chitecture.pdf

    Et il y a quelque chose que je n arrive pas a comprendre;

    Il introduit la couche Data Access Layer, et fait une classe pour récupérer les clients avec la méthode suivante .

    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
    19
    20
    21
    22
    23
    24
    25
    private List<Client> GetClientsFromDB(DbConnection cnx)
            {
                List<Client> clients = new List<Client>();
    
                using (DbCommand cmd = cnx.CreateCommand())
                {
                    cmd.CommandType = System.Data.CommandType.Text;
                    cmd.CommandText = "SELECT TOP 10 * FROM Person.Contact";
    
                    using (DbDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Client client = new Client();
                            client.ClientID = reader["ContactID"] == DBNull.Value ? default(int) : int.Parse(reader["ContactID"].ToString());
                            client.ClientLastName = reader["LastName"] == DBNull.Value ? default(string) : reader["LastName"].ToString();
                            client.ClientFirstName = reader["FirstName"] == DBNull.Value ? default(string) : reader["FirstName"].ToString();
    
                            clients.Add(client);
                        }
                    }
                }
    
                return clients;
            }
    Je me pose la question de comment faire si je dois faire deux opérations différentes, par exemple récupérer tous les clients et récupérer les clients dont le nom est Dupont.

    Dois je faire deux classes pour chaque cas ?
    La manière la plus simple sera de faire deux requêtes différentes plutôt que d'intégrer le filtre dans le code de la couche.

    Merci pour ceux qui pourront m'éclairer sur une solution.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Une solution simple est d'adapté est une recherche par rapport aux constituants d'un objet, tu ajoutes dans ta méthode un ou plusieurs filtres pour une même requête seulement si ceux-ci ne sont pas nuls

  3. #3
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Citation Envoyé par rvzip64 Voir le message
    Dois je faire deux classes pour chaque cas ?
    La manière la plus simple sera de faire deux requêtes différentes plutôt que d'intégrer le filtre dans le code de la couche.
    Non, tu introduis de nouvelles méthodes à ta classe. Le classique est de masquer les filtres dans la couche. Tu as autant de méthode que de filtres requis dans les couches supérieurs. C'est moins souple, mais tu gagne en isolation.

    L'autre compromis, est de rendre les filtre accessibles (et donc prédéfinis) et d'introduire simplement une méthode de requêtage filtrée.

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/07/2011, 08h51
  2. Aidez moi a mieux comprendre la micro entreprise ou EI.
    Par arnaudbh dans le forum Société
    Réponses: 6
    Dernier message: 20/12/2007, 18h00
  3. Réponses: 13
    Dernier message: 03/08/2006, 16h31
  4. besoin de comprendre le développement sur cbuilder
    Par fomazou dans le forum C++Builder
    Réponses: 1
    Dernier message: 07/07/2006, 18h38
  5. [Exemple]Mieux comprendre Primary/Foreign Key - Cardinalités
    Par tarzanchita dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 07/04/2006, 08h55

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