Announcement

Collapse
No announcement yet.

Programmeinstellungen speichern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programmeinstellungen speichern

    <pre>Moin,
    ich möchte die benutzerdefinierten Einstellungen von meinem Programm speichern!
    Das Problem ist...ich möchte die Regisrty nicht belasten.
    Ich dachte es gäbe eine INI-Klasse womit es sich so schön wie in Delphi arbeiten lässt, gibt es aber leider nicht, oder?
    Ich hab mir nun einen eigenen Namespace erstellt, den ich wie die INI in Delphi anspreche(funktioniert über XML) doch da komme ich nun nicht weiter...

    Eigentliche Frage: Gibt's eine einfache Art, das speichern und laden zu ermöglichen(Ohne Regitry)?

  • #2
    Hallo,

    Es gibt mehrere Möglichkeiten Benutzerdaten zu speichern. Die ältere Methode ist wie gesagt die Registry, wobei hier zwischen benutzerdefinierten Daten (CURRENT_USER) und systemweiten Daten (LOCAL_MACHINE) unterschieden wird. Die Regsitry sollte in .NET Programmen nicht mehr die erste Wahl sein.

    Besser hingegen ist das Speichern von Einstellungen in eigenen XML Dateien. Wenn es sich um benutzerdefinierte Daten handelt, dann im WindowsProfil (Dokumente und Einstellungen). Dort gibt es zwei Ordner: Anwendungsdaten (wird in einer Domäne in das Serverprofil geladen, gut für Roaming Benutzer) und Lokale Einstellungen/Awendungsdaten (die lokal bleiben). Die Pfade können unter den Eigenschaften Application.UserAppDataPath und Application.LocalUserAppDataPath ausgelesen werden.

    Maschinenweite Einstellungen sind besser im Programmverzeichnis oder gar in der <i>Anwendung</i>.exe.config aufgehoben.

    Ich hoffe einen kleinen Überblick über die verschiedenen Möglichkeiten gegeben zu haben. Theoretisch sind nämlich noch das Active Directory oder eine eigene Benutzerdatenbank zu nennen.

    Schönen Gruß

    Jör

    Comment


    • #3
      <pre>Moin nochmal,
      ich habs doch noch hinbekommen!
      Das handling erfolgt wie bei der Delphi-Klasse, genau wurde es noch nicht getestet!
      Die erste Version(DLL) ist unter </pre><a href="http://lovoves.dyndns.org/download/INIFiles.zip" target=_blank>http://lovoves.dyndns.org/download/INIFiles.zip</a><pre> verfügbar.
      Erweiterbar ist es alle Male aber für meinen Zweck reicht es!
      Danke an Jörg, so kann man besser verstehen wie es funktionieren soll!

      Grüße SebK</pre&gt

      Comment


      • #4
        Hallo nochmal,

        was genau funktioniert denn noch nicht? Der eigentliche XML Zugriff?

        Oder um Doc Brown zu zitieren: "Du musst vier-dimensional denken!" Eine INI Datei ist eine einfache flache Datei, die nicht sehr flexibel ist. Du kannst die Einstellungen zwar in Gruppen einteilen - das war es aber bereits.

        Eine XML Datei ist dagegen viel flexibler. Sie ist durch ihr offenes Format beliebig erweiterbar und kann sich sehr vielen Anforderungen anpassen.

        Der Versuch auf eine XML Datei wie eine INI Datei zuzugreifen, ist daher nicht klug.

        Beispiel eine web.config (vereinfacht):
        <pre>
        &lt;configuration&gt;
        &lt;system.web&gt;
        &lt;customErrors mode="Off" /&gt;
        &lt;/system.web&gt;
        &lt;jmwegener&gt;
        &lt;web.ui&gt;
        &lt;page&gt;
        &lt;titleFormat value="{0} [JMWegener]" /&gt;
        &lt;/page&gt;
        &lt;/web.ui&gt;
        &lt;/jmwegener&gt;
        &lt;/configuration&gt;
        </pre>
        <b>system.web</b> ist eine systeminterne Konfiguration, damit Fehlermeldungen angezeigt werden. Der übrige Teil ist selbst erstellt und muss dementsprechend auch selber ausgewertet werden.

        Wie du siehst kann man die Einstellungen entsprechend tiefer verschachteln. Das hat sehr viele Vorteile - wie gesagt, es ist sehr flexibel.

        Ein Beispiel, wie man die Konfiguration auslesen kannst, findest du unter:
        http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=559574

        Schönen Gruß und so

        Jör

        Comment


        • #5
          <pre>Tach Jörg,
          So wie ich es jetzt habe funktioniert es wunderbar!
          Die Datei ist XML-Format und ich spreche sie intern auch so an, doch die eigentliche
          Nutzung der Lib funktioniert ähnlich wie die der INI-Klasse von Delphi!
          Ich programmiere schon ein paar Jahre Delphi und die INI war mir bis jetzt immer eine
          schnelle und unkomplizierte Hilfe.
          Dieses schnelle und unkomplizierte wollte ich auch in C# haben und mit der DLL hab ich mir
          das ermöglicht!
          Es ist mir wohl bewusst das hinter XML mehr steckt als das, wozu ich es gerade benutze,
          doch ich finde mich grad erstmal in die ganze Umgebung ein.
          mfg Sebastian</pre&gt

          Comment

          Working...
          X