Determinar os limites de domínio de aplicativo
Depois que o código de hospedagem faz a transição de não gerenciado para código gerenciado, ele deve criar um ou mais novos domínios de aplicativo no qual executar o código do usuário. Um o domínio de aplicativo é uma construção que hosts usam para isolar o código em execução dentro de um processo. Esse isolamento é necessário para garantir que o código que não pretende interagir não pode interagir. Por exemplo, código baixado de sites diferentes para o host do Internet Explorer deve ser mantido separado. O host do Internet Explorer cria um domínio de aplicativo para cada site garantir que esse isolamento.
Antes de um host pode criar um domínio de aplicativo no qual executar o código do usuário, ele deverá determinar onde os limites do novo domínio de aplicativo. Fatores que influenciam a essa decisão incluem requisitos para restringir o acesso de um determinado tipo a outros tipos, configuração, segurança e a capacidade de descarregar o código quando ele não é mais necessária.
Restringindo o acesso a tipos
Um tipo em execução em um domínio de aplicativo pode detectar outros tipos executando no domínio e chamá-los diretamente. No entanto, um tipo nunca pode descobrir a tipos que estão em execução em outros domínios de aplicativo e, portanto, não é possível chamá-los. A capacidade de restringir o acesso de um tipo para outros tipos é uma consideração principal para determinar onde criar limites de domínio.
Definições de configuração
Domínios de aplicativo são as unidades principais da configuração no runtime. Cada domínio de aplicativo possui um arquivo de configuração associado opcional que descreve as configurações relevantes para o código em execução no domínio.
Por exemplo, um arquivo de configuração pode conter uma lista de diretórios localizar os conjuntos privados, informações de vinculação de versão para assemblies compartilhados, o local dos tipos que podem ser acessados remotamente, e assim por diante.
Segurança
Hosts podem definir a diretiva de segurança de acesso ao código e a diretiva de segurança baseada em função para um domínio. Isso permite que o host para controlar o conjunto de permissões concedidas ao código em um domínio específico e para definir o principal segmento atual e o principal padrão para segurança baseada em função.
Por exemplo, um host poderia definir a diretiva de segurança de acesso de código de nível de domínio de aplicativo para garantir que somente o código baixado de um determinado site pode ser executado no domínio. Como alternativa, um host poderia configurar objetos de segurança baseada em função para implementar um esquema de autenticação personalizada.
Descarregamento de código
Para descarregar o código gerenciado em execução em um processo da memória para que a memória pode ser usada para outras finalidades, o host deve descarregar o domínio de aplicativo no qual o código está sendo executado. Não não possível descarregados montagens ou tipos individuais. O host tem suas próprias regras que regem o quando você pode descarregar o código do usuário. Por exemplo, seu navegador da Internet pode carregar controles gerenciados em um domínio do site determinado. Em seguida, o navegador pode ter regras que permitem manter as páginas visitadas recentemente na memória para que o frente e novamente botões respondem mais rapidamente. Quando o navegador determina que uma página não é mais necessário na memória, ele exclui o domínio de aplicativo, assim, também, excluindo o código para os controles gerenciados.