Laden...

Welche Vorteile bieten DLLs?

Erstellt von FUT320 vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.610 Views
F
FUT320 Themenstarter:in
10 Beiträge seit 2018
vor 5 Jahren
Welche Vorteile bieten DLLs?

Hallo zusammen,

ich habe wieder eine grundlegende Frage. Wir haben ein System, für welches vom Hersteller eine DLL bereitgestellt wird, mit dessen Funktionen wir Daten in das System schreiben können (sehr vereinfacht ausgedrückt).

Nun habe ich diese DLL immer in meine Projekte eingebunden und die Funktionien auch direkt genutzt. Ein ehemaliger Kollege hat jedoch eine eigene DLL erstellt, welche auf die externe referenziert. In diesem Projekt hat er alle Funktionen der externen DLL genutzt, teilweise überladen, einige Zusatzfunktionalitäten aber im Großen und Ganzen der Gleiche Funktionsumfang. Somit hat man immer diese beiden DLL, die man z.B. in einem Windows Dienst verweisen muss.
Bei einem Lieferant, welcher ebenfalls die externe DLL nutzt um in unser System zu schreiben, habe ich ähnliches festgestellt, auch zwei DLL.

Nun meine Frage: Warum? Gibt es dafür einen Grund? Bringt es irgendwelche Vorteile? Mir ist klar, dass ihr keine Glaskubel habt und die Beweggründe der Programmierer nicht kennt aber es schien mir, als hätten sie sich was dabei gedacht, was ich aktuell einfach nicht verstehe bzw. die Vorteile darin nicht sehe.

Vielen Dank im Voraus.

16.806 Beiträge seit 2008
vor 5 Jahren

Nun meine Frage: Warum? Gibt es dafür einen Grund? Bringt es irgendwelche Vorteile?

Klar, sowas ist Teil von Modularisierung und dient dem Zwecke der Wiederverwendbarkeit.

Die zweite DLL hat evtl. irgendwelche Funktionen, die prinzipiell mit der ersten DLL überhaupt nichts zutun hat.
Aber es ist wahrscheinlich, dass die zweite DLL noch von vielen anderen DLLs oder Anwendungen angesprochen wird.

Siehe auch Advantages of Using DLLs

Eigentlich verteilt man DLLs nicht nackt, sondern entweder als SDK oder via NuGet, dem Paketmanager für .NET

F
FUT320 Themenstarter:in
10 Beiträge seit 2018
vor 5 Jahren

Wie meinst du das, dass DLL nicht nackt verteilt werden?

T
156 Beiträge seit 2010
vor 5 Jahren

Wie meinst du das, dass DLL nicht nackt verteilt werden?

Hat @Abt mit dem Stichwort NuGet gemacht.
Bedeutet, man erstellt ein NuGet-Package mit dieser dll und packt sie auf eine Package Manager Source. Muss nicht nuet.org sein, sondern auch einfach ein Netzwerklaufwerk.

Die erstellten Packages sind quasi festgefroren, und ein Client, der das Paket einbindet, schaut selbstständig, ob es eine Aktualisierung gibt, ob er mit der Aktualsierung umgehen kann, und dann aktualisiert oder eben nicht oder zu einem späteren Zeitpunkt.

16.806 Beiträge seit 2008
vor 5 Jahren

Wie meinst du das, dass DLL nicht nackt verteilt werden?

Verteilung einer Exe via Copy Paste. Das ist das so ziemlich schlimmste, was man machen kann.
Man verliert völlig die Übersicht, die Versionierung ist nicht handhabbar.

Deswegen gibt es Paketmanager.
Bei Java Maven, bei NodeJS NPM und in .NET eben NuGet.

2.298 Beiträge seit 2010
vor 5 Jahren

Zusätzlich sei noch gesagt, dass durch die "eigene DLL" die Austauschbarkeit verbessert wird. Man kann nun die erste DLL komplett gegen eine andere ersetzen, passt in der zweiten die Codestellen an und für den Verwender der eigenen DLL ändert sich nichts.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

F
FUT320 Themenstarter:in
10 Beiträge seit 2018
vor 5 Jahren

Hallo,

ich danke euch für die Informationen!