Wie Daten am besten speichern?

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Wie Daten am besten speichern?

    Hallo zusammen,

    im Rahmen eines Mittelstufenprojekts bastle ich zur Zeit an einer kleinen Anwendung. Diese soll Daten in einer Datenbank speichern, damit ich diese je nach Bedarf auswerten kann. Soweit so gut.

    Nun möchte ich aber wenn möglich vermeiden, dass auf dem Zielrechner noch zusätzlich ein Datenbank-Server installiert werden muss, da es für dieses kleine Tool wirklich Overkill wäre. Gibt es eine Möglichkeit eine Datenbank ohne speziellen Server zu erstellen und davon Daten abzufragen?

    Über das Internet bin ich auf SQL-LocalDb gestoßen, doch laut Visual Studio müsste dies auch installiert werden, wenn ich den Text so richtig verstehe.
    Hat da vielleicht Jemand eine Idee, oder einen Denkanstoß für mich?

    Viele Grüße
    Marvin
    Bilder
    • localdb.jpg

      33,6 kB, 399×224, 147 mal angesehen
    Muß es denn unbedingt eine Datenbank sein, oder würde es auch ein DataSet tun ?

    Übrigens, wenn man etwas (selbständig) recherchiert, findet man auch non-server lösungen. ;)
    Hi.

    Es gibt auch noch die Möglichkeit ohne Datenbanken zu arbeiten, und zwar mittels XML-Dateien oder JSON-Dateien.

    Diese sind in den meisten Systemen wie Webbasiert, Linux, .NET-Framework, etc. irgendwie vorhanden oder leicht nachrüstbar.
    Zudem sind etliche Tutorials und Videos im Interweb zu finden.

    Wenn das Projekt in VB/C# bzw. .NET-Framework/.NET-Core, sind für XML keine weiteren "Tools" notwendig, ist eingebaut.

    Wenn JSON als Format genutzt werden soll, kann mittels NuGet das "Newtonsoft.Json", als gut dokumentierte Hilfsmittel herangezogen werden.

    Im Falle eines Schulprojekts, kann es nicht schaden einmal die "Serialisierung von Objekten" als Thema zu behandeln.

    Natürlich ist der Aufwand beim Verwalten der einzelnen Dateien zu beachten.
    Wenn nicht gerade eine Warenlager/Webshop-Anwendung programmiert werden muss,
    dann kann die Serialisierung eine gute Lösung darstellen.

    Ich bin altbacken und stecke bei den XML-Dateien fest, die kleben aber auch... ;)

    c.u. Joshi aus HH

    MarvinKleinMusic schrieb:

    im Rahmen eines Mittelstufenprojekts bastle ich zur Zeit an einer kleinen Anwendung. Diese soll Daten in einer Datenbank speichern [...]
    Na wenn "Datenbank" zu den Anforderungen des Projekts zählt, dann gibts zu "Datenbank" wohl keine Alternative.


    MarvinKleinMusic schrieb:

    [...] da es für dieses kleine Tool wirklich Overkill wäre.
    Natürlich wäre das Overkill.
    Für ein kleines Tool braucht man keine Datenbank, weder SqlLite, SqlServerCompact, LocalDb oder sonstwas.
    Nicht mal die Newtonsoft-Json-Packages muss man installieren - Serialisieren geht genausogut auch mit dem Framework-OnBord-XmlSerializer.
    Serialisierung ist aber vom Datenmodell her längst nicht so mächtig wie eine Datenbank.
    Was hingegen ebenso Datenmodell-mächtig ist, ist ein typisiertes Dataset.
    Ein solches ist tatsächlich eine dateibasierte Datenbank (was serialisierte Objekte nicht sein können).

    Aber wie eingangs gesagt:
    • Die erste Frage ist, was deine Projekt-Vorgaben vorschreiben.
      Weil wenn "Datenbank!", dann Datenbank
    • Die zweite Frage ist, was dein Tool tut.
      Dann kann entschieden werden, ob nur typDataset in Frage kommt, oder ob man auch mit Serialisierung was wursteln kann.
    Hallo nochmal,

    vielen Dank für die zahlreichen Antworten.

    Das Projekt soll mithilfe von WMI die Zeiten eines gestarteten Prozesses auswerten.

    Sprich: ich starte calc.exe, dann erfasst das Tool, wie lange ich calc.exe bereits geöffnet hatte.

    zusätzlich dazu kann man in der Software Profile anlegen und diesen unterschiedliche Prozesse hinzufügen, sodass z.B. Ein Profil sämtliche Bürosoftware überwachen kann und ein anderes die Spieleaktivität.

    ich wollte hier gerne mit einer Datenbank arbeiten, da ich gerne auf die Funktionalitätvon Fremd und Primärschlüsseln anwenden möchte.

    Ich hänge mal ein datenbankentwurf von mir an.
    LG
    Bilder
    • B6B036D4-E080-4476-9339-B93FD296AC81.jpeg

      210,56 kB, 1.600×900, 164 mal angesehen

    MarvinKleinMusic schrieb:

    da ich gerne auf die Funktionalitätvon Fremd und Primärschlüsseln anwenden möchte.
    da wäre ein typisiertes Dataset ideal.

    ErfinderDesRades schrieb:

    Ein solches ist tatsächlich eine dateibasierte Datenbank (was serialisierte Objekte nicht sein können).

    gugge vier Views-Videos
    Alles beginnt immer mit dem Datenmodell-Entwurf im typisierten Dataset. Und dabei gehts vor allem um das richtige Einrichten von Relationen, also genau die Geschichte mit Prim- und Foreign-Key.
    Das typDataset brauchste sowieso, weil wenn du mit Datenbank arbeitest, holst du die Daten und füllst sie eben in ein typDataset.
    Nur dass das Synchron halten von Datenbank und typDataset vielfach komplizierter ist als es einfach von Platte zu laden.