Laden...

Best Practise für Datenspeichern

Erstellt von Mavericklp vor einem Jahr Letzter Beitrag vor einem Jahr 671 Views
M
Mavericklp Themenstarter:in
2 Beiträge seit 2022
vor einem Jahr
Best Practise für Datenspeichern

Moin moin zusammen,
ich schreibe gerade ein Programm, das auf einem USB Stick laufen soll. Ich benötige aber zur Laufzeit einige Variablen, die ich gerne in einer ini Datei hätte. Es soll nichts auf dem Computer selber gespeichert werden.

Wie ist dafür die beste Vorgehensweise? Die Settingsdatei wird ja unter AppData gespeichert. Bei der Resourcen Datei sollen keine Daten während der Laufzeit geändert werden. Die AppData Datei scheint mir auch nicht so das richtige zu sein. Zumal der Name sich bei mir aus irgend einem Grund mit Projekt.dll.config zusammen setzt und nicht mit Projekt.exe.config. Und der User soll auch in dieser Datei Arbeiten können. Ich hätte dort auch gerne mehrere Gruppen die ini Datei besteht bei mir aus 6 Gruppen.

Und ich würde gerne das Programm Verzeichniss selber so klein wie möglich halten. Am liebsten wäre mir nur eine Datei, die dann beim ersten starte die ini oder welcher Datei auch immer erst erstellt.

16.806 Beiträge seit 2008
vor einem Jahr

die ich gerne in einer ini Datei hätte.

Ja, haben wir schon 1980?
Settings sollte man in XML oder Json abspeichern, nicht mehr in Ini-Dateien.
Allein aus Validierungs- und Strukturgründen

Die Settingsdatei wird ja unter AppData gespeichert.

Da kann sie liegen, muss aber nicht.

Wie ist dafür die beste Vorgehensweise?

"Die beste" gibts nicht. Es gibt immer mehrere Wege nach Rom.

Zumal der Name sich bei mir aus irgend einem Grund mit Projekt.dll.config zusammen setzt und nicht mit Projekt.exe.config.

Dann hast Du die Config auf Bibliotheks-Ebene (Projekt) und nicht Anwendungsebene erstellt.

Ich hätte dort auch gerne mehrere Gruppen die ini Datei besteht bei mir aus 6 Gruppen.

Die Standard .NET Settings sind sehr simpel, vor allem Key-Value basierend.
Die Standard-Settings sind nicht für ganze "Objekte" oder Listen" gedacht.
Möglichkeiten:

  • Du speicherst ein Objekt und serialisierst es als Json.
  • Du erstellst Custom Types in der Config.

Am liebsten wäre mir nur eine Datei, die dann beim ersten starte die ini oder welcher Datei auch immer erst erstellt.

Für mich hört sich das so an, dass Du das selbst umsetzen solltest: sprich ein eigener Settings Profiler.
Im Endeffekt wird das am Ende nichts anderes sein als ein einziges Objekt, das Du halt zB als XML serialisierst.
Damit hast Du selbst in der Hand:

  • Wie die Datei erzeugt wird
  • Wie die Datei aufgebaut ist
  • Wie und Wo die Datei abgelegt wird

Im Endeffekt brauchst nur eine Serialisierung und Deserialisierung
How to serialize and deserialize JSON using C# - .NET
und eine eigene Logik, wo die Datei liegt.
Fertig.

M
Mavericklp Themenstarter:in
2 Beiträge seit 2022
vor einem Jahr

Das ist der Grund warum ich nachgefragt habe. 😁

Dein letzter Punkt hört sich gut an. Ich glaube der wird es dann werden.
Vielen Vielen Dank für deine Antwort!

3.825 Beiträge seit 2006
vor einem Jahr

Ich benutze in einfachen Projekten auch immer eine Json-Datei für Settings.

Das hat viele Vorteile : Du musst dich nicht um Datentypen und -wandlung kümmern, man kann beliebig Einträge hinzufügen oder weglassen. Nur nachträglich keine Typen ändern.

Bei portablen Apps kann man die Json-Datei auch auf dem USB-Stick speichern.

Man kann auch einfach mehrere Settings anlegen und zwischen verschiedenen Settings umschalten.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3