Gibt es einen Grund, eine .net-DLL anstelle von EXE zu erstellen, wenn die Datei als referenzierte Assembly verwendet wird?

9

Ich habe bemerkt, dass ich eine Referenz nicht nur zu einer DLL hinzufügen kann, sondern auch zu einer EXE in Visual Studio und auf alle Klassen in der EXE zugreifen kann, als ob es eine DLL wäre.

Gibt es einen Grund, eine DLL zu erstellen oder kann ich genauso gut auf die EXE verweisen?

Ich frage, weil ich oft .net Programme schreibe, die ich sowohl unter Windows als auch unter Mac OS laufe, und meine übliche Lösung ist, eine DLL mit der Funktionalität und dann zwei GUIs zu erstellen, eine für jedes Ziel.

Allerdings scheint es mir jetzt so, als könnte ich einfach eine Windows-Version meiner App schreiben und dann diese Windows-Version (die EXE-Datei) zu meinem Mac-Projekt hinzufügen und auf die Windows-EXE statt auf eine DLL verweisen. Es hat auch den zusätzlichen Vorteil, dass ich die Windows-Version aus dem Mac-Ordner ausführen kann, ohne eine weitere Datei hinzuzufügen.

Gibt es einen guten Grund, es nicht so zu machen?

    
Andrew J. Brehm 24.08.2011, 11:09
quelle

3 Antworten

1

Wenn Sie möchten, können Sie all Ihre Assemblies als ausführbare Dateien (.exe) erstellen und auf sie verweisen. Es gibt keinen Unterschied für .NET, wenn eine Assembly als ausführbare Datei (.exe) oder Klassenbibliothek (.dll) kompiliert wird.

Der einzige Unterschied ist, dass eine ausführbare Datei ein zusätzliches Format für eine portable ausführbare Datei (PE) und einen Header hat, so dass sie es können auf Windows-Systemen ausgeführt werden. In erster Linie wird diese Kopfzeile verwendet, um die CLR Runtime zu starten.

Hinweis : Sie können DLL-Assemblies auch als Portable Class Libraries

    
Jehof 26.08.2011, 07:36
quelle
2

Es hängt davon ab, wie viel Wartung / Aktualisierung Sie den Anwendungen antun würden. Ich mag die Sauberkeit des ursprünglichen Modells, bei dem die Benutzeroberfläche auf der Plattform basiert und die DLLs die Klassen enthalten, die gemeinsam genutzt werden. Ich würde es für Wartung / Refactoring weniger verwirrend finden.

    
Jennifer S 24.08.2011 13:11
quelle
0

Ich sehe mindestens zwei Gründe, warum man noch teilen sollte /

  • Versionierung - es ist gut, unabhängige Versionsnummern für die dlls und exse zu haben - es ist besonders gut, die Versionsnummer zu ändern, wenn sich die Schnittstelle ändert
  • Einzelverantwortung und Testen
weismat 26.08.2011 07:44
quelle

Tags und Links