Question

Combien doit représenter un DataSet ?En utilisant l'exemple d'un système de commande :En affichant votre commande, j'affiche également une liste d'articles similaires à l'un des vôtres ainsi qu'une liste de nos articles les plus populaires.Alors que vos articles sont emmêlés dans un réseau de relations impliquant vous et vos commandes passées, vos fournisseurs préférés et les divers autres types d'informations liées à vous en tant que client, les autres articles n'ont pas ces mêmes relations.L'ensemble de requêtes que j'utilise pour parcourir l'ensemble des éléments vous représentant est différent des requêtes que j'utilise pour l'une de ces autres listes d'éléments.

Mon inclination est de créer différents DataSets pour différents types de relations, mais je crée ensuite dix DataTables d'éléments distincts et cela semble faux.Lorsque j'instancie le plus grand DataSet même si je ne suis intéressé que par un petit sous-ensemble qui semble faux, et lorsque j'essaie de regrouper tous ces éléments dans un seul DataSet, j'ai un gros problème avec plusieurs tables d'éléments les unes à côté des autres et je suis je suis presque sûr que c'est faux.

Peut-être que je surestime la fonctionnalité relationnelle de DataSets ou peut-être que j'ai juste besoin de me remettre de moi-même, de toute façon, je pourrais utiliser quelques conseils.

Était-ce utile?

La solution

C'est pourquoi je n'utilise pas d'ensembles de données.Si vous utilisez des ensembles de données fortement typés, vous bénéficiez du typage fort, mais vous le payez en termes de temps nécessaire pour en créer un, même si vous n'en utilisez qu'une partie, et de son extensibilité en termes de base de code.Si vous souhaitez en modifier une existante et que vous modifiez une définition de ligne, cela créera des pauses "shotgun" dans la base de code car chaque définition pour ajouter une nouvelle ligne devra être modifiée car elle ne sera plus compilée.

Pour éviter le scénario ci-dessus, l’approche la plus judicieuse consiste généralement à renoncer à une réutilisation raisonnable.Définir un jeu de données par finalité et par usage.Cependant, le principal problème est l'utilisation de l'API, vous vous retrouvez avec un ensemble de données similaire à un autre ensemble de données, mais comme il s'agit d'un type d'ensemble de données différent, vous devez le transformer pour utiliser l'API commune, ce qui est à la fois douloureux et inélégant.

Ceci, ajouté au fait que les ensembles de données fortement typés donnent à votre code un aspect horrible (la longueur des déclarations de type), sont en grande partie les raisons pour lesquelles j'ai abandonné les ensembles de données et suis passé aux objets métier à la place.

Autres conseils

Le DataSet est largement surfait et surutilisé.Utilisez des collections fortement typées (merci, génériques et propriétés automatiques !).Cerise sur le gâteau, vous pouvez désormais même effectuer des requêtes intéressantes sur vos objets personnalisés avec LINQ.

Bon article d'Esposito sur les ensembles de données par rapport aux objets personnalisés :

http://msdn.microsoft.com/en-us/magazine/cc163751.aspx

Propriétés automatiques :

http://weblogs.asp.net/dwahlin/archive/2007/12/04/c-3-0-features-automatic-properties.aspx

LINQ avec vos objets :

http://blogs.msdn.com/wriju/archive/2006/09/16/linq-custom-object-query.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top