Laden...

Daten dauerhaft speichern, allerdings ohne Datenbank

Erstellt von BlackSimon vor 5 Jahren Letzter Beitrag vor 5 Jahren 3.897 Views
BlackSimon Themenstarter:in
42 Beiträge seit 2018
vor 5 Jahren
Daten dauerhaft speichern, allerdings ohne Datenbank

Hallo Leute,

gibt es softwaretechnisch gesehen irgendeine Möglichkeit Daten in einer Anwendung dauerhaft zu speichern, ohne eine Datenbank einsetzen zu müssen.

Ein Dictionary würde sich hervorragend eignen, es ist ja eine Art Tabelle mit Key, Value.

Nur wenn ich da Daten eingebe, z.B. über eine Textbox und der add-Methode, sind die Daten beim nächsten Programstart natürlich wieder alle weg.

Ich hab das einmal bei einem Programmierer gesehen, ich kann mich aber nicht mehr daran erinnern wie das umgesetzt wurde. Evtl. standen die Daten aber auch hardcodiert schon im Quelltext.

4.938 Beiträge seit 2008
vor 5 Jahren

Klar kannst du Daten auch in Dateien speichern, z.B. mittels XML-Serialiserung, s. z.B. Serialisierung mit »XmlSerializer«.
Nachteil gegenüber einer DB ist jedoch, daß dann immer alle Daten gespeichert werden müssen (also die Datei komplett überschrieben wird).
Je nach Umfang der Daten würde sich jedoch auch eine "embedded database" wie z.B. SQLite anbieten.

1.029 Beiträge seit 2010
vor 5 Jahren

Hi,

naja - prinzipiell kann man dafür eine Datei einsetzen - und dafür gibt es bereits unzählige Möglichkeiten. Binär in einem eigenen Format mit eventuellen Hilfsmitteln, verschiedene Formate von Textdateien (plain, xml, json,...)

Die wohl einfachste Möglichkeit dafür wäre Serialization:
(Damit kann man letztendlich Objekte eines Typs speichern und laden)
https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/concepts/serialization/

Das widerum lässt sich auch wieder sehr einfach binär oder im Textformat (dann meist xml oder json) regeln. "Modern" ist dabei eher json, also kannst du dir z.B. JSON.NET mal anschauen: https://www.newtonsoft.com/json/help/html/SerializingJSON.htm

LG

BlackSimon Themenstarter:in
42 Beiträge seit 2018
vor 5 Jahren

SQLite ist der Liebling der Programmierer.

Daten in Textdateien zu speichern ist irgendwie unschön.

XML ist eine feine Sache und würde mich interessieren.

T
2.222 Beiträge seit 2008
vor 5 Jahren

Je nachdem welche Daten du hast, kannst du unterschiedliche Alternativen nehmen.
SQLite wäre hier eine Möglichkeit, wenn es den komplexe bzw. viele Daten.
Eine Dictionary könnte man auch billig als CSV Datei speichern und lesen.
XML würde ich nur nehmen, wenn die Datenmenge klein ist da XML beim Parsen von großen Dateien dann ordentlich Resourcen brauht.
Sinnvoller wäre dann die Objekte als json zu speichern/laden.
Hängt aber immer vom Anwendungsfall ab da man utnerschiedliche Lösungen je nach Problem haben kann.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

5.658 Beiträge seit 2006
vor 5 Jahren

Und dann gibt es noch das [Tutorial] Konfigurationsmodell im .NET Framework, besonders für Anwendungs-Einstellungen o.ä.

Weeks of programming can save you hours of planning

C
2.121 Beiträge seit 2010
vor 5 Jahren

SQLite ist der Liebling der Programmierer.

Wenn es sich anbietet. Für gewisse Dinge ist es unnötig komplex. Man kann nicht "mal eben" was dran editieren, und wenn dann nur zeilenweise.

Daten in Textdateien zu speichern ist irgendwie unschön.
XML ist eine feine Sache und würde mich interessieren.

Du weißt schon dass XML auch "nur" Text ist?

1.029 Beiträge seit 2010
vor 5 Jahren

SQLite ist der Liebling der Programmierer.

Daten in Textdateien zu speichern ist irgendwie unschön.

XML ist eine feine Sache und würde mich interessieren.

Wie bereits erwähnt wurde - XML ist auch nur ein nackiges TextFile (zugegeben - um Welten besser als PlainText) SQLite ist eine Datenbank - da kommt es halt arg darauf an, was das für Daten sind und was du damit vorhast.

Aber - auch für XML gibt es die Serialisierung. Beispiele findest du z.B. auf der MSDN:
https://msdn.microsoft.com/de-de/library/58a18dwa(v=vs.120).aspx

LG