Wozu gibt es die Windows-Registry?



  • Ich hab bis jetzt ein paar kleinere Programme für Windows geschrieben und meine Konfigurationen immer direkt als Config-Datei (xml/ini) lokal abgelegt.

    Wie ich gehört habe, kann man auch Informationen in der Windows-Registry ablegen. Mir erschließt sich jedoch noch nicht wirklich der Vorteil davon, da mein Programm dadurch weniger portabel ist ect.

    Vielleicht kann mich jemand aufklären.



  • du hast es erkannt: finger weg von der registry.
    🙂



  • y0 wind00f noobs hatten erst ini dateien, dann haben sie groß verkündet alle welt soll ihren mµll in die registrierung schreiben und jetzt soll man es auf einmal wieder in ini dateien schreiben. das typische M$ chaos eben 👎



  • Ich halte auch wenig davon, Settings in der Registry abzulegen. Wir ändern an der Registry nur, was wir so brauchen (fremde Einträge), und speichern unsere eigenen Geschichten schön in ini's.

    Aber was meinst du mit "weniger portabel"? Ini's sind doch auch eine Windows-eigene Sache, und solange du dafür die WinAPI-Funktionen (WriteProfileBlaBla...) nimmst und nicht alles selbst schreibst, entwickelst du doch auch für win-only, oder nicht?



  • WinAPI-Funktionen und protable Programmierung haben nur eines gemeinsam: Die Klassen, die für die Kapselung zuständig sind.



  • _matze schrieb:

    Aber was meinst du mit "weniger portabel"? Ini's sind doch auch eine Windows-eigene Sache, und solange du dafür die WinAPI-Funktionen (WriteProfileBlaBla...) nimmst und nicht alles selbst schreibst, entwickelst du doch auch für win-only, oder nicht?

    ini-files sind einfache textfiles. es gibt z.b. libraries für nicht-windosen-systeme, mit denen man ini-files lesen und schreiben kann.
    ...aber ich möchte echt mal wissen, welcher trottel damit angefangen hat, settings in der registry zu speichern und warum's ihm so viele nachgemacht haben.
    🙂



  • ~fricky schrieb:

    ini-files sind einfache textfiles. es gibt z.b. libraries für nicht-windosen-systeme, mit denen man ini-files lesen und schreiben kann.

    Das ist mir schon klar. Ich habe früher selbst mal Funktionen geschrieben, um ini-Files zu lesen/schreiben, weil ich's nicht besser wusste... 😉 Aber das es auch plattformunabhängige Libs für ini's gibt, wusste ich jetzt nicht (obgleich man sich das hätte denken können...), deshalb die Frage.

    ~fricky schrieb:

    ...aber ich möchte echt mal wissen, welcher trottel damit angefangen hat, settings in der registry zu speichern und warum's ihm so viele nachgemacht haben.
    🙂

    👍 Wenn ich ihn finde, sag ich dir Bescheid!



  • Diese Trottel kamen aus Redmond. Auch Windows schreibt Einstellungen in die Registry...

    Ivo



  • Die Registry ist das große ini-file für windows.



  • Also meine ini Files sehen irgendwie aufgeraeumter aus. Soll ich mich nun anpassen und sowas in mein /etc/ schreiben? 😃

    Ivo



  • Brauchste nichtmal, gibt doch gconf 😕
    Das war schon ein anständiger Brainfart.



  • Ivo schrieb:

    Auch Windows schreibt Einstellungen in die Registry...

    dagegen ist ja auch nix einzuwenden. als systemeigene konfigurationsdatenbank ist die registry durchaus brauchbar. es ist nur blöd, denn client-anwendungen, die selber nicht bestandteil des systems sind, in die registry schreiben. sowas hat nur nachteile.
    🙂



  • 2 .filmor
    Das war auch nur so als Scherz gedacht... es gibt eben Systeme die ohne solchen Muell auskommen!

    Ivo



  • Ich weiß, dass es nur als Scherz gedacht war, ich wollte nur darauf hinweisen, dass sowas Registry-artiges tatsächlich abartigerweise auch für Gnome implementiert implementiert wurde 😉



  • .filmor schrieb:

    ich wollte nur darauf hinweisen, dass sowas Registry-artiges tatsächlich abartigerweise auch für Gnome implementiert implementiert wurde

    unfug! seit wann ist eine datenbank was 'abartiges'?
    🙂



  • ~fricky schrieb:

    .filmor schrieb:

    ich wollte nur darauf hinweisen, dass sowas Registry-artiges tatsächlich abartigerweise auch für Gnome implementiert implementiert wurde

    unfug! seit wann ist eine datenbank was 'abartiges'?
    🙂

    dann, wenn sie fehleranfällig, sicherheitslückig und unwartbarig wird 😉



  • ich find die idee, für die konfiguration der anwendungen eines systems, eine zentrale datenbank zur verfügung zu stellen sehr elegant. dagegen steht eigentlich nur der anspruch einiger weniger anwender, in alle konfigurationsdetails ihrer anwendungen jederzeit einfach eingreifen zu können.

    das größte argument gegen die windows registry war immer, dass sie schnell "zumüllt" und dadurch das system ausbremst. aber mehrere, unabhängige, tests haben dieses gerücht schon lange widerlegt.

    die angeblich so viel eleganteren unix system arbeiten im grunde auch nicht viel anders. an irgendeiner stelle liegen globale konfigurationsdateien rum, die dann halt durch lokale konfigurationen im benutzerverzeichnis überschrieben werden können. der einzige unterschied ist halt, dass die daten in einzelne textdateien aufgesplittet werden und nicht zentral vorgehalten und verwaltet werden.



  • javanana schrieb:

    ich find die idee, für die konfiguration der anwendungen eines systems, eine zentrale datenbank zur verfügung zu stellen sehr elegant. dagegen steht eigentlich nur der anspruch einiger weniger anwender, in alle konfigurationsdetails ihrer anwendungen jederzeit einfach eingreifen zu können.

    das größte argument gegen die windows registry war immer, dass sie schnell "zumüllt" und dadurch das system ausbremst. aber mehrere, unabhängige, tests haben dieses gerücht schon lange widerlegt.

    die angeblich so viel eleganteren unix system arbeiten im grunde auch nicht viel anders. an irgendeiner stelle liegen globale konfigurationsdateien rum, die dann halt durch lokale konfigurationen im benutzerverzeichnis überschrieben werden können. der einzige unterschied ist halt, dass die daten in einzelne textdateien aufgesplittet werden und nicht zentral vorgehalten und verwaltet werden.

    die frage ist halt, worauf kann man schneller zugreifen oder was braucht weniger speicher. dazu kommt was ist besser wartbar, übersichtlicher, portabler, etc..

    wird die registry eigentlich komplett im speicher gehalten? oder nur bei bedarf die keys rausgesucht?



  • Die Idee der Registry ist, um mich meinen Vorrednern anzuschließen, wirklich elegant. Allerdings wurde und wird sie von abertausenden Anwendungsentwicklern missbraucht, denn das Problem des "Zumüllens" der Registry kommt lediglich daher, dass diese Programmierer Schlüssel und Werte reinschreiben - aber nicht wieder entfernen und auch nicht mal auf die Idee kommen, saubere Deinstallationsroutinen zu schreiben. Dafür kann die Registry, sei es jetzt unter Windows oder GConf von Gnome, selber nichts.



  • Xantus schrieb:

    Die Idee der Registry ist, um mich meinen Vorrednern anzuschließen, wirklich elegant. Allerdings wurde und wird sie von abertausenden Anwendungsentwicklern missbraucht, denn das Problem des "Zumüllens" der Registry kommt lediglich daher, dass diese Programmierer Schlüssel und Werte reinschreiben - aber nicht wieder entfernen und auch nicht mal auf die Idee kommen, saubere Deinstallationsroutinen zu schreiben. Dafür kann die Registry, sei es jetzt unter Windows oder GConf von Gnome, selber nichts.

    Die Registry ist keine gute Idee. Einfache Dateien fuer die Konfiguration ist einfacher und besser. Zum einen kann man die Dateien mit x-beliebigem Textedit bearbeiten, zum anderen kann man einzelne Einstellungen ganz einfacher abspeichern/widerherstellen. Zum anderen muss man Dinge nicht x mal neu Erfinden (wie Dateisystem + Datenbank fuer Konfiguration).

    Das Problem ist halt einfach das ntfs nicht mit sehr vielen kleinen Dateien zurecht kommt. Kopiert mal 5.000 sehr kleine Dateien (also max. 500 bytes) mit ext3 und mal mit ntfs. Die Registry ist eine typische MS-Entwicklung, closed, propritaer, das Rad wird neu erfunden.

    Wenn z.B. die Einstellungen einfache Textdateien waeren, dann koennte man auch viel einfacher Cross-Plattform Anwendungen schreiben. Z.B. in Java kann man keine Menueeintraege erstellen (beim installieren von Programmen) ohne die Windows-API zu benutzen. Somit muss man immer eine bloede .DLL mitschleppen (fuer den Mac genauso). In Linux kann man einfach BufferedWriter/Reader benutzen, weil auch das eine einfache Textdatei ist.

    Dann stellt sich die frage, wie kann ich einzelne Einstellungen auf z.B. einem Server lagern? Unter Linux wird einfach das /etc Verzeichnis in das lokale Dateisystem eingebunden. Oder man kann einfach Soft-Links setzen, auf die einzelnen Einstellungs-Dateien. Fuer die Registry muss man sich was eigenes dafuer ausdenken.

    Eine Datenbank ist immer dann gut, wenn auf viele Werte in moeglichst kurzer Zeit zugegriffen werden muss. Das ist fuer Programm-Einstellungen ganz klar ueberhaupt nicht der Fall. Es wird immer einmal auf einen Schluessel zugeriffen, und zwar dann, wenn ein Programm gestartet/beendet wird.



  • DEvent schrieb:

    Dann stellt sich die frage, wie kann ich einzelne Einstellungen auf z.B. einem Server lagern? Unter Linux wird einfach das /etc Verzeichnis in das lokale Dateisystem eingebunden. Oder man kann einfach Soft-Links setzen, auf die einzelnen Einstellungs-Dateien. Fuer die Registry muss man sich was eigenes dafuer ausdenken.

    Kennst du Dieter Nuhr?


Anmelden zum Antworten