AGB  ·  Datenschutz  ·  Impressum  







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

DLLs in komplexen Programm

Ein Thema von hans ditter · begonnen am 12. Dez 2010 · letzter Beitrag vom 16. Jan 2011
Antwort Antwort
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#1

DLLs in komplexen Programm

  Alt 12. Dez 2010, 18:32
Hallo liebe Gemeinde,

ich hatte vor einiger Zeit mal angefangen, sozusagen ein "Planungsprogramm" zu schreiben. Sollte eben in die Richtung gehen, dass man seine Ein- und Ausgaben, seine Aufgaben, Termine etc. pp. planen kann. Angefangen hab ich jetzt mit Ein- und Ausgaben und einer Übersicht für Arbeitsstunden.
Bitte keine Diskussion anfangen, ob das alles sinnvoll ist oder nicht!

Jetzt hab ich aber in meinem schönen dicken Delphibuch ein bisschen weitergelesen und hab endlich auch verstanden (hoffe ich zumindest ), wie das mit den DLLs funktioniert.
Da dachte ich mir, mach ich dieses Planungstool mal aus Modulen (mit DLLs).
Auch hier der Hinweis: Bitte keine Diskussion über Vor- und Nachteile von DLLs...

Leider hab ich jetzt aber ein Problem, mir auszumalen, wie man das alles vernetzen soll.

Ich geb mal zum Besseren Verständnis ein Beispiel, was ich meine:
Man hat das Modul "Ein- / Ausgabenplanung" (Modul 1) und das Modul "Arbeitsstunden planen" (Modul 2) installiert. Das Erstere von beiden erklärt sich von selbst. Beim Zweiten gibt man in einer Maske ein, von wann bis wann man gearbeitet hat, der Computer rechnet die Gesamtzeit und den Verdienst aus und speichert dies in einer Datenbank.
Nun soll aber das Modul 1 die Werte aus der Datenbank des Modul 2 mit einbeziehen, ergo soll Modul 1 automatisch am Ende des Monats den ges. Monatsverdienst aus dem Modul 2 mit in seine Datenbank integrieren.
Aber wie organisiere ich das jetzt? Wo sollen die Komponenten für den Zugriff auf die Datenbanken liegen, wie soll man auf diese zugreifen?

Im Moment liegen Datasource etc. noch auf der Mainform und beide Teilprogramme können darauf zugreifen, doch wie mache ich das, wenn ich diese beiden Teilprogramme in DLLs auslagere? Sollte ich dann für jedes Modul dynamisch eine Zugriffskomponente im Hauptprogramm anlegen, auf die dann zugegriffen werden kann?

Hoffe ihr könnt mir noch folgen,

frohe Adventsgrüße, hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
hoda

Registriert seit: 26. Sep 2002
14 Beiträge
 
#2

AW: DLLs in komplexen Programm

  Alt 13. Dez 2010, 10:26
Ich denke, dass es viele Wege gibt wie man das löst.Das Problem ist den richtigen zu nehmen.

Hier mein Vorschlag:
Eine Main Form, der das ganze Managet. D.h. der beinhaltet die Komponenten und lädt nur die DLLs hoch die auch tatsächlich vorhanden sind oder benötigt werden.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: DLLs in komplexen Programm

  Alt 13. Dez 2010, 11:27
Hier mein Vorschlag:
Eine Main Form, der das ganze Managet. D.h. der beinhaltet die Komponenten und lädt nur die DLLs hoch die auch tatsächlich vorhanden sind oder benötigt werden.
Warum dafür eine/die MainForm genommen werden soll erschließt sich aber auch niemandem, da hier ja Funktionen aus DLLs angesprochen werden sollen, und die haben mit der GUI erstmal nix zu schaffen. Warum dann also das an ein GUI-Element verknüpfen bzw. ein GUI-Element zum Verwalten benutzen?

Eine einfache Unit, die diese Verwaltung übernimmt und gut
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hoda

Registriert seit: 26. Sep 2002
14 Beiträge
 
#4

AW: DLLs in komplexen Programm

  Alt 13. Dez 2010, 11:50
Zitat:
Warum dafür eine/die MainForm genommen werden soll erschließt sich aber auch niemandem...
Bei einem Planungsprogramm ist ein Frontend (Main Form) zwingend nötig. Wie soll die Interaktion mit dem User ansonsten stattfinden?
Es sei denn, es besteht bereits ein Client-Applikation, in dem man die DLLs hochladen will. Da gebe ich dir völlig Recht, dass dort ein Main Form unnütz ist.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

AW: DLLs in komplexen Programm

  Alt 13. Dez 2010, 15:21
Das war Sir Rufo hier meint ist, dass es mindestens drei Schichten geben soll. Zum einen mal die GUI, das ist klar. Mit irgendwas muss der User ja kommunizieren. Daneben dann eine Schicht, die die ganze Verwaltung der DLLs übernimmt und auch entsprechende Schnittstellen für die GUI und für die DLLs anbietet. Und darunter dann die Schicht mit den DLLs. Hier mal ein kleines Bild:

Code:
    +-------+
    |  GUI  |
    +-------+
        ^
        |
        v
    +--------------+         +-------------------------+         +------+
    |  MANAGEMENT  | <-----> |  Datenbank-Schnistelle  | <-----> |  DB  |
    +--------------+         +-------------------------+         +------+
        ^
        |
        v
    +--------+
    |  DLLs  |
    +--------+
@Sir Rufo: Bitte nicht hauen, wenn ich hier was falsch verstanden habe
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: DLLs in komplexen Programm

  Alt 13. Dez 2010, 21:20
okeeeee......
Ich sollte also eine eigene Unit für alle organisatorischen Sachen erstellen?
Das würde also bedeuten, dass ich die GUI hab, die dem Nutzer das Kommunizieren mit meinem Programm erlaubt, dann hab ich die versch. DLLs, die Forms und Methoden exportieren, und eine Unit, die beides miteinander vereint. Hab ich das recht verstanden?

Das würde dann also bedeuten, dass die versch. DLLs (die ja z.B. eine eigene Datasource Komponente brauchen) "ihre" Komponenten zur Laufzeit dynamisch in der "Managementunit" erstellen. Aber wie geht das? Bei einer Unit kann man doch nicht während das Programm ausgeführt wird dynamisch weitere Komponeneten erstellen, oder?

Und bei einer Sache hab ich noch Schwierigkeiten:
[...] und auch entsprechende Schnittstellen für die GUI und für die DLLs anbietet.
Was genau meinst du hier mit Schnittstellen?

lg, hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!

Geändert von hans ditter (13. Dez 2010 um 22:21 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz