Assembly-DLL-EXE in .NET Framework

Assembly-DLL-EXE in .NET Framework

Assembly-DLL-EXE-Datei in .NET Framework

In diesem Artikel werde ich auf Assembly DLL und EXE eingehen in .NET Framework mit Beispielen. Bitte lesen Sie unseren vorherigen Artikel, in dem wir über verwalteten und nicht verwalteten Code in C#.NET gesprochen haben Anwendung. Im Rahmen dieses Artikels werden wir die folgenden Hinweise im Detail besprechen.

  1. Was ist eine Assembly in .NET?
  2. Arten von Assemblys in .NET Framework.
  3. DLL und EXE verstehen.
  4. Was ist der Unterschied zwischen der DLL und der EXE in .NET Framework?
Was ist eine Assembly in .NET?

Laut MSDN sind Assemblies die Bausteine ​​von .NET Framework-Anwendungen; sie bilden die grundlegende Einsatzeinheit. Mit einfachen Worten können wir sagen, dass Assembly nichts anderes ist als ein vorkompilierter .NET-Code, der von CLR (Common Language Runtime) ausgeführt werden kann.

Lassen Sie uns die obige Definition anhand eines Beispiels verstehen. Um dies zu verstehen, erstellen wir eine einfache Konsolenanwendung mit dem Namen MyConsoleApp. Sobald Sie die Konsolenanwendung erstellt haben, ändern Sie bitte die Programmklasse wie unten gezeigt.

using System;
namespace MyConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("This is From Console App");
            Console.ReadKey();
        }
    }
}

