Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#11

AW: DLLs in komplexen Programm

  Alt 14. Dez 2010, 13:14
Im Prinzip geht es doch darum, das alle Teile möglichst unabhängig von einander funktionieren.
Darum würde ich Interface einsetzen.
Zitat:
Dazu, was die DLLs können müssen:
- muss Mehoden exportieren --> ok
- muss Forms exportieren --> ok
Statt dessen sollte ein Interface beim Anwendungskern in einer Interface-Liste registriert werden. Wo immer ein bestimmtes Interface benötigt wird, wird es vom Kern geholt.
Zitat:
- muss auf (versch.) Datenbanken zugreifen können --> PROBLEM!
Verschiedene Datenbanksysteme oder verschiedene Datenbankdateien?
Eigentlich braucht man ja nur die Verbindungsparameter z.B. als Connectstring weiter zu geben.

Zitat:
-> müsste dynamisch Komponenten erstellen können ???
Sollen sie, warum auch nicht?

Zitat:
- muss Einträge im Main Menu vornehmen --> kann ich noch nicht, sollte wohl aber nicht so schwierig sein
- muss eine neue Seite im Page Control anlegen und eigen Form darin anzeigen --> kann ich auch noch nicht, lässt sich aber auch aneignen, denk ich
Das ist Aufgabe der GUI. Die GUI fragt alle beim Anwendungskern registrierten Interface ab und prüft für jedes, ob ein Interface suportet wird, das Informationen zu zusätzlichen Menüpunkten bereitstellt. Diese werden angelegt und mit der Funktion aus dem Interface verknüpft.
Die GUI könnte sich beim Anwendungskern auch als Observer für die registrierten Interface anmelden, um gegebenenfalls auf Änderung reagieren zu können.
Code:
+----------------+    +--------------+--------------+
|                | -- | Interface    | GUI          |
|                |    +--------------+--------------+
|                |   
|                |    +--------------+--------------+
|                | -- | Interface    | Planung1-DLL |
|                |    +--------------+--------------+
| Anwendungskern |   
|                |    +--------------+--------------+
|                | -- | Interface    | Planung2-DLL |
|                |    +--------------+--------------+
|                |   
|                |    +--------------+--------------+
|                | -- | Interface    | Planung3-DLL |
+----------------+    +--------------+--------------+
Man könnte sogar so weit gehn, jeweils eine DLL für die fachliche Logik und eine für die Oberfläche zu dieser Logik einzusetzen.
Dann wäre die Oberfläche komplett austauschbar (z.B. Web-Darstellung), ohne die eigentliche Anwendung zu beeinflussen.
  Mit Zitat antworten Zitat