kostenloser Webspace werbefrei: lima-city


Settings nicht in Registry speichern?

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    Hallo,

    ich habe gerade in mehreren Threads gelesen, dass man Settings (und generell Daten) nicht in die Registry speichern soll, da dies zu (Berechtigungs-)Problemen führen kann.

    Also ich kenne die Registry als DEN Ort, an dem Einstellungen gespeichert werden, also weiß ich gerade nicht wirklich was ich davon halten soll. Anwendungen aller Arten speichern ihre EInstellungen in der Registry, also warum sollte das zu Problemen führen?
    Mir ist klar, dass man natürlich aufpassen muss, welche Bereiche der Registry man verwendet, da zu gewissen bereichen nur Administratoren Zugriff haben. Aber es sollte doch wirklich kein Problem entstehen, wenn man seine Settings in HKCU speichert.

    Abgesehen von mehreren Threads konnte ich leider keine Informationen zu diesem Thema finden.. Also wie seht ihr das?

    Danke im Voraus!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. In HKCU sollten keine Problem mit Zugriffsrechten sein

    Aber am besten machst du das in einer Datei in ApplicationData/DeinProgramn.
    "C:/Users/Lukas/AppData/Roaming/DeinProgramm"

    An den Pfad von AppData/Roaming kommst du mit:
    Enviroment.GetFolderPath(Enviroment.SpecialFolder.ApplicationData)
  4. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    lb06 schrieb:
    In HKCU sollten keine Problem mit Zugriffsrechten sein

    Aber am besten machst du das in einer Datei in ApplicationData/DeinProgramn.
    "C:/Users/Lukas/AppData/Roaming/DeinProgramm"

    An den Pfad von AppData/Roaming kommst du mit:
    Enviroment.GetFolderPath(Enviroment.SpecialFolder.ApplicationData)


    Danke für deine Antwort!

    Wenn ich die Settings in der Registry speichere (was meines Wissens nach zumindest bei UI-bezogenen Settings der normale Weg ist) muss ich sie nicht in den AppData Ordner speichern.

    Ich bin mir über die gegebenen Möglichkeiten wohl im Klaren, aber würde trotzdem gerne wissen, warum es in gewissen Threads (nahezu allen, die sich mit diesem Thema beschäftigen) als - ich zitiere - ein "no go" bezeichnet wird, überhaupt etwas in der Registry zu speichern.

    Über vom Programm geforderte Berechtigungen muss man sich sowieso im Klaren sein, bevor man es entwickelt. Und wenn mein Programm nun z.B. von vorne herein Administratorrechte benötigt, gibt es da ja überhaupt keine Probleme.

    Also nochmal meine Frage: Wieso gilt es scheinbar als verwerflich die Registry zu verwenden?
  5. Da man in der Registry viel zerstören kann, ist es nicht gern gesehen, was in der Registry herumzufummeln.
    Ich würde deshalb die AppData-Variante benutzen, oder den Benutzer darauf hinweisen, welche Registry-Schlüssel erstellt werden, welche Werte erstellt/verändert/gelöscht werden.

    Beitrag zuletzt geändert: 6.9.2013 19:12:56 von lb06
  6. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    lb06 schrieb:
    Da man in der Registry viel zerstören kann, ist es nicht gern gesehen, was in der Registry herumzufummeln.
    Ich würde deshalb die AppData-Variante benutzen, oder den Benutzer darauf hinweisen, welche Registry-Schlüssel erstellt werden, welche Werte erstellt/verändert/gelöscht werden.


    Was soll ein Standard-User bitte mit diesen Informationen anfangen? Und wofür ist die Registry sonst gut? Alle größeren Programme speichern Einstellungen in der Registry, was unter anderem den Vorteil hat, dass der User eher nicht aus Versehen oder was auch immer darin herumpfuscht und eventuell Einträge löscht.

    Hast du schon ein einziges Programm gesehen, das dir mitteilt ob, was oder wo es in die Registry schreibt?

    In gewissen Situationen ist es sicher besser bzw. sogar erforderlich Daten im AppData Ordner zu speichern (z.B. bei größeren Datenmengen oder Informationen auf die man oft zugreifen muss). Aber ich verstehe diese generelle Abneigung gegen das Speichern von Einstellungen in der Registry nicht.

    Zum Thema "man kann viel zerstören": Ja, das ist so. Deswegen ist es auch nicht ratsam ohne Hintergrundwissen ran zu gehen. Aber meine ehrliche Meinung: Ohne Hintergrundwissen sollte man generell keine Software entwickeln bzw. diese veröffentlichen. In diesem Bereich kann man, wenn man sich nicht auskennt, immer viel zerstören (klar, mit managed Code ist das schwieriger, aber nicht ausgeschlossen).

    Edit:
    Wenn ich bedenke, dass man in C bzw. C++ mit 2 Zeilen Code einen Rechner lahmlegen kann..

    Edit2:
    Nebenbei sei die Meinung (bzw. Absicht) von Microsoft selbst dazu erwähnt..
    http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx

    Beitrag zuletzt geändert: 7.9.2013 1:17:58 von yorecords
  7. Hallo :wave:

    Wichtige Einstellungen, wie Serials z.B., würde ich nicht unter dem current user speichern, da sonst nur er darauf zugriff hat. Andernfalls kann es aber natürlich zu Berechtigungsproblemen kommen.

    Wenn man dagegen gar nichts in der Registry speichert, können Programme auch einfach auf den USB-Stick kopieren und mitnehmen...

    mfg :wave:
  8. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    voloya schrieb:
    Hallo :wave:

    Wichtige Einstellungen, wie Serials z.B., würde ich nicht unter dem current user speichern, da sonst nur er darauf zugriff hat. Andernfalls kann es aber natürlich zu Berechtigungsproblemen kommen.

    Wenn man dagegen gar nichts in der Registry speichert, können Programme auch einfach auf den USB-Stick kopieren und mitnehmen...

    mfg :wave:


    Danke für deine Antwort!

    So ist es. Klar, wenn ein Programm nur für die Verwendung in einem User Account gedacht ist, passt HKCU auf jeden Fall. Und im Prinzip könnte man auch den Registrierungsschlüssel auf einen USB-Stick exportieren (eine Idee, auf die der Standard-User im Normalfall nicht kommt). Deswegen sollten zusätzlich noch gewisse PC-Details validiert werden. Aber das ist ein anderes Thema.

    Wie gesagt: Das mit den Berechtigungen muss man sich siwieso vorher überlegen.

    Also meine Schlussfolgerung aus den bis jetzt erhaltenen Antworten: Es gibt keinen logischen und zutreffenden Hintergrund hinter all den Aussagen vonwegen "Speichern in der Registry == No Go".
  9. m**********n

    Wie der Vorposter schon geschrieben: gloabale Anwendungsspezifische Informationen können in der Registry abgelegt werden.

    ABER: Tu der Welt einen Gefallen und liefere einen Uninstaller mit, der angelegte Einträge von dem PC wieder löscht. Imo gibt es nichts schlimmeres, als eine Registry voll mit Müll. Ich weiß nicht, wie sehr sich das auf die Performance auswirkt, an manchen Stellen heißt es, der PC wird langsamer, an manchen, es ist egal. (Anzumerken ist, dass ein Apache Solr auch nur geringfügig langsamer wird, wenn viele Daten darin sind) Dennoch gehört eine vernünftige Aufräumprozedur dazu.

    Wenn du also Ordnung behälst und nicht ALLES da drin ablegst, sehe ich kein Problem darin. Machen andere aktuelle Programme doch auch.
  10. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    mator-kaleen schrieb:
    Wie der Vorposter schon geschrieben: gloabale Anwendungsspezifische Informationen können in der Registry abgelegt werden.

    ABER: Tu der Welt einen Gefallen und liefere einen Uninstaller mit, der angelegte Einträge von dem PC wieder löscht. Imo gibt es nichts schlimmeres, als eine Registry voll mit Müll. Ich weiß nicht, wie sehr sich das auf die Performance auswirkt, an manchen Stellen heißt es, der PC wird langsamer, an manchen, es ist egal. (Anzumerken ist, dass ein Apache Solr auch nur geringfügig langsamer wird, wenn viele Daten darin sind) Dennoch gehört eine vernünftige Aufräumprozedur dazu.

    Wenn du also Ordnung behälst und nicht ALLES da drin ablegst, sehe ich kein Problem darin. Machen andere aktuelle Programme doch auch.


    Danke für deine Antwort! Genau so sehe ich das auch.

    Soviel ich weiß ist an dem Mythos, dass Registry Einträge den PC verlangsamen nicht wirklich was dran. Zumindest nicht mehr als anderer Datenmüll auf der Festplatte.
    Eine der grundlegenden Pflichten eines jeden Programms ist es, nach der Deinstallation alles wieder wie vorgefunden zu hinterlassen.
  11. sebastian-online

    sebastian-online hat kostenlosen Webspace.

    Hallo,

    der Grund dafür, dass es ein No-Go ist, ist, dass es unglaublich schwierig ist, so eine Software ohne Deinstaller zu deinstallieren. Man findet meistens nur einen Teil. Möchte man die Software auf einem Emulator laufen lassen auf einem anderen Betriebssystem, dann kann so etwas auch einem stundenlang e Arbeit verursachen. Da ist es unter Linux einfacher mit Konfigurationsdsteien. Einfach den Ordner kopieren fertig.
    Grüße
    Sebastian
  12. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    sebastian-online schrieb:
    Hallo,

    der Grund dafür, dass es ein No-Go ist, ist, dass es unglaublich schwierig ist, so eine Software ohne Deinstaller zu deinstallieren. Man findet meistens nur einen Teil. Möchte man die Software auf einem Emulator laufen lassen auf einem anderen Betriebssystem, dann kann so etwas auch einem stundenlang e Arbeit verursachen. Da ist es unter Linux einfacher mit Konfigurationsdsteien. Einfach den Ordner kopieren fertig.
    Grüße
    Sebastian


    Hallo,

    Auch diesen Gedanken kann ich leider nicht wirklich nachvollziehen. Schließlich gibt es deinstaller um Programme zu deinstallieren. Und ob man jetzt die dazugehörigen Keys in der Registry oder Dateien im AppData Ordner suchen muss, wenn man es manuell machen will/muss, ist aus meiner Sicht kein Unterschied.

    Mit dem zweiten Punkt hast du schon Recht, nur kann auf solche Sachen bei der Entwicklung generell keine Rücksicht genommen werden. Man entwickelt eine Software für ein bestimmtes Betriebssystem (eine bestimmte Umgebung). Wenn die jemand in einer nicht unterstützten Umgebung zum Laufen bringen will, muss er davon ausgehen, dass das Arbeit bedeutet bzw. vielleicht auch überhaupt nicht funktioniert.
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!