Execução Lado a Lado

Execução de lado a lado é a capacidade de executar várias versões de um aplicativo ou componente no mesmo computador. Você pode ter várias versões do common language runtime e várias versões de aplicativos e componentes que usam uma versão do tempo de execução, no mesmo computador ao mesmo tempo.

A ilustração a seguir mostra vários aplicativos usando duas versões diferentes do tempo de execução no mesmo computador. Os aplicativos A, B e c usam runtime versão 1.0, enquanto o aplicativo d usa o runtime versão 1.1.

Execução lado a lado de duas versões do runtime

Execução lado a lado

A.NET Framework consiste em common language runtime e duas dúzias aproximadamente os assemblies que contêm os tipos de API. O tempo de execução e o.NET Framework são versionados separadamente. Por exemplo, versão 1.0 do runtime é realmente 1.0.3705.0, enquanto a versão 1.0 do.Assemblies do NET Framework é a versão 1.0.3300.0.

A ilustração a seguir mostra vários aplicativos usando duas versões diferentes de um componente no mesmo computador. Aplicativo a e b usam a versão 1.0 do componente enquanto o aplicativo c utiliza a versão 2.0 do mesmo componente.

Execução lado a lado de duas versões de um componente.

Execução lado a lado

Execução de lado a lado lhe dá mais controle sobre quais versões de um componente de um aplicativo está vinculado e mais controle sobre qual versão do runtime um aplicativo usa.

Benefícios da execução de lado a lado

Anteriores ao Windows XP e o.NET Framework, conflitos de DLL ocorreram porque os aplicativos não foram possível distinguir entre versões incompatíveis do mesmo código. Informações de tipo contidas em uma DLL estava vinculadas somente a um nome de arquivo. Um aplicativo não tinha nenhuma maneira de saber se os mesmos tipos que o aplicativo foi compilado com os tipos contidos em uma DLL. Como resultado, uma nova versão de um componente poderia substituir um aplicativos mais antigos de versão e quebra.

Execução de lado a lado e o.NET Framework fornece os seguintes recursos para eliminar conflitos DLL:

  • Assemblies de nomes fortes.

    Lado a lado de execução usa os assemblies de nome forte para vincular informações de tipo para uma versão específica de um assembly. Isso impede que um aplicativo ou componente de vinculação para uma versão inválida de um assembly. Assemblies de nomes fortes também permitem que várias versões de um arquivo existe no mesmo computador e ser usado por aplicativos. Para obter mais informações, consulte Assemblies de nomes fortes.

  • Armazenamento de código com reconhecimento de versão.

    A.NET Framework fornece armazenamento de código com reconhecimento de versão no cache global de assemblies. O cache de assembly global é um cache de código de computador todo presente em todos os computadores com o.NET Framework instalado. Ele armazena os assemblies com base na versão, cultura e informações sobre a editora e oferece suporte a várias versões de aplicativos e componentes. Para obter mais informações, consulte Cache global de assemblies.

  • Isolamento.

    Usando o.NET Framework, você pode criar aplicativos e componentes que são executados em isolamento. O isolamento é um componente essencial da execução de lado a lado. Ela envolve sendo cientes dos recursos que você está usando e o compartilhamento de recursos com confiança entre várias versões de um aplicativo ou componente. Isolamento também inclui o armazenamento de arquivos de maneira específica de versão. Para obter mais informações sobre o isolamento, consulte Diretrizes para criação de aplicativos e componentes para execução de lado a lado.

Compatibilidade de Versão

Versões 1.0 e 1.1 do.NET Framework são projetados para serem compatíveis entre si. Um aplicativo criado com o.NET Framework versão 1.0 deve executar na versão 1.1, e um aplicativo criado com o.NET Framework versão 1.1 deve ser executado na versão 1.0. Entretanto, observe que os recursos da API adicionado na versão 1.1 do.NET Framework não funcionará com a versão 1.0 do.NET Framework. Aplicativos criados com a versão 2.0 serão executado na versão 2.0 somente. Versão 2.0 não será executado na versão 1.1 ou anterior.

Versões do.NET Framework são tratados como uma unidade única que consiste em tempo de execução e seu associado.Assemblies do NET Framework (um conceito conhecido como a Unificação do conjunto). Você pode redirecionar a vinculação para incluir outras versões do assembly do.Assemblies do NET Framework, mas substituindo o conjunto padrão de ligação pode ser arriscado e deve ser rigorosamente testados antes da implantação.

Tópicos relacionados

Título

Descrição

Localizar informações de versão de tempo de execução

Descreve como o runtime localiza informações sobre qual versão do runtime para carregar um aplicativo.

.Visão geral do NET Framework Assembly Unificação

Discute como o runtime lida com referências a diferentes versões do.Assemblies do NET Framework.

Determinando qual versão do Runtime para carregar

Discute as etapas que passa o tempo de execução para determinar qual versão do runtime para carregar um aplicativo.

Redirecionamento de ligação de assembly

Descreve como vincular um aplicativo para uma versão específica de um assembly.

Referências de Assembly parcialmente qualificado e execução de lado a lado

Discute as implicações do uso de referências assembly parcialmente qualificado em aplicativos que pretende executar na execução de lado a lado.

Arquivos de política do Publisher e execução de lado a lado

Fornece informações e procedimentos para usar arquivos de diretiva de editor para redirecionar a ligação de assembly.

Assemblies Satélites e execução de lado a lado

Discute como assemblies satélite são tratados em execução de lado a lado.

Determinando qual versão do.NET Framework É instalado.

Fornece informações sobre como instalar e usar várias versões do.NET Framework.

Como: Usar um arquivo de configuração do aplicativo para o destino um.NET Framework versão

Descreve como criar um arquivo de configuração que um aplicativo pode usar para direcionar uma versão do common language runtime.

Criando várias versões de um aplicativo ou componente

Fornece informações sobre como criar e implantar aplicativos e componentes projetados para execução de lado a lado.

Determinar uma estratégia de manutenção de aplicativos e componentes

Discute como criar um modelo de serviço para versionados componentes e aplicativos.

Execução de lado a lado no processo

Discute como você pode usar o tempo de execução de lado a lado no processo de ativação de host para executar várias versões do CLR em um único processo.

Assemblies no Common Language Runtime

Ofece uma visão conceitual dos assemblies.

Domínios de Aplicativo

Fornece uma visão conceitual dos domínios de aplicação.

Referência

<supportedRuntime> Elemento