Configuration Lib 1.0

    • Beta

    Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von zn-gong.

      Configuration Lib 1.0

      Name des Programms:
      Configuration Lib 1.0 (Derzeitiger Name, eventuell später anders, ist ja Beta)

      Beschreibung:
      Diese Bibliothek beinhaltet einige Funktionen zum Lesen/Schreiben von .cfg (Konfigurations-) - Dateien.
      Ich denke für Anfänger ist das eine prima Möglichkeit, um gewisse Daten während der Laufzeit des Programms "easy" abzuspeichern/lesen.
      Das Projekt ist nichts besonderes, man könnte es auch selber schreiben, aber wie gesagt, es ist so etwas einfacher.

      Screenshot(s):
      Klassendiagramm:


      Wie funktioniert das ganze?
      Es ist, wie weiter oben beschrieben sehr einfach.
      Spoiler anzeigen

      Um das ganze zu verstehen, mache ich ein kleines Tutorial dazu.
      Zuerst einmal macht ihr das ganz am Anfang eures Projekts.

      VB.NET-Quellcode

      1. Imports CFG_Lib_1.0

      Danach könnt ihr über eure Methoden ein Objekt instanzieren.
      z.B. so:

      VB.NET-Quellcode

      1. Private CFGManager As New ConfigurationManager("PFAD ZUR .CFG DATEI") 'z.B. C:\Users\*BENUTZERNAME*\Desktop\config.cfg


      Jetzt habt ihr das Objekt CFGManager und könnt es in der kompletten Klasse einfach benutzen.

      Eigentlich sollten alle Methoden klar sein bis auf eventuell die Methode KeyExists().
      Diese prüft einfach ob der Key vorhanden ist oder nicht(Optional ob Key vorhanden ist der noch einen gewissen Wert hat).
      AddValue und EditValue in Kombination ist auch etwas tricky.

      Wenn wir z.B. in unserer Config-Datei speichern möchten, ob unsere Form von Anfang an die Eigenschaft TopMost = True hat, könnten wir zwar AddValue nehmen, allerdings funktioniert das nur einmal und wenn ihr nochmal AddValue auf den selben Key anwendet bekommt ihr als Wert false zurück weil der Key schon existiert. Deswegen gibt es die methode keyexists ob zu überprüfen ob ich AddValue machen soll oder EditValue.

      Hoffe das hat ungefähr jeder verstanden, wenn nicht, einfach eure Frage posten ;)


      Verwendete Programmiersprache und IDE:
      Visual Basic .NET (IDE: VS 2012 Ultimate)

      Systemanforderungen:
      .NET Framework 2.0
      Getestet unter Windows 7 Ultimate - 64 Bit

      Kritik/Anregungen
      Kritik und Anregungen sind wie bei mir eigentlich immer, gerne erwünscht.
      Ich freue mich über Verbesserungsvorschläge. :thumbsup:

      Download:
      Library + Demo Projekt von meinem Webspace.

      Lizenz/Weitergabe:
      Freeware, Einkompilieren nicht erlaubt. Bei größeren Projekten bitte ich auf meine Homepage(geartech.de) zu verweisen. 8o

      Also viel Spass mit der Lib und hoffe ihr könnt damit was anfangen.
      :D

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Killerjo96“ ()

      was kann diese dll, was man mit den normalen Settings nicht viel einfacher bewirken könnte?

      TopmostConfig00.zip <- Zusammengeklickst nach der Vorgehensweise von Settings richtig verwenden + binden

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

      Heißt ne simple ini lib. Oder täusch ich mich da?
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      naja - grad Anfängern würde ich nicht empfehlen, ihre Konfiguration an einem anneren Ort zu speichern, als vom Framework dafür vorgesehen.
      Aber seisdrum - annerer Nachteil eines selbstgebastelten Konfigurations-Formates ist die fehlende Typsicherheit. Deine Settings scheinen nur den Typ String zu kennen, kein Boolean, DateTime, StringCollection, Integer, Double...
      Sicher kann man alle Datentypen irgendwie nach String konvertieren und zurück, aber mit KonvertierungsCode schreiben fällt man noch leichter auf die Nase als mit dem Festlegen eines zulässigen SpeicherOrtes - wenn das Progg auch auf anneren Rechnern als dem Entwicklungs-Rechner laufen soll.
      Zuerst einmal will ich nochmal klar darauf hin deuten, dass es die erste Version ist.

      Das mit dem einzigen Format(String) ist mir natürlich bewusst. Für die erste Version allerdings die beste Lösung.
      Das mit den verschiedenen Formaten steht auch auf meiner ToDo Liste für die Lib.

      Zur My.Settings - Variante. Natürlich bietet sie von den Funktionen aktuell viel mehr, aber ich finde es durchaus nicht in Ordnung, das selbst Anfänger nicht wissen wo ihre Daten gespeichert sind. Und damit meine ich, dass sie diese Konfigurationsdatei ja benutzen, sonst würden sie die Lib ja nicht benutzen ... Logisch oder?

      Ich finde das also Schwachsinn mit dem Speicherort, dass es umbedingt AppData sein muss.
      Bei der My.Settings Variante wird außerdem immer eine neue Settings Datei erstellt, wenn die Datei/Assembly - Version geändert wurde. Also sind die vorher gespeicherten Daten, FUTSCH! :thumbdown:

      Ich sagte ja auch, das es etwas ganz simples ist. Und jetzt kann ich noch dazu sagen, es ist eine, imo, bessere Alternative, Werte zu speichern und einzulesen. Wer anderer Meinung ist, bitte, ist ja gar kein Problem.
      Hallo,

      Leute, beruhigt euch mal. Seine meinung zu sagen ist nicht gleich "Klugscheißen"!

      Eine eigenschaft ist nicht wircklich Optimal genutzt um ein Statischen Text wiederzugeben. Da kann man ja eine Konstante nehmen (finde ich^^).

      Zu deiner Lib:

      Wen man umbedingt seine Daten an einen "anderen ort" speichern will?? Warum macht man das nicht mit einer XML, und die System.IO Namespace bietet ja mit den StreamReader und den StreamWriter ja so viele wunderbare Funktionen Daten "wo anders" zu speichern.

      Und mit etwas Fantasie und logischen Denken kann man ja auch noch ein an seine eigenen Bedürftnisse angepasstes Speicherformat verwenden.

      Ich zumbeispiel speichere alles in einer Klasse ab, diese wird Anschlißend Serialisiert. Will ich die Daten wiederhaben Deserialisiere ich sie und habe sie wieder in mein Proggi.

      Konta Argument Jedder kann die Datei Lesen: Nein! Nicht wen man den BinaryFormater benutzt. Ok, mann kann die Datei via ReverseEngenering hacken aber wichtige Daten gehören eh verschlüßelt. Also selbst wen. Was ist so schlimdaran das jemand sehen kann ob Forecolor auf Red oder Blue gestellt ist (wen ihr versteht was ich meine^^).

      Meine Meinung: Ich finde es wircklich sehr Toll das du eine Lib für sowas schreibst. Einige Anfänger dürften sich sicherlich drüber Freuen. Aber ich finde es nicht so toll wie du es umgesetzt hast. Typsicher (wie hier schon erwähnt) sieht anders aus. Und "Bei Größeren Projecten ein Verweiß auf deine HP). Das klingt nach Werbe Aktion. (Sry, eigendlich kann ich es nachvolzihen; Aber deine Lib ist nicht wircklich für Größere Projecte zu gebrauchen).

      Aber Trotzdem. Nicht entmutigen lassen sondern einfach mal die Vorschläge durchlesen, ne nacht drüber Schlafen und nachdenken was man so alles Verbessern kann. Und dann weiter Programmieren. Ich werde auf jedenfall mal die Version 2 deine Beta anschauen.

      LG, Herbrich