none
Aus der MSDN-Hotline: Serialisierung, Configuration und GUIDs RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

     

    heute wurde uns bei der MSDN Hotline unter anderem folgende Fragen gestellt:

    1. Zum Zwischenspeichern von Daten kann man entweder Serialisierung oder System.Configuration verwenden. Wo sind die Unterschiede zwischen den Beiden?

    2. Welches von beiden verwende ich wann? Außerdem gibt es noch das Speichern als XML-Datei. Was ist damit?

    3. Bei der Konfigurationsdatei gibt es zwei Möglichkeiten die Daten abzuspeichern: User und Application. Wo sind die Unterschiede zwischen "User" und "Application"?

    4. Auf dem Rechner werden die Konfigurationsdateien unter %AppData% abgespeichert. In den Unterordnern gibt es die Anwendungen, wo wiederrum in einem Unterordner sich die Konfigurationsdateien befinden. Nach dem Ordnernamen der Anwendung folgt ein Hash oder ähnliches (die Bindestrich-Zeichenketten mit 32 Buchstaben und Zahlen). Was ist das?

     

    Unsere Antwort darauf war:

    1. Die beiden Ansätze können zwar theoretisch das gleiche erreichen, sind aber grundverschieden. Die Configuration oder die "Settings" enthalten Einstellungen, wie sie z.B. vom Benutzer oder vom Betriebssystem her gefordert werden. Sie sollen Rahmenbedingungen festlegen, mit der dann das Programm abläuft. Dazu könnten etwa das Festlegen auf eine Datenbank-Technologie, ein Pfad zum Benutzerverzeichnis oder eine Internet-Adresse, die das Programm zum Laufen benötigt, hinterlegt werden.

    Die Serialisierung hat den Zweck, das komplette Programm oder Ausschnitte davon zu speichern, um es zu einem späteren Zeitpunkt wieder herstellen zu können. Das bedeutet, dass die einzelnen Objekte, und deren "Zustände" während dem aktuellen Augenblick "festgehalten" werden und dann auf die Festplatte geschrieben werden.

    Wenn man sich ein Programm wie eine laufende Stoppuhr vorstellt und sich selbst als Uhrmacher, dann ist Serialisierung der Vorgang, mit dem man die Stoppuhr anhält, eine exakte Kopie von ihr erzeugt und diese Kopie dann in eine Schublade legt. Was mit dem Original passiert ist danach eigentlich egal. Aber irgendwann kann der Uhrmacher die Kopie aus der Schublade nehmen und wieder weiterlaufen lassen. Genau so ist es, wenn ein Programmierer ein Programm serialisiert und danach wieder de-serialisiert.

     

    2. Die Methoden zur Serialisierung, bzw. die Configuration-Klassen wurden erarbeitet, um für den jeweiligen Zweck die passenden Strukturen zu liefern. Sie speichern beide ihre Daten in XML-Dateien. Aber manchmal lohnt es sich ja auch, die Dinge selbst zu schreiben. Etwa wenn man ein Savegame für sein Spiel anlegen möchte. Das würde zwar mit Serialisierung gehen, aber die Savegames wären dann möglicherweise sehr groß.

    Hier eine kleine Entscheidungstabelle:

    ~ Speichere ich kleine Informationen, die sich selten ändern? (z.B. Internet-Adressen, z.B. einmal beim Programmstart) => Configuration

    ~ Speichere ich das komplette Programm oder Teile davon? Muss ich komplette Objekte speichern? => Serialisierung mit dem Framework

    ~ Brauche ich so etwas wie Serialisierung, aber optimiert für meine Anwendung? => selbst schreiben

     

    3. Bei der "User"-Speicherung werden die Daten im Speicher des Benutzers abgelegt und sind für jeden Benutzer unterschiedlich. Bei der "Application"-Speicherung werden die Daten nur einmal auf diesem Computer gespeichert und sind für alle Benutzer identisch.

     

    4. Das sind GUIDs. Die identifizieren ein beliebiges Objekt weltweit eindeutig. Auch Programmeinstellungen.

     

    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

     

    Grüße,

    Jonathan Best

    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline 
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen sowie die allgemein gültigen Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.

    • Bearbeitet Jonny Best Montag, 9. November 2009 16:58 Deutsche Grammatik
    • Verschoben Robert BreitenhoferModerator Freitag, 25. Juni 2010 15:32 .NET Framework (aus:Aus der MSDN Hotline: Häufig gestellte Fragen und deren Antworten)
    Montag, 9. November 2009 16:32