Question

J'ai créé une application à l'aide du WPF de Microsoft. Il gère principalement la lecture des données et les entrées ainsi que l'association de relations entre les données dans des paramètres spécifiques.

En tant que débutant total, j'ai pris une mauvaise décision de conception (pas autant de décisions que d'utiliser la première chose que j'ai travaillé), mais maintenant mieux WPF, je reçois l'envie de refacter mon code avec de meilleurs principes de conception.

J'ai eu plusieurs problèmes mais je suppose que chacun mérite sa propre question pour plus de clarté. Ici, je demande des moyens appropriés de gérer les données elle-même. Dans l'original, j'ai enveloppé chaque ligne dans un objet lorsqu'il est récupéré à partir de la base de données (en utilisant LINQ à SQL) un peu comme un enregistrement actif n'est tout simplement pas actif ou de persistance (chaque instance d'application avait sa propre partie de gestion de données).

L'application a des sous-unités qui gèrent différents aspects. Cependant, comme il a été configuré, il a tout chargé au début. Cela crée plusieurs problèmes, par exemple, il ne serait souvent pas nécessaire de charger une pièce à moins que nous allions spécifiquement fonctionner avec cette partie, donc je ne serais pas une forme de chargement paresseux. Il y avait également un problème avec la persistance intérieure car vous pourriez créer un nouvel objet / ligne dans un aspect et peut-être définir la relation entre celui-ci et un objet différent, mais le nouvel objet n'apparaîtrait pas avant le redémarrage du programme.

La persistance entre les instances de l'application ne sera pas un problème énorme en raison de la petite quantité de personnes utilisant le programme.

Bien que je puisse résoudre ce problème maintenant en utilisant des astuces sales, je préfère refacter le programme et le faire avec élégance, maintenant la question est de savoir comment. Je sais qu'il y a plusieurs façons et quelques-unes me viennent à l'esprit:

1) Chaque aspect du programme est sa propre UserControl qui se recharge / instance de l'occasion à chaque fois que vous y avancez. Cela vous garantit que vous ne chargez que les données dont vous avez besoin et que vous obtenez une certaine persistance. Le serveur DB situé sur le même LAN et les tables est petit, ce qui ne devrait pas être un gros problème. Un inconvénient mineur est que vous devez vous souvenir de l'état de chaque aspect afin que vous ne commenceriez pas toujours à Beginners Square.

2) Avoir un objet de type ViewModel au niveau de base de l'application avec un chargement paresseux et une sorte de délai d'attente. Je proposerais ensuite cet objet dans l'arborescence visuelle pour m'assurer que chaque aspect obtient ses données de la même instance

3) Couche de données d'enregistrement semi-active avec des méthodes de charge statique.

4) Une autre idée

Quel est le moyen le plus pratique de WPF, que suppose MVVM?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top