2010-11-09 14 views
4

J'ai une application Silverlight qui a toujours besoin de savoir quel client (objet de domaine) est actuellement chargé. Il ne peut y en avoir qu'un chargé à la fois. Si le client est nul, aucun client n'est actuellement chargé. Ou vous avez quitté un client. Je vais avoir 3 autres propriétés de type état comme client. Donc ...Silverlight et l'état de l'application

Quelle est la meilleure façon de stocker l'état de l'application dans une application Silverlight?

1) ajouter des propriétés publiques à la classe App (App.xaml.cs)
2) avoir un objet d'état que vous pouvez créer en tant que singleton via votre conteneur IoC. ajouter des propriétés publiques à cet objet 3) d'autres idées?

Répondre

1

Mon vote serait pour votre deuxième option, pour avoir un objet d'état singleton. Si vous utilisez MVVM et Silverlight Toolkit, alors vous en aurez un intégré dans votre MainViewModel qui est statique et initialisé statiquement dans ViewModelLocator. Ce serait un endroit parfait pour accomplir le résultat souhaité.

1

J'irais pour la deuxième option.

Actuellement en train de travailler sur une application Silverlight qui stocke des données d'état d'objets de domaine.

Nous avons ce qu'on a appelé un gestionnaire d'application qui est résolu via IoC pour stocker des données de référence et des données de domaine. Il pourrait y avoir un meilleur terme que ApplicationManager, mais à ce jour n'ont pas trouvé une convention de nommage standard. Le concept fonctionne bien, tous nos View Models ont accès à ApplicationManager, donc tout ce que nous transmettons est un identifiant d'entité lorsqu'une autre partie de l'application doit agir.

Si vous avez des opérations de mise à jour ASYNCH les données que vous devez être conscient de garder le magasin de l'interface utilisateur et des données cohérentes

1

J'ai eu un problème similaire. Comme j'utilise MEF, j'ai créé un service qui contient les données. Vous pouvez importer le service là où vous en avez besoin et avoir accès aux objets référencés. (Donc, il est similaire à 2)

+0

Comment le service "détient les données"? Ou voulez-vous dire les services stocke et récupère les données? – BuddyJoe

+0

Vous pourriez faire les deux. Donc le service est responsable de l'obtention des données et il a une propriété où le client actuellement chargé est stocké (c'était ce que je voulais dire par "tenir les données") – TerenceJackson