Konfigurationseinstellungen für eine Assembly

broetchen

Erfahrenes Mitglied
moin

Ich sitze vor einem Programm, welches ich in zwei Komponenten aufteilen will.
a) eine Exe, die die GUI beinhaltet und
b) eine DLL, die den Rest (DB-Zugriff, Controlling, Number Crunching, ...) bewerkstelligt.

Die DLL soll gewisse Konfigurationsmöglichkeiten haben, z.B. soll für den DB-Zugriff der Server eingestellt werden, von welcher Tabelle man welche Daten bekommt, etc.

Meine Frage ist nun, wie man das macht!?
Bei einer Exe kann ich ja ne App.config zur Hand nehmen, aber das mit DLLs auch?

Wenn jemand nen guten Tip hat, bin ich überglücklich, aber einer von cosmo's Links würde mir auch schon weiterhelfen ;-) ^^

mfg broetchen
 
Also, entweder du speicherst deine Daten in einem XML File. Das wäre die einfachste Variante. Nachteil: Der ConnectionString, als Beispiel, kann dann natürlich ausgelesen werden.

Legst du diese Informationen in einer DLL ab, dann kann ich - Eigenwerbung mach - auf einen Artikel von mir auf CodeProject verweisen:
Working with embedded data
 
Hallo broetchen!

Hehe, ;)
Hast für den Zugriff mehrere DBs im Auge?
[thread=215873]Umstellung auf 3-Tier-Architektur - Thread[/thread]

Ansonsten könnte sich die DLL auch selber ein XML oder was auch immer für die Konfiguration halten.
Oder serialisiers einfach. Wie Du's halt brauchst.

MfG, cosmo
 
Serialisierung ist natürlich eine Möglichkeit, hat allerdings den Nachteil, dass du, wenn du weitere Properties hinzufügst, nicht mehr Deserialisieren kannst - zumindest nicht ohne Aufwand.

Beim Ablegen der Daten in einer DLL hast du das Problem, wie du die Daten denn ändern kannst. Und hierzu: siehe mein oben geposteter Link.

@cosmo: Welche Post du jetzt genau im angesprochenen Thread ansprichst, weiß ich nicht. Aber nur weil als Beispiel unterschiedliche Datenbanken verwendet werden, spricht dies noch lange nicht für eine 3-Tier-Architektur.
 
Es geht hier nicht nur um den DB-Zugriff, sonder das Programm an sich wird in eine Klassenbibliothek ausgelagert. Nur die GUI bleibt außen vor und kommt in eine eigene Windows-Anwendung.

Weiters geht es nicht daum, Daten in eine DLL auszulagern, sondern die DLL zu konfigurieren.

Die Idee mit dem XML-File ist mir auch gekommen.

mfg broetchen
 
Aso, dann musst halt in den entsprechenden Klassen entsprechende Properties anbieten, damit die Einstellungen gesetzt werden können. So einfach ist das.
 
Norbert Eder hat gesagt.:
Aber nur weil als Beispiel unterschiedliche Datenbanken verwendet werden, spricht dies noch lange nicht für eine 3-Tier-Architektur.
Hallo Norbert!

Das er keinen kompletten DAL baut ist mir doch klar. :)
Nur fand die Idee mit den Interfaces in der [post=1120939]DAO Implementierung[/post] einfach genial.
So ähnlich könnte er sich das ja auch striken, sofern er mit mehreren DB arbeitet.

Das Du schon drei Artikel auf TheCodeProject veröffentlicht hast, find ich krass.
Wird Zeit das ich auch mal was in der Hinsicht mache. ;-)
Hoffentlich wird's so gehaltvoll wie deine Artikel.
Perry H@TheCodeProject hat gesagt.:
Excellent Article
lg, cosmo
 
Danke für die Ideen, ich glaube eine XML-Datei, die dann beim Laden der DLL in eine Klasse mit statischen Membern übertragen wird ist die geeignetste Lösung.

Welches Ausführungsverzeichnis haben DLLs bzw. kann ich die XML-Datei einfach so ansprechen, als läge sie im gleichen Ordner?

Und wie kann ich die Konfiguration nach außen hin ermöglichen?
Muss ich da ein eigenes Programm für schreiben, geht das nur direkt über die XML-Datei oder gibt es da noch einen Weg?

mfg broetchen
 
Zurück