Wenn Sie jetzt mit der rechten Maustaste auf Ihr Projekt klicken und im Datei-Explorer auf Ordner öffnen klicken, werden Sie viele Dinge finden (Quellcode, z. B. Klassendatei Program.cs, Configuration Datei, d. h. App, Properties-Ordner, der die AssemblyInfo.cs-Klassendatei usw. enthält, wie im folgenden Bild gezeigt.

Aber wenn Sie die Anwendung erstellen, wird das Ganze in einer einzigen EXE-Datei abgelegt, wie im folgenden Bild gezeigt. Sie finden diese Datei unter bin => Debug Mappe. Sie können diese einzelne Einheit, d. h. MyConsoleApp.exe, kopieren und an einer beliebigen Stelle auf Ihrem Computer ablegen und von dort aus ausführen.

Eine Assembly ist also nichts anderes als eine einzelne Bereitstellungseinheit oder ein vorkompilierter Codeblock, der von CLR ausgeführt werden kann. Zum besseren Verständnis schauen Sie sich bitte das folgende Diagramm an.

Arten von Assemblys in .NET Framework:

Im .NET Framework gibt es zwei Arten von Assemblys. Sie lauten wie folgt:

  1. EXE (ausführbar)
  2. DLL (Dynamic Link Library)

In .NET Framework wird beim Kompilieren einer Konsolenanwendung oder einer Windows-Anwendung eine EXE-Datei generiert, während beim Kompilieren eines Klassenbibliotheksprojekts oder einer ASP.NET-Webanwendung eine EXE-Datei generiert wird DLL. Im.NET-Framework werden sowohl EXE als auch DLL Assemblys genannt.

Verstehen von DLL und EXE in .NET Framework:

Wir haben bereits eine Konsolenanwendung erstellt und wir sehen bereits, dass sie eine EXE-Datei erstellt. Sehen wir uns ein Beispiel für DLL an. Um eine DLL zu erstellen, fügen wir derselben Lösung ein Klassenbibliotheksprojekt mit dem Namen MyClassLibrary hinzu. Nachdem Sie das Klassenbibliotheksprojekt erstellt haben, wird standardmäßig eine Klassendatei mit dem Namen Class1 erstellt. Lassen Sie uns Class1 wie unten gezeigt ändern.

namespace MyClassLibrary
{
    public class Class1
    {
        public string GetData()
        {
            return "This is from Class Library";
        }
    }
}

Damit enthält unsere Lösung nun zwei Projekte. Das eine ist eine Konsolenanwendung und das andere ein Klassenbibliotheksprojekt, wie unten gezeigt.

Erstellen Sie nun die Lösung und Sie sollten die respektierten Assemblys wie erwartet in ihrem eigenen Ordner bin => Debug erhalten. Nun sollte Ihnen die Frage in den Sinn kommen, was ist der Unterschied zwischen der DLL und der EXE?

Was ist der Unterschied zwischen der DLL und der EXE in .NET Framework?

Die EXE wird in einem eigenen Adressraum oder in einem eigenen Speicherraum ausgeführt. Wenn Sie auf die MyConsoleApp EXE doppelklicken, erhalten Sie die folgende Ausgabe. Jetzt geht diesem Programm der eigene Speicherplatz aus.

Ohne dieses Fenster zu schließen, wenn Sie erneut auf die EXE-Datei von MyConsoleApp doppelklicken, wird es erneut ausgeführt und zeigt dieselbe Ausgabe an. Dies liegt daran, dass beide EXE-Dateien jetzt in ihrem eigenen Speicherbereich ausgeführt werden. Der Punkt, an den Sie sich erinnern müssen, ist, dass EXE eine ausführbare Datei ist und von selbst als Anwendung ausgeführt werden kann.

Zur DLL kommend, kann sie nicht alleine wie EXE ausgeführt werden. Das bedeutet die MyClassLibrary.dll kann nicht selbst aufgerufen oder ausgeführt werden. Es braucht einen Verbraucher, der es aufruft. Eine DLL wird also in einem anderen Speicherbereich ausgeführt. Der andere Speicherplatz kann eine Konsole, Windows-Anwendungen oder Webanwendungen sein, die ihren eigenen Speicherplatz haben sollten.

Zum Beispiel können Sie die DLL von einer Konsolenanwendung aus aufrufen. Wir haben eine Konsole namens MyConsoleApp und sehen uns an, wie die MyClassLibrary.dll von dieser Konsolenanwendung aus aufgerufen wird. Um die MyClassLibrary.dll innerhalb der MyConsoleApp zu verwenden, müssen Sie zunächst einen Verweis auf diese DLL erstellen. Nachdem Sie einen Verweis auf die MyClassLibrary-DLL hinzugefügt haben, ändern Sie bitte die Programmklasse der Konsolenanwendung wie unten gezeigt.

using System;
using MyClassLibrary;
namespace MyConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //Using MyClassLibrary DLL
            Class1 obj = new Class1();
            Console.WriteLine(obj.GetData());

            Console.WriteLine("This is From Console App");
            Console.ReadKey();
        }
    }
}

Führen Sie nun die Anwendung aus und Sie sollten die folgende Ausgabe sehen. Hier wird die MyClassLibrary-DLL im MyConsoleApp-Adressraum ausgeführt.

Kurz gesagt besteht der Unterschied zwischen ihnen darin, dass eine EXE-Datei eine ausführbare Datei ist und von selbst als Anwendung ausgeführt werden kann, während eine DLL normalerweise von einer EXE-Datei oder einer anderen DLL verwendet wird und wir können DLL nicht direkt ausführen oder ausführen.

Nun die Frage, die Ihnen in den Sinn kommen sollte, warum wir DLLs brauchen, da sie nicht von selbst aufgerufen werden. Der Grund hinter der DLL ist die Wiederverwendbarkeit. Angenommen, Sie möchten eine Klasse oder Logik oder etwas anderes in vielen Anwendungen, dann fügen Sie diese Klassen und Logik einfach in eine DLL ein und verweisen Sie auf diese DLL, wo immer sie benötigt wird.

Das war es für heute. Im nächsten Artikel werde ich auf App-Domäne in .NET Framework eingehen im Detail. Hier, in diesem Artikel, versuche ich, Assembly DLL EXE in .NET Framework zu erklären ausführlich mit Beispielen. Ich hoffe, Ihnen gefällt dieser Artikel und Sie haben eine bessere Vorstellung von diesen drei Konzepten bekommen.