Application Domain
Autor: Manual de fotografia | Publicado: 2010-09-27T05:44:00-07:00

São      ambientes preparados para rodar aplicações externas com segurança, um      exemplo é o IIS, que roda um assembly(site) ao mesmo empo com vários      processos diferentes, um para cada um dos usuários diferentes. Outro é o      IE, que roda vários assemblies ao mesmo tempo separadamente para cada um      dos sites. Basicamente trata-se da separação de recursos por assembly
A      Classe AppDomain

activationContext: Retorna o       contexto para o application Domínio Corrente.
applicationIdentity:       &nbsp;A identidade do AppDomain
applicationTrust: Descricao       das informacoes sobre permissoes e nivel de segurança.
baseDirectory: Diretório base       onde roda o appDomain
currentDomain: Analiza o       Domínio Corrente e verifica permissões
domainManager: Retorna o       gerenciador de Domínios que estava disponível quando a aplicação foi       iniciada
dynamic Directory: Diretório       onde assemblies dinâmicos são executados
Evidence: Recupera a Evidence,       tem a ver com contexto de segurança do appDomain.
friendlyName: um alias para o       appDomain
id: Numero que identifica o       processo
relativeSearchPath: Recupera o       caminho relativo aos assemblies de base
setupInformation: Configuração       do appDomain
shadowCopyFile: Verifica se o       assembly é uma cópia
applyPolicy: Retorna o nome do       assembly após uma política ter sido atribuída
createComInstanceFrom: Cria       uma instancia de um tipo COM
createDomain: Cria um       application Domain
createInstance: Cria uma       instancia de um tipo especificado em um assembly
createInstanceFrom: Cria uma       instancia de um tipo especificado em um assembly
createInstanceAndUnwrap: Cria       uma instancia de um tipo especificado em um assembly
defineDynamicAssembly: Define       um assembly dinâmico em um AppDomain
executeAssembly: Executa o       assembly de um determinado arquivo
doCallBack: &nbsp;Usa delegates para rodar um código de       outra appDomain
executeAssemblyFromFile: Executa       um assembly
getAssemblies: retorna o       assembly que está executando
getCurrentThreadId: Retorna o       Id da thread rodando
getData: retorna o valor       guardado naquele apDomain
initializeLifeTimeService:       impede o timeout
isDefaultAppDomain: Retorna se       o domínio é ou não o padrão

Criando o appDomain

appDomain.CreateDomain: Cria

Carregando Assemblies

executeAssembly: Pode passar       como parâmetro comandos, caminhos
executeAssemblyByName: Pode-se       fazer uma referencia a um caminho de assembly e utilizar esse método para       associar ao assemblly

Descarregando o appDomain

appDomain.Unload

Configurando o appDomain

Limitando privilégios de um       appDomain

evidence: É a informacao que        obtida apartir do assembly para se determinar a qual grupo de código        esse assembly deve fazer parte. Esse grupo de código por sua vez é quem        determina os privilégios do assembly em questão. Esse evidence pode ser        um diretório, um site, uma assinatura. 
Apartir do objeto System.Security,Policy.Evidence,        um objeto é criado.
O construtor necessita do        endereço do assembly e do tipo de segurança.
System.Security,Policy.Zone,        são tipo de evidences pré-definidos utilizando uma enumeração
É do mesmo modo que citado        acima porem, a evidence é atribuído no create do appDomain,

Configurando as propriedades       do appDomain

Propriedades

applicationBase: A mais         importante, todas as outras já estão pré-definidas. Recupera ou atribui         o endereço do aplicativo.
activationArguments:         Recupera ou atribui as propriedades de um aapDomain criado.
applicationName: é o nome da         aplicação
applicationTrust:         Informações sobre Security e Trust 
configurationFile: Nome do         arquivo de configuração
disallowApplicationBaseProbing:         Especifica se o application base está testado (probed).
disallowBindingRedirects: Recupera         ou atribui se a aplicacao permite redirecioamento de associação de         assemblies
disallowCodeDownloads:         Permite ou não q a aplicacao faca download de códigos
disallowPublisherPolicy:         Especifica de a secao “Publisher” está associada ao appDomain
dynamicBase: Local dos         arquivos gerados dinamicamente
licenseFile: Local do         arquivo de licença relativo a aplicacao
loaderOptmization:         Especifica a Politica de otimização utilizada na otimização da carga de         um executável