Domaine d’application

Définition - Que signifie le domaine d'application ?

Un domaine d'application est une limite d'isolement logique créée autour des applications .NET afin que les applications ne puissent pas accéder ou s'influencer les unes les autres. Il s'agit d'un processus léger ayant son propre ensemble de paramètres de code, de données et de configuration. Les domaines d'application sont créés par les hôtes d'exécution, qui sont appelés le Common Language Runtime (CLR), pour charger les applications qui doivent être exécutées.

Avant .NET, la limite d'isolation entre les applications était les processus dans lesquels elles étaient chargées. Chaque processus a sa propre mémoire virtuelle privée et ne peut pas accéder directement à la mémoire d'un autre processus. Le domaine d'application a des fonctionnalités similaires à celles d'un processus.

Les domaines d'application présentent les caractéristiques suivantes :

  1. Utilisation optimale des ressources système en utilisant moins de processus pour exécuter plusieurs applications.
  2. Fiabilité en utilisant l'isolation des tâches dans les situations où les données ne peuvent pas être partagées et pour les tâches instables qui doivent être déchargées sans affecter le processus.
  3. Meilleure efficacité en exécutant des processus de longue durée qui utilisent rarement de grandes extensions avec une mémoire optimale.
  4. Sécurité des applications en limitant l'accès direct au code exécuté dans une application à partir du code ou des ressources d'une autre application.
  5. Contrôle de sécurité en spécifiant les détails de configuration pour chaque domaine d'application.

Definir Tech explique le domaine d'application

Le domaine d'application diffère dans la manière dont le CLR charge et exécute plusieurs applications .NET en un seul processus. Il ne permet pas un accès direct à la mémoire des applications chargées. Il est géré par le CLR du .NET Framework alors qu'un processus est géré par le système d'exploitation. Le CLR fournit une isolation des pannes entre les domaines d'application avec moins de surcharge que les processus, en raison de sa fonction inhérente de sécurité de type vérifiable du code géré. En outre, plusieurs threads peuvent résider dans un domaine d'application, elles sont libres de traverser les limites du domaine d'application.

Par exemple, ASP.NET est un hôte d'exécution qui crée plusieurs domaines d'application pour chaque utilisateur accédant à un site Web. Ils peuvent également être créés et configurés pour les applications qui ont besoin d'isoler le code ou de charger des extensions uniquement lors de leur utilisation. Cela rend les domaines d'application utiles dans les situations où des plug-ins et d'autres codes non approuvés sont utilisés. Ils sont également utiles pour minimiser l'ensemble de travail des applications qui utilisent de grandes DLL.

Pour activer la communication entre des objets dans différents domaines d'application, l'un des trois types d'objets suivants est utilisé :

  1. Marshal-By-Value : copie complète de l'objet passé au domaine d'application appelant. Utilisé lorsque l'état de l'objet peut être déplacé pour des raisons de performances.
  2. Marshal-By-Reference-Reference (MBR) : un proxy de l'objet est passé au client ; utilisé lorsque l'état de l'objet doit rester dans le domaine d'application.
  3. Contexte : objet MBR utilisé dans plusieurs domaines ou dans le contexte de son propre domaine d'application.

Cette définition a été écrite dans le contexte de .NET