segunda-feira, 27 de setembro de 2010

Application Domain

  • 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:  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:  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

Nenhum comentário:

Postar um comentário