J'ai une application winform qui utilise certains services Web référencés pour obtenir des données. Les données renvoyées sont un tableau d'objets que je boucle en boucle et que j'ajoute à un ensemble de données. Lorsque j'appelle le service, il faut souvent 2 ou 3 minutes pour obtenir toutes les données.Comment conserver les ensembles de données remplis dynamiquement pour rester avec le programme?
Si l'utilisateur quitte le programme et revient plus tard, je ne veux pas qu'ils aient à télécharger de nouveau toutes les données. Lorsque j'exécute l'application en mode débogage, il n'y a pas de persistance des informations téléchargées. ce qui m'inquiète.
Je suis toujours en "mode développement", donc je n'ai pas encore vraiment mis en place un installateur pour tester si l'information reste avec l'application.
Je suis curieux de savoir deux choses:
- Est-ce que les données stockées dans l'ensemble de données restent après la sortie de l'utilisateur?
- Sinon, que recommanderiez-vous sur la façon d'accomplir cela?
- J'ai considéré XML pour le stockage; est-ce la meilleure option quand vous avez 9-10 Mo de données?
Edit: Résultat final: OK - voici le résultat final (merci à tous pour votre réponse rapide)
Lorsque la sortie de l'application, j'appeler une fonction pour enregistrer les données. Voici un extrait:
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
FileStream fs;
IFormatter formatter = new BinaryFormatter();
//activities
if (actList.Length > 0)
{
fs = new FileStream("activities.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(fs, actList);
fs.Close();
}
//users
if (userList.Length > 0)
{
fs = new FileStream("users.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(fs, userList);
fs.Close();
}
Les paramètres userList et actList sont des objets List issus de l'appel de services Web.
Une autre chose que j'ai implémentée (légèrement hors sujet) est de créer un paramètre d'application à sauvegarder lorsque l'utilisateur a fait un téléchargement depuis le service web. Il est enregistré comme
Properties.Settings.Default.last_downloaded
Si l'utilisateur clique sur le bouton de téléchargement, ils sont invités à la date de leur dernière effectuées le téléchargement et sont donnés une chance de dire « non ».
Merci encore pour votre aide!
Si vous êtes basé sur un service Web, pensez à ClickOnce au lieu d'un programme d'installation standard, ce qui est beaucoup plus simple à déployer. –
Je ne pense pas pouvoir utiliser ClickOnce et conserver les données en même temps, n'est-ce pas? Je pensais que avec ClickOnce, je ne peux pas "laisser derrière" des données: http://msdn.microsoft.com/en-us/library/ms973805.aspx – JayTee
Nevermind ... répondu à ma propre question :) – JayTee