Ich habe eine Winform-Anwendung, die einige referenzierte Webdienste verwendet, um Daten zu erhalten. Die zurückgegebenen Daten sind ein Array von Objekten, die ich in einer Schleife durchlaufen und zu einem dataSet hinzufügen kann.
Wenn ich den Dienst anrufe, kann es oft 2 oder 3 Minuten dauern, bis alle Daten vorliegen.
Wenn der Benutzer das Programm verlässt und später zurückkommt, möchte ich nicht, dass er alle Daten erneut herunterladen muss.
Wenn ich die Anwendung im Debug-Modus ausführe, bleiben die heruntergeladenen Informationen nicht erhalten, was mich beunruhigt.
Ich befinde mich noch im "Entwicklungsmodus", habe also noch kein Installationsprogramm erstellt, um zu testen, ob die Informationen in der Anwendung bleiben.
Ich bin neugierig auf ein paar Dinge:
- Bleiben die im Dataset gespeicherten Daten erhalten, wenn der Benutzer die Seite verlässt?
- Wenn nicht, was würden Sie empfehlen, wie man dies erreichen kann?
-
Ich habe XML für die Speicherung in Betracht gezogen; ist das die beste Option, wenn Sie 9-10 MB Daten haben?
Edit: Endgültiges Ergebnis: OK - hier ist das Endergebnis (danke an alle für die schnelle Antwort)
Wenn die Anwendung beendet wird, rufe ich eine Funktion zum Speichern der Daten auf. Hier ist ein Ausschnitt:
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();
}
Die Parameter userList und actList sind Listenobjekte, die aus dem Aufruf der Webdienste stammen.
eine andere Sache, die ich implementiert habe (etwas abseits des Themas), ist die Erstellung einer Anwendungseinstellung, um zu speichern, wann der Benutzer zuletzt einen Download vom Webdienst durchgeführt hat. Es wird gespeichert als
Properties.Settings.Default.last_downloaded
Wenn der Nutzer auf die Schaltfläche "Herunterladen" klickt, wird er nach dem Datum des letzten Downloads gefragt und hat die Möglichkeit, "Nein" zu sagen.
Nochmals vielen Dank für Ihre Hilfe!