Petit questionnement sur une implémentation - DataTable ou pas ?
Bonjour,
Je travaille actuellement sur une application d'édition de devis, et je me pose quelques question concernant mes choix d'implémentation.
Je dois mettre en place plusieures structures de données :
- une liste des articles disponibles ; chaque article ayant un certain nombre d'attributs,
- une liste des "postes" auquels seront intégrés les articles commandés (par exemple une carte mère et une carte graphique est commandée pour le poste secrétaire)
- les lignes de commande, qui en fait sont les articles commandés, associés au poste affecté, avec leur quantité.
Voilà donc le problème. Maintenant la question :
Dans la mesure où ces données seront affichées dans un DataGridView, je pensais me baser sur des DataTable pour les articles et les lignes de commande, et un ArrayList<String ^> pour les postes, comme suit :
ARTICLES : DataTable
Référence|Désignation|Gamme|Famille|Prix
LIGNES DE COMMANDE : DataSet ou chaque DataTable correspond à un poste, soit une collection de DataTable portant le nom du poste :
Référence|Quantité
POSTES : ArrayList
Dans la vue, le devis devra contenir entre autres les informations suivante :
Référence, Désignation, Quantité
Ce qui signifie que je devrait réaliser une "jointure" entre le DataTable des articles et ceeux des Lignes de Commande.
Je travaille en MVC, avec une mécanique Observer/Observable entre la vue et le modèle, ce qui implique qu'à chaque modification d'une donnée sur la vue, il faut envoyer un signal au modèle qui devra recalculer la "jointure" citée ci-dessus et renvoyer les infos à la vue.
Une alternative à cela serait de recopier les attributs nécessaires dans la DataTable des lignes de commande depuis la DataTable des articles, mais la redondance d'infos que cela impliquerait me déplait.
Ce projet étant mon premier développement DotNet, je n'arrive pas réellement à me rendre compte de la lourdeur d'un tel choix de structure de données.
Ainsi, pensez vous que ce soit une bonne implémentation ? Si non, connaitriez vous des collections plus légères et aussi fonctionnelles ?
Merci pour vos réponses,
Kyrel