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

Contribuez .NET Discussion :

Quelle est la différence entre un DTO et un POCO ?


Sujet :

Contribuez .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut Quelle est la différence entre un DTO et un POCO ?
    Cette discussion est consacrée à l'article intitulé "Quelle est la différence entre un DTO et un POCO ?" qui est la traduction d'un article de Rudy Lacovara.

    Postez ici vos commentaires concernant cette publication.


  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut
    Excellent article ! très utile. Maintenant, j'ai une petite question :

    Quid du DTO pour lequel on est obligé d'insérer la logique de sérialisation car il implémente IXmlSerializable ? c'est un DTO, un POCO, ni l'un ni l'autre ?

    Sinon, concernant les différents schémas d'implantation, en voici un que j'utilise tous les jours :

    J'ai ma couche d'accès aux données branchée via l'ORM Entitiy Framework.
    J'ai donc une partie DAL me permettant d'effectuer les requetes linq to entities.
    Ensuite, j'ai une parti BLL qui me permet de faire tous les mix de requetes dont j'ai besoin et ressortir un résultat métier.
    Entre la DAL et la BLL, je transforme (de façon bilatérale) mes Entities en DTO et inversement.
    Le tout est au final utilisable avec n'importe quel projet et peut même etre partagé entre projets de types différents.
    Dans mon cas, j'ai branché un webservice WCF à la BLL et il va y avoir une partie ASP.Net MVC2 qui viendra plus tard se brancher sur cette meme BLL.
    Ce qu'il y a d'intéressant avec les DTO, c'est que derriere ils peuvent être importés dans tous les projets se servant de ma BLL (ou meme de mon webservice).

    En tout cas, merci pour l'explication

  3. #3
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par zax-tfh Voir le message
    Quid du DTO pour lequel on est obligé d'insérer la logique de sérialisation car il implémente IXmlSerializable ? c'est un DTO, un POCO, ni l'un ni l'autre ?
    D'après l'article, je dirais que c'est ni l'un, ni l'autre.

    En effet, il est dit qu'un DTO n'est qu'un conteneur de données sans logique d'aucune sorte ; et qu'un POCO ne contient pas de logique de persistance (concept de "Persistance Ignorance").

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 657
    Par défaut
    chez moi toutes les couches d'une application ont accès aux DTO , seul la couche "business" a acces aux POCO ( ou pojo , etc ... ).
    un POCO est forcément lié au business layer,puisqu'il a un comportement.
    Un DTO peut par contre alimenter un template , le modèle , ou n'importe quoi d'autre.

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Article clair et didactique !

    Je viens donc de réaliser que je suis depuis plus de dix ans un M. Jourdain du POCO/DTO.

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Je viens donc de réaliser que je suis depuis plus de dix ans un M. Jourdain du POCO/DTO.
    Oui, avec l'expérience, on tend naturellement vers de bonne pratiques (ou en tous cas, des pratiques éprouvées), sans forcément connaitre les termes qui définissent ces pratiques !

Discussions similaires

  1. Réponses: 12
    Dernier message: 01/06/2010, 16h57
  2. Réponses: 5
    Dernier message: 03/05/2005, 18h22
  3. Réponses: 11
    Dernier message: 31/01/2005, 17h48
  4. Quelle est la différence entre le float et le real ?
    Par Manson dans le forum Débuter
    Réponses: 3
    Dernier message: 10/08/2004, 17h26

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