Anwendungsdomänen (C# und Visual Basic)

Anwendungsdomänen stellen eine flexible und sichere Methode dar, um laufende Anwendungen zu isolieren.

Anwendungsdomänen werden normalerweise von Laufzeithosts erstellt und geändert. Gelegentlich kann es vorkommen, dass die Anwendung programmgesteuert mit der Anwendungsdomäne interagieren soll, um beispielsweise eine Komponente ohne Unterbrechung des Programmablaufs zu entladen.

Anwendungsdomänen erhöhen die Sicherheit, indem sie die Anwendungen und deren Daten voneinander trennen. Ein einzelner Prozess kann mehrere Anwendungsdomänen ausführen. Dies geschieht mit dem gleichen Grad an Isolation wie in separaten Prozessen. Das Ausführen mehrerer Anwendungen innerhalb eines einzelnen Prozesses erhöht die Serverskalierbarkeit.

Im folgenden Codebeispiel erstellen Sie eine neue Anwendungsdomäne. Danach laden Sie die zuvor erstellte Assembly HelloWorld.exe von Laufwerk C und führen Sie aus.

' Create an Application Domain:
Dim newDomain As System.AppDomain = System.AppDomain.CreateDomain("NewApplicationDomain")

' Load and execute an assembly:
newDomain.ExecuteAssembly("c:\HelloWorld.exe")

' Unload the application domain:
System.AppDomain.Unload(newDomain)
// Create an Application Domain:
System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");

// Load and execute an assembly:
newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");

// Unload the application domain:
System.AppDomain.Unload(newDomain);

Übersicht über Anwendungsdomänen

Anwendungsdomänen verfügen über die folgenden Eigenschaften:

  • Eine Assembly muss in eine Anwendungsdomäne geladen werden, bevor sie ausgeführt werden kann. Weitere Informationen finden Sie unter Assemblys und der globale Assemblycache (C# und Visual Basic).

  • Fehler in einer Anwendungsdomäne können keine Code beeinflussen, der in einer anderen Anwendungsdomäne ausgeführt wird.

  • Einzelne Anwendungen können angehalten werden, und der Code kann entladen werden, ohne den gesamten Prozess zu beenden. Sie können keine einzelnen Assemblys oder Typen entladen, nur vollständige Anwendungsdomänen.

Verwandte Abschnitte

Siehe auch

Konzepte

C#-Programmierhandbuch

Assemblys und der globale Assemblycache (C# und Visual Basic)

Weitere Ressourcen

Visual Basic-Programmierhandbuch

Anwendungsdomänen

Programmieren mit Anwendungsdomänen und Assemblys