Anwendungsbereich

Definition - Was bedeutet Anwendungsdomäne?

Eine Anwendungsdomäne ist eine logische Isolationsgrenze, die um .NET-Anwendungen herum erstellt wird, damit Anwendungen nicht aufeinander zugreifen oder sich gegenseitig beeinflussen. Es ist ein leichter Prozess mit eigenen Code-, Daten- und Konfigurationseinstellungen. Anwendungsdomänen werden von den Laufzeithosts erstellt, die von der Common Language Runtime (CLR) aufgerufen werden, um die Anwendungen zu laden, die ausgeführt werden müssen.

Vor .NET war die Isolationsgrenze zwischen Anwendungen die Prozesse, in die sie geladen wurden. Jeder Prozess hatte seinen eigenen privaten virtuellen Speicher und kann nicht direkt auf den Speicher eines anderen Prozesses zugreifen. Die Anwendungsdomäne verfügt über ähnliche Funktionen wie ein Prozess.

Anwendungsdomänen weisen die folgenden Funktionen auf:

  1. Optimale Nutzung der Systemressourcen durch weniger Prozesse zur Ausführung mehrerer Anwendungen.
  2. Zuverlässigkeit durch Isolierung von Aufgaben in Situationen, in denen Daten nicht gemeinsam genutzt werden können, und für instabile Aufgaben, die entladen werden müssen, ohne den Prozess zu beeinträchtigen.
  3. Bessere Effizienz durch Ausführung lang laufender Prozesse, bei denen selten große Erweiterungen mit optimalem Speicher verwendet werden.
  4. Anwendungssicherheit durch Einschränken des direkten Zugriffs auf den in einer Anwendung ausgeführten Code über den Code oder die Ressourcen einer anderen Anwendung.
  5. Sicherheitskontrolle durch Angabe von Konfigurationsdetails für jede Anwendungsdomäne.

Technische.me erklärt die Anwendungsdomäne

Die Anwendungsdomäne unterscheidet sich in der Art und Weise, in der die CLR mehrere .NET-Anwendungen in einem einzigen Prozess lädt und ausführt. Es erlaubt keinen direkten Zugriff auf den Speicher geladener Anwendungen. Es wird von der CLR von .NET Framework verwaltet, während ein Prozess vom Betriebssystem verwaltet wird. Die CLR bietet eine Fehlerisolierung zwischen Anwendungsdomänen mit weniger Overhead als Prozesse, da die überprüfte Typensicherheit von verwaltetem Code inhärent ist. Außerdem können sich mehrere Threads in einer Anwendungsdomäne befinden. Sie können die Grenzen der Anwendungsdomäne überschreiten.

Beispielsweise ist ASP.NET ein Laufzeithost, der für jeden Benutzer, der auf eine Website zugreift, mehrere Anwendungsdomänen erstellt. Sie können auch für Anwendungen erstellt und konfiguriert werden, die Code isolieren oder Erweiterungen nur während ihrer Verwendung laden müssen. Diese Tatsache macht Anwendungsdomänen in Situationen nützlich, in denen Plug-Ins und anderer nicht vertrauenswürdiger Code verwendet werden. Sie sind auch nützlich, um die Anzahl der Anwendungen zu minimieren, die große DLLs verwenden.

Um die Kommunikation zwischen Objekten in verschiedenen Anwendungsdomänen zu ermöglichen, wird einer der folgenden drei Objekttypen verwendet:

  1. Marshal-By-Value: Vollständige Kopie des Objekts, das an die aufrufende Anwendungsdomäne übergeben wird. Dies wird verwendet, wenn der Status des Objekts aus Leistungsgründen verschoben werden kann.
  2. Marshal-By-Reference-Reference (MBR): Ein Proxy des Objekts wird an den Client übergeben. Wird verwendet, wenn der Status des Objekts innerhalb der Anwendungsdomäne bleiben muss.
  3. Kontextgebunden: MBR-Objekt, das domänenübergreifend oder im Kontext seiner eigenen Anwendungsdomäne verwendet wird.

Diese Definition wurde im Kontext von .NET geschrieben