AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie verwaltet Ihr Anwendungseinstellungen?

Ein Thema von scrat1979 · begonnen am 28. Jan 2011 · letzter Beitrag vom 29. Mai 2011
Antwort Antwort
Seite 3 von 3     123   
blackfin
(Gast)

n/a Beiträge
 
#21

AW: Wie verwaltet Ihr Anwendungseinstellungen?

  Alt 28. Mai 2011, 16:01
Mhm, ich fahre bei solchen Sachen meistens 4-gleisig, je nach Anwendung

1) Der Installer (und zwar nur der Installer) schreibt den Installationspfad in die Registry. Das hilft beim leichteren Auffinden des Programms für einen Updater oder bei einem Support-Anruf, wenn der Kunde keine Ahnung hat, wo das Pogramm eigentlich liegt und / oder sein Icon / die Programmgruppe gelöscht hat etc.

2) "Normale" Programm-Einstellungen liegen in einer kleinen embedded Firebird-Datenbank (Anm.: ich liebe diese Datenbank!) im AppData-Verzeichnis und können vom User im Programm selbst über einen Settings-Bildschirm geändert werden.
Ebenso liegen in der Datenbank interne Einstellungen, die nur der Entwickler selbst, das Installationsprogramm oder ein Updater ändern muss.

3) Erweiterte Programm-Einstellungen für den Benutzer, die man teilweise nur zu Endpoint-Debug-Zwecken braucht oder vom End-Anwender nur einmalig umgeändert werden müssen, liegen in einer kleinen INI-Datei im AppData-Verzeichnis der Applikation.

4) Hat die Applikation eine Lua-Schnittstelle, liegen die Config-Einstellungen auch teilweise in einem Lua-Table.

Generell bin ich auch, aufgrund der Einfachheit, ein Freund der guten alten INI-Datei, XML hin oder her. INI's kann jeder Endanwender im Support-Fall leicht selbst editieren und muss sich nicht durch irgendwelche Registry-Einträge hangeln. Wichtig ist hier nur, dass die INI-Datei nicht mehr, wie es bei vielen jahrelang usus war, im Programm-Verzeichnis liegt, sondern im zugehörigen AppData-Verzeichnis. Hier hilft es auch, eine Verknüpfung zur INI-Datei mit dem Installationsprogramm im eigentlichen Applikations-Verzeichnis anzulegen, damit der Endanwender sich wiederum nicht zu den AppData-Verzeichnissen hangeln muss.
Ausserdem ein Vorteil von INIs (und auch XMLs): Man kann durch schlichtes Löschen der INI-Datei das Programm so auch leicht auf "Factory Reset" setzen, falls ein Endanwender es irgendwie geschafft hat, irgendwelche Form-Grössen oder Positionen völlig zu zerschiessen etc. und auch nicht editieren will

XML ist zwar generell die "schönere" und modernere Variante der INI, aber ich habe es schon oft erlebt, dass ein Endkunde die XML mit einem schwindligen Editor geöffnet und editiert hat, der dann die UTF8-Kodierung der XML beim speichern komplett zerstört hat.
Deswegen nutze ich XML meist nur für interne Zwecke, Import / Export und dergleichen. Aber nie für Dinge, die der Endanwender auch mal mit einem Editor ändern muss.

Geändert von blackfin (28. Mai 2011 um 17:56 Uhr)
  Mit Zitat antworten Zitat
Zuck

Registriert seit: 29. Mai 2011
19 Beiträge
 
#22

AW: Wie verwaltet Ihr Anwendungseinstellungen?

  Alt 29. Mai 2011, 12:17
Die nächsten Programme werden wohl XML-Dateien im Benutzerprofil speichern.
Da ich gerade exzessiv mit JSON rumhantiere: das Format ist weitaus einfacher als XML und es gibt eine Komponente namens SuperObject (http://www.progdigy.com), die die Verarbeitung mehr als einfach erledigt. Ein einfaches SO(json_text) liefert eine Instanz basierend auf der JSON-Repräsentation, so_instanz.AsString liefert die JSON-Repräsentation der Objekt-Hierarchie.
Für mich in Zukunft das Mittel zum Speichern komplexer Objekt-Bäume.
So mache ich das auch. Ich find JSON genial. Man kann jede noch so komplexe Objektstruktur darstellen, was ja bei INI nicht möglich ist und bei XML doch bald mal in den Speicher gehen kann. Zusätzlich ist es mit JSON extrem leicht möglich, Einstellungen aus dem Internet zu laden (wir speichern einige Einstellungen auf unserem Firmenserver und einige Kunden haben doch noch recht langsame Verbindungen, bei denen jedes Byte Zeit kostet).

SuperObject muss ich mir mal anschauen - wir haben dafür mal was eigenes entwickelt, aber die Produkte von progdigy sind doch immer wieder ein Grund zur Freude.

Zuck
Zuck
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#23

AW: Wie verwaltet Ihr Anwendungseinstellungen?

  Alt 29. Mai 2011, 12:25
Seit mindestens Delphi XE gibt es direkt im Delphi eine JSON-Implementierung,
aber gegen diese kranke Implementierung ist MSXML wesentlich einfacher
Uúnd über XPath auch wesentlich mächtiger.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.351 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: Wie verwaltet Ihr Anwendungseinstellungen?

  Alt 29. Mai 2011, 12:33
JSON hat den Vorteil, dass es z.B. auch bei DataSnap verwendet wird. Man kann also die selben Daten auch gleich bei der Multi-Tier Entwicklung nutzen. Zum Beispiel, wenn man die selben Einstellungen z.B. auch an einen Thin-Client (z.B. mit JavaScript) schicken will.

Für rein lokal im Delphiprogramm benutzte Einstellungen ist XML aber besser geeignet, da bin ich der selben Meinung.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Zuck

Registriert seit: 29. Mai 2011
19 Beiträge
 
#25

AW: Wie verwaltet Ihr Anwendungseinstellungen?

  Alt 29. Mai 2011, 12:41
Ja auf Windows alleine ohne Netzwerk ist XML sicher eine bessere Alternative. Einige Programme sind immer noch auf rein XML - aber wie gesagt, für die Kommunikation mit einem Webserver ist JSON IMHO allemal die bessere Wahl.

Zuck
Zuck
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz