Wann ist es an der Zeit, die C # -Klassenbibliothek (.dll) zu verwenden?

7

Ich bin ein Programmierer, der nie wirklich DLL-Dateien verwendet hat. Wenn ich Software von Drittanbietern benötige, wie zum Beispiel eine Grafikbibliothek, eine Bibliothek, die mir hilft, Grafiken zu erstellen usw., füge ich die Referenzen / ddl-Dateien zu meinem Programm hinzu und verwende sie in meinem Code.

Außerdem scheint es, dass Sie .dll für viele verschiedene Dinge verwenden können. Daher möchte ich, dass sich das Thema auf C # konzentriert.

Im Moment arbeite ich an einer Desinfektions-Bibliothek (?) (ich glaube, das ist der richtige Begriff), die voll von relevanten Methoden sein wird, die Variablen auf verschiedene Arten bereinigen können.

Was ich wissen möchte ist:

würde es einen Vorteil für:

geben

1) Schreiben Sie die Methoden in die Klassenbibliothek - & gt; kompiliere / erstelle es - & gt; Fügen Sie die Bibliothek als Referenz zum Programm hinzu - was einige Variablen bereinigen müsste?

Oder wäre es genau das Gleiche, wenn ich wohin:

2) Erstellen Sie eine neue SanitizeClass im Programm - & gt; füge alle Sanitize-Methoden hinzu - & gt; Rufen Sie die Methoden aus der SanitizeClass in den verschiedenen Klassen im Programm auf, die Variablen bereinigen müssen

Im Allgemeinen möchte ich auch wissen, wann es von Vorteil ist, kompilierte Klassenbibliotheken zu verwenden. Ich denke an Geschwindigkeit, Sicherheit, alles.

Könnte jemand mich erleuchten? :)

    
CasperT 02.04.2009, 14:51
quelle

7 Antworten

16

Die Schlüsselfrage lautet: Ist es sinnvoll, dass mehr als eine Anwendung den Typ verwendet? Wenn ja, sollte es in einer Klassenbibliothek sein. Wenn nicht, können Sie immer noch nur aus Gründen der Trennung in eine Klassenbibliothek einfügen (z. B. eine Assembly pro Ebene in einer n-tier Lösung haben), aber Sie könnten einfach in Ihre Anwendung einfügen.

Wenn Ihre Bereinigung universell ist, wäre es definitiv der richtige Schritt, sie in eine Klassenbibliothek zu legen.

Ich kenne Leute, die in ausführbaren Anwendungen fast keinen Code schreiben und fast alles in Klassenbibliotheken einfügen - also umschließt die Anwendung im Grunde genommen nur die Klassenbibliotheken. Ich tendiere dazu nicht so weit zu gehen ...

    
Jon Skeet 02.04.2009, 14:55
quelle
2

Der erste Gedanke, der Ihnen in den Sinn kommt, ist die Wiederverwendbarkeit. Wird diese Bereinigungsbibliothek jemals außerhalb der Anwendung verwendet, an der Sie gerade arbeiten? Wenn Sie das tun, dann möchten Sie in Zukunft nicht mehr auf eine Exe verweisen müssen, dafür wollen Sie eine DLL-Datei erstellen (möglicherweise sogar einen starken Namen und GAC) und dann in Zukunft darauf verweisen.

    
BFree 02.04.2009 14:55
quelle
2

Zusätzliche Assemblys fügen einen geringen Ladezeit- und Speicheraufwand hinzu, haben aber ansonsten keine Auswirkungen auf die Leistung.

Sicherheit macht nur einen Unterschied, wenn Sie eine andere Code Access Security (CAS) benötigen und CAS verwenden.

Generell gibt es drei Gründe:

  1. Es macht die Dinge einfacher. Alles in eine einzige Baugruppe zu bringen, wird unhandlich (dies könnte organisatorische / Team-Probleme beinhalten).

  2. Wiederverwendung.

  3. Sie benötigen separate Baugruppen. Z.B. Schnittstellen und Implementierungen in verschiedenen Assemblys haben, damit AppDomains entladen werden können (z. B. für Plugins).

Richard 02.04.2009 14:57
quelle
1

Die Verwendung von Bibliotheken ist nützlich, wenn Sie Code zwischen mehreren Programmen teilen möchten.

Wenn Sie der Meinung sind, dass Ihre Klassen Daten in mehr als einem Programm bereinigen müssen, sollten Sie sie in eine Bibliothek stellen.

Es ist auch eine gute Idee, Schichten Ihrer Anwendung in verschiedene Bibliotheken zu legen (überprüfen Sie die n-Tier-Architektur)

    
Martin 02.04.2009 14:56
quelle
0

Ich denke, der einfachste Weg ist, SanitizeLibrary-Projekt als Bibliotheksklassen-Projekt zu Ihrer Lösung hinzuzufügen und dieses Projekt in Ihrer Anwendung zu referenzieren. Wenn Sie es nützlich finden, können Sie die Bibliothek aus dem aktuellen Projekt extrahieren und als DLL in Ihren anderen Projekten referenzieren.

    
empi 02.04.2009 14:58
quelle
0

Wenn Sie diesen Code in verschiedenen Apps wiederverwenden würden - zB: Dies wäre eine Art Shared Library - dann kompilieren Sie ihn als dll

reg Leistung, bitte beachten Sie, dass jeder Code, der gegen eine externe Assembly ausgeführt wird, immer etwas langsamer ist als die Ausführung von Code innerhalb derselben Assembly

    
Raj 02.04.2009 14:59
quelle
-1

Was ist Klassenbibliothek?

Wir können die Klassendateien in allen .Net-Anwendungen erstellen (C # .Net, Asp.net, Asp.net MVC)

In Java wird es als Paket! ...

bezeichnet

In .Net nennen wir es als DLL (Dynamic Link Library)

Wenn Sie die Klassen in Ihrer Anwendung erstellen, können Sie diese Klassen nur innerhalb dieser Anwendung verwenden. Sie können sie nicht in anderen Anwendungen verwenden.

Wenn Sie die Klassenbibliothek erstellen, können Sie sie in allen Anwendungen verwenden.

Wenn Sie eine Klassenbibliothek erstellen und verwenden müssen?

Wenn wir denselben Code in verschiedenen Anwendungen schreiben, können wir die Klassenbibliothek erstellen und in der gesamten Anwendung verwenden.

Beispiel:

Wenn Sie excel excel in mehr als einer Anwendung exportieren, können Sie den Exportcode in die Klassenbibliothek schreiben und Sie können ihn in mehr als einer Anwendung verwenden.

Echtzeit Beispiel:

Klasse ist wie Mülleimer in einem Raum und nur Zimmermitglieder können darauf zugreifen.

Class lib ist wie Mülleimer an einem gewöhnlichen Ort (College, Bahnhof) kann jeder zugreifen und es benutzen.

    
Ramesh P 20.10.2016 05:47
quelle

Tags und Links