Frage

Ich schreibe ein einfaches Programm, das vollständig kundenseitig ausgeführt wird. (Desktop -Programmierung? Tun die Leute das noch?) Und ich brauche eine einfache Möglichkeit, triviale Datenmengen in strukturierter Form zu speichern, sehen aber wirklich keine Notwendigkeit, ein Datenbanksystem zu verwenden. Darüber hinaus müssen einige der Daten serialisiert und an verschiedene Benutzer weitergegeben werden, z. B. eine Art "Datei" oder vielleicht ein "Dokument". (Hat das jemals jemand getan?)

Also habe ich mich mithilfe von .NET -Datensätzen, Linq, direkter XML -Manipulation angesehen und alle scheinen die Arbeit zu erledigen, aber ich würde gerne wissen, bevor ich in eine von ihnen eintauche, wenn es eine Methode gibt, die im Allgemeinen ist als einfacher angesehen als andere. Wie gesagt, die Datenmenge, die gespeichert werden soll, ist trivial, auch wenn hundert Menschen alle dieselbe Maschine verwenden, über die wir nicht mehr als 10 MB sprechen, ist die Leistung also nicht so groß wie die Codebarkeit/Wartbarkeit. Vielen Dank im Voraus!

War es hilfreich?

Lösung

Klingt nach Linq-to-XML ist eine gute Option dafür.

Link 1 Link 2

Unmengen von Informationen dazu.

Andere Tipps

Ohne etwas anderes über Ihre App zu wissen, wären die .NET -Datensätze wahrscheinlich Ihre einfachste Option, weil Writexml und Readxml existieren bereits.

Jede Serialisierungs -API sollte hier gut abschneiden. Ich würde etwas empfehlen, das vertragsbasiert ist (nicht BinaryFormatter, was typisch basiert), da dies im Laufe der Zeit verwendet werden kann (wenn sich Ihre Baugruppe ändert).

Ich würde also ein Basic -Objektmodell (DTO) erstellen und eines von: verwenden:

  • XmlSerializer
  • DataContractSerializer
  • Protobuf-Net (Sie alle wussten, dass es kommen würde ...)

Oo, einfach und einfach. Und einfach zu verwenden, um Fragmente der Daten zu übergeben (entweder zwischen Benutzern von einem zentralen Server).

Ich würde eine eingebettete Datenbank auswählen. So etwas wie SQLite zu verwenden, scheint für mich kein Overkill zu sein. Sie können sogar den C# -Port (# ausprobieren (http://code.google.com/p/csharp-sqlite/).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top