Поделиться через


Общие сведения о параллельном выполнении

Обновлен: Ноябрь 2007

Параллельное выполнение представляет собой возможность запускать несколько версий приложения или компонента с одного и того же компьютера. В одно и то же время на одном компьютере можно запускать несколько версий среды CLR, а также несколько версий приложений и компонентов, использующих одну из версий среды выполнения.

На следующем рисунке показаны несколько приложений, которые используют две разные версии среды выполнения на одном компьютере. Приложения A, B и C используют среду выполнения версии 1.0, а приложение D использует версию 1.1.

Параллельное выполнение двух версий среды выполнения
Параллельное выполнение

Платформа .NET Framework состоит из среды CLR и около двадцати сборок, содержащих типы API. Версии среды выполнения и сборок платформы .NET Framework устанавливаются раздельно. Например, версия среды выполнения 1.0 на самом деле является версией 1.0.3705.0, в то время как версия 1.0 сборок платформы .NET Framework — версией 1.0.3300.0.

На следующем рисунке показаны несколько приложений, которые используют две разных версии компонента на одном компьютере. Приложения A и B используют компонент версии 1.0, а приложение C использует версию 2.0 того же компонента.

Параллельное выполнение двух версий компонента
Параллельное выполнение

Параллельное выполнение позволяет более строго контролировать, к каким версиям компонента привязывается приложение и какую версию среды выполнения оно использует.

Преимущества параллельного выполнения

До появления Microsoft Windows XP и платформы .NET Framework возникали конфликты библиотек DLL, так как приложения были не в состоянии различить несовместимые между собой версии одного и того же кода. Сведения о типах, содержавшиеся в библиотеках DLL, были ограничены именем файла. Приложение не могло различить, были ли типы в библиотеке DLL теми же, что применялись в приложении. В результате новая версия компонента могла перезаписать старую и привести к сбою в работе приложений.

Следующие возможности параллельного выполнения и платформы .NET Framework исключают конфликты библиотек DLL:

  • Сборки со строгими именами.

    Параллельное выполнение использует сборки со строгими именами, чтобы привязать сведения о типе к определенной версии сборки. Это исключает возможность того, что приложение или компонент будут привязаны к неправильной версии сборки. Сборки со строгими именами также позволяют нескольким версиям файла располагаться на одном компьютере и использоваться приложениями. Дополнительные сведения см. в разделе Сборки со строгими именами.

  • Хранилище, следящее за версией кода.

    Платформа .NET Framework предоставляет хранилище, следящее за версией кода, в глобальном кэше сборок. Глобальный кэш сборок — это кэш, в котором хранится используемый всеми приложениями на компьютере код. Подобный кэш есть на всех компьютерах, где установлена платформа .NET Framework. Он хранит сборки на основании версии, языка и региональных параметров и сведений об издателе, а также поддерживает одновременное хранение разных версий одного и того же компонента или приложения. Дополнительные сведения см. в разделе Глобальный кэш сборок.

  • Изоляция.

    Используя платформу .NET Framework, можно создавать приложения и компоненты, которые работают изолированно, что является неотъемлемой частью параллельного выполнения. Изоляция предполагает сбор сведений о задействованных ресурсах и безопасное совместное использование ресурсов несколькими версиями приложения или компонента. Изоляция также предполагает сохранение файла с указанием версии. Дополнительные сведения об изоляции см. в разделе Рекомендации по созданию приложений и компонентов для параллельного выполнения.

Совместимость версий

Версии платформы .NET Framework 1.0 и 1.1 совместимы. Приложение, разработанное с помощью платформы .NET Framework версии 1.0, работает с версией 1.1, и наоборот. Обратите внимание, что функции API, добавленные в платформу .NET Framework версии 1.1, не будут работать в платформе .NET Framework версии 1.0. Приложения, созданные с помощью версии 2.0, будут выполняться только в версии 2.0. Приложения версии 2.0 не будут выполняться в версии 1.1 или в более ранней версии. Полное обсуждение совместимости сред выполнения см. в разделе Совместимость версий.

В платформе .NET Framework версии рассматриваются как единые блоки, состоящие из среды выполнения и связанных с ней сборок платформы .NET Framework (концепция, называемая "унификацией сборок"). Можно перенаправлять привязку сборок, чтобы включить другие версии сборок платформы .NET Framework, но переопределение привязки по умолчанию рискованно и должно быть тщательно протестировано до развертывания.

См. также

Задачи

Практическое руководство. Использование файла конфигурации приложения для назначения версии .NET Framework

Другие ресурсы

Параллельное выполнение

Основы параллельного выполнения

Создание нескольких версий приложения или компонента