Преимущества сборок

Сборки предназначены для упрощения развертывания приложений и для решения вопросов, связанных с управлением версиями, которые могут возникнуть при использовании приложений, основанных на компонентах.

Конечные пользователи и разработчики знакомы с проблемами управления версиями и развертывания, которые возникают в современных системах, основанных на компонентах. Некоторые конечные пользователи сталкивались с проблемами, когда после установки на компьютер нового приложения обнаруживалось, что старое приложение внезапно перестало работать. Многие разработчики тратили бесчисленные часы, пытаясь сохранить согласованность всех необходимых записей реестра, чтобы активировать COM-класс.

Многие проблемы разработки были решены с помощью сборок в платформе .NET Framework. Поскольку сборки являются компонентами с самоописанием, не зависящими от записей системного реестра, они позволяют устанавливать приложения, не влияя на другие компоненты. Кроме того, сборки упрощают удаление и репликацию приложений.

Вопросы управления версиями

На данный момент для приложений Win32 имеется две проблемы управления версиями.

  • Нельзя задать правила управления версиями для компонентов приложения и обеспечить их применение на уровне операционной системы. Существующий подход основывается на обратной совместимости, которую часто трудно гарантировать. Определения интерфейсов должны быть статическими и публикуемыми однократно, а для отдельных частей кода должна обеспечиваться обратная совместимость с предыдущими версиями. Более того, код обычно создается таким образом, что в любой момент времени на компьютере может присутствовать и выполняться только одна версия кода.

  • Не существует способа обеспечить согласованность между наборами компонентов, собранных вместе, и набором, присутствующим на компьютере в момент выполнения.

Эти две проблемы управления версиями вместе порождают конфликты DLL-библиотек, когда установка одного приложения может случайно нарушить работу другого существующего приложения, поскольку некоторый установленный программный компонент или DLL-библиотека не полностью совместимы с предыдущей версией. В такой ситуации в системе отсутствуют средства поддержки для диагностики и исправления ошибок.

Устранение конфликтов DLL-библиотек

В Microsoft® Windows® 2000 предприняты первые попытки решения этих проблем. В данной ОС имеются два средства, которые частично разрешают конфликты, связанные с DLL-библиотеками

  • В Windows 2000 можно создавать клиентские приложения, в которых зависимые DLL-файлы располагаются в той же папке, что и EXE-файл приложения. Windows 2000 можно настроить таким образом, чтобы проверка наличия компонента в папке с EXE-файлом проводилась перед проверкой полного пути или поиском по обычному пути. Это позволяет обеспечить независимость компонентов от установленных и используемых другими приложениями компонентов.

  • В Windows 2000 выполняется блокировка файлов, поставляемых вместе с операционной системой, в папке "System32" таким образом, чтобы их нельзя было случайно заменить при установке приложений.

В среде CLR для полного разрешения конфликтов DLL-библиотек используются сборки.

Решение на основе сборок

Чтобы решить проблемы управления версиями и другие проблемы конфликтов DLL-библиотек, в среде выполнения используются сборки, которые дают следующие возможности.

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

  • Предоставляют инфраструктуру для применения правил управления версиями.

  • Предоставляют инфраструктуру, позволяющую выполнять несколько версий компонента одновременно (так называемое параллельное выполнение).

См. также

Основные понятия

Сборки в среде CLR

Управление версиями сборок

сборки и параллельное выполнение