Design Entscheidung
-
Hallo zusammen,
Ich habe eine SW, der aus 2 DLLs und einen GUI aufgebaut.
Der erste DLL ist zuständig für die Hardwarekommunitikation (Befehle weiterleiten zu Hardware und Messergebnisse (von der Hardware) zu DLL 2 weiterleiten ).
In Der zweite DLL befindet sich das Logik (Algorithmen, Auswertung des Ergebnis).
Der dritte schicht ist das GUI: Messergbnis Darstellung, Befehle Durchführung,...Jetzt muss ich die SW mit Datenbanken erweitern.
Also Messergebnisse in der Datenbanken speichernUm das umzusetzen gibt es 2 Möglichkeiten:
1)Die SW um einen 4 DLL zu erweitern. Also dann werden alle Datenbanken Tasks nur hier durchgeführt.
2)Der zweite DLL (wo die Messungen ausgwertet sind) mit datenbanken zu erweitern ("Es wäre dann die einfachste Variante").Was meint ihr dazu?
Danke in voraus
-
Warum machst du überhaupt DLLs? Davon hängt doch die Entscheidung sicherlich ab.
-
manni66 schrieb:
Warum machst du überhaupt DLLs? Davon hängt doch die Entscheidung sicherlich ab.
Die DLLs sind als Library gedacht und es ist auch eine gute Kapselung die SW modalarisch aufzubauen.
Ich habe so gedacht:
Da die Datenbanken Erweiterung fachlich gesehen nicht zu tun mit DLL2, wäre vielleicht nicht schlecht Sie auch in eine andere DLL zukapseln.
-
manni66 schrieb:
Warum machst du überhaupt DLLs? Davon hängt doch die Entscheidung sicherlich ab.
Es gibt durchaus gute Gründe dafür Software aufzusplitten, und zwar nicht nur logisch im Code sondern auch als dlls (zumal ich kaum ein Projekt erlebt habe bei dem ersteres nicht doch irgendwann zu einer gegenseitigen Abhängigkeit geführt hat).
Ob ich es hier machen würde, hängt von mehrere Faktoren ab:
1. Wie groß ist das Projekt und wie hoch ist die Wahrscheinlichkeit das es nennenswert wachsen wird.
=> Bei kleinen Projekten würde ich eher den pragmatischen Weg gehen, sofern sie nicht als Lernprojekt für große dienen.2. Wie langlebig ist das Projekt ausgelegt (wird die Software nur kurz gepflegt oder über Jahre/Jahrzehnte).
=> Bei kurzlebiger Software spielt die Wartbarkeit und saubere Trennung weniger eine Rolle.3. Wie viele arbeiten an dem Projekt.
=> Aufgesplittete Projekte lassen sich leichter von mehreren ohne überschneidung pflegen.4. Wie gut unterstützt die Sprache/Umgebung diese Trennung?
=> In C++ eher nicht so gut, da zögere ich länger mit einem solchen Schritt, bei C# und Java hätte ich wiederum kein Problem ein Projekt in viele kleine Einheiten zu splitten, da es keinen echten Mehraufwand bedeutet.
-
DortmunderGast schrieb:
Ich habe so gedacht:
Da die Datenbanken Erweiterung fachlich gesehen nicht zu tun mit DLL2, wäre vielleicht nicht schlecht Sie auch in eine andere DLL zukapseln.Unter den geschilderten Umständen hört sich das logisch an.