Интернет магазин китайских планшетных компьютеров



Компьютеры - DLL hell - История проблемы

04 мая 2011


Оглавление:
1. DLL hell
2. История проблемы
3. DLL hell как мотивация проекта .NET



Эта проблема возникла в ранних версиях Microsoft Windows.

С подобными же проблемами сталкивались ранние версии Mac OS X, но с использованием других технологий. Не избегают подобных проблем дистрибуторы библиотек Open Source.

Поэтому, когда речь идёт о не-майкрософтовской среде, эту ситуацию называют dependency hell.

Проблема постоянно повторяется, когда программу пытаются запустить не с той DLL, c которой она тестировалась, что показывает изначальную порочность общей концепции, позволяющей произвольную замену версий модулей.

Меры против DLL hell

Данные меры рекомендуют предпринимать одновременно для получения наилучшего результата:

  • подсчитать контрольную сумму кода функции вызываемой из DLL - сравнить с контрольной суммой функции используемой при написании программы.
  • Операционная система должна поставляться совместно с менеджером пакетов, чтобы иметь возможность прослеживать все взаимозависимости DLL, при этом использование менеджера пакетов должно поощряться, а индивидуальная инсталляция DLL — по возможности отвергаться.
  • Централизованное распространение библиотек
  • Допустить возможность параллельного использования нескольких версий одной и той же DLL.
  • При модификации программного обеспечения для частного использования поставлять также модифицированные версии DLL.
  • Во время проектирования DLL должна тщательно продумываться концепция функций и версий. DLL не должны использоваться без необходимости, а библиотеки, связанные только с одним приложением, должны подключаться статически.


Просмотров: 2614


<<< Упреждающее чтение
DPC >>>