DLL ад

DLL ада (DLL-кошмар, буквално: DLL -обява) - безизходица, свързана с динамичен контрол на DLL в операционната система Microsoft Windows.

Подобен проблем в други операционни системи се нарича зависимостта ада.

Същността на проблема е конфликт на DLL версии, предназначени за подпомагане на определени функции. DLL ада - един пример за лошо програмиране понятия, които, подобно на скрита мина, водещи до рязко покачване на трудностите, възникващи поради усложнени и усъвършенстване на системата.

Описание на проблема

Според първоначалния план, DLL трябва да бъде съобразена от версия на версия и взаимозаменяеми и от двете страни.

Прилагане на механизъм DLL е такава, че несъвместимостта и не-заменяемост се превръща в правило, а не изключение, което води до много проблеми.

  • Липса на стандарти за имена и позиции версия DLL в структурата на файловете води до факта, че са несъвместими DLL лесно да замени или забраните помежду си
  • Липсата на стандарти в инсталационната процедура води до факта, че инсталирането на нови програми, водещи до DLL за подмяна текат в несъвместими версии
  • Липсата на подкрепа от свързващи единици DLL и механизми за защита води до факта, че са несъвместими DLL могат да имат едно и също име и версия
  • Все още няма стандартни инструменти за установяване и контрол на потребителите DLL системни администратори и
  • Използване на отделен DLL за комуникация между задачи води до нестабилност на сложни приложения

За да се избегнат конфликти използват DLL много излишни копия от всяко приложение, което обезсмисля първоначалната идея като се възползва от DLL като стандартен модул, след като се съхранява в паметта и споделя от много приложения. Освен това, с този опит, след коригиране на грешки в DLL, или възстановите системата от няколко различни файла DLL, носещ същото име, и изпълняват същата функция, се увеличава и автоматична актуализация версия или грешка корекцията става невъзможно.

История на проблема

Този проблем възниква в по-ранни версии на Microsoft Windows.

С подобни проблеми, възникнали по-ранни версии на Mac OS X. но използването на други технологии. Не се избегне дистрибуторите на библиотеки с отворен код подобни проблеми.

Проблемът е постоянно повтаря, когато програмата се опитва да се движат по грешен DLL, С, който е бил тестван, което показва оригиналния покварата на общата концепция, която позволява произволни резервни версии на модулите.

Мерки срещу DLL ада

Тези мерки се препоръчва да вземат едно и също време, за да получите най-добри резултати:

  • изчисли контролна функция код, наречен от DLL - за сравнение на функцията за контролна сума се използва при писане на програми.
  • Операционната система трябва да бъде предаден заедно с управителя на пакет, за да може да се проследи всички DLL взаимозависимостта на, с използването на пакетния мениджър трябва да бъдат насърчавани и отделна инсталация DLL - отхвърли възможно.
  • Централизирано разпределение на библиотеките
  • Предотвратяване на възможността за паралелно използване на множество версии на същия DLL [msdn.microsoft.com/library/default.asp?url=/library/en-us/sbscs/setup/side_by_side_assemblies.asp].
  • Когато софтуер модификация за лично ползване и предоставяне на модифицирана версия на DLL.
  • По време на проектирането DLL трябва да бъде внимателно обмислена концепция за функции и версии.
  • DLL не трябва да се използва без да е необходимо, и библиотеки, свързани само с една молба трябва да се свързва статично (в EXE-файл).

DLL ада като мотивация .NET проект

Напиши мнение за статията "DLL ада"

пасаж, описващ DLL ада

- Не мисля, че по това време - каза той - аз не бих дошъл, но имам сделка - каза той студено ...
- Не, аз съм просто се чудех как ти дойде на полка. - «ДАНС ООН момент JE СУИС на ву», [Веднага съм на ваше разположение] - той се обърна към гласа му се обажда.
- Виждам, че не съм в момента - повтаряща Ростов.
Изразяване на раздразнение вече беше изчезнал в лицето на Борис; очевидно мисли отново и да вземе решение какво да прави, той взе специална спокоен двете си ръце и го въведе в съседната стая. Борис очи, спокойно и твърдо гледа отгоре Ростов бяха като готови от това, като че ли някаква затвора - сини очила общежитие - бяха поставени пред тях. Така че изглежда Ростов.
- О, съвсем, моля те, ако не може да бъде навреме - каза Борис. - Борис го въведе в стаята, където се сервира вечеря, беше въведен на гостите, той описва и обяснява, че той не е бил цивилен, но служител на хусар, стария си приятел. - граф Жилина, графе N.N. ле Капитан Сандвичеви острови [Граф NN Капитан SS] - той нарича гости. Ростов изглеждаше намръщен французите неохотно се поклони и не каза нищо.
Жилина, очевидно не приеха с радост този нов руски човек в кръга си и не каза нищо за Ростов. Борис не изглежда да забележите, че инцидент ограничение върху новия субект и същ приятен хладнокръвието и zastlannostyu в очите, с която се е запознал Ростов, се опита да оживи разговора. Един от французите изпрати общи учтивост към французите упорито мълчи Ростов и му казал, че е вероятно да видим на императора, той е дошъл да Тилсит.
- Не, имам нещо - отвърна кратко Ростов.
Ростов не е направена в духа веднага след забеляза неодобрението по лицето на Борис, и както винаги се случва с хора, които не са в духа, изглежда, че всичко враждебен поглед към него и че всичко, което пречи. И наистина го предотвратени всички и остана една е отново последвалата обща дискусия. "И защо той седи тук?", Каза възгледи, която го издава. Той се изправи и се приближи до Борис.
- Но ще се колебайте - каза му тихо, - нека да отидем, нека да говорим за случая, и ме няма.
- Не, ни най-малко, каза Борис. И ако сте уморени, нека да отидем в моята малка стая и отиде да си почине.
- Всъщност ...
Те влязоха в малката стая, където спеше Борис. Ростов, без да седна, веднага раздразнен - ​​като Борис е виновен, отколкото който и да е пред него - започна да го каже на въпрос Денисов, питам, ако искат да, и ако той може да поиска Денисов след общото му в император, и чрез него да достави писмо. Когато останаха сами, Ростов за първи път осъзнах, че това е неудобно да изглежда в очите на Борис. Борис с преметнал крак връз крак и гали лявата си ръка; тънки пръсти на дясната си ръка, слушах Ростов, като общо се вслушва в доклада на подчинен, а след това отмести поглед, а след това със същата zastlannostiyu в очите му гледа право в очите на Ростов. Ростов, когато се чувствах неловко и той сведе очи.
- Чух за този вид неща и знам, че императорът е много стриктен в тези случаи. Мисля, че не би трябвало да доведе до Негово Величество. По мое мнение, би било по-добре да се пита директно командира на корпус ... Но така или иначе, мисля, че ...
- Така че не искам да правя, просто казваш! - Ростов почти извика, не търси Борис в очите.
Борис се усмихна: - Напротив, аз ще направя каквото мога, но си мислех ...
По това време, на вратата чу се гласът на Жилина, който нарича Борис.
- Добре, давай, давай, давай ... - каза Ростов, и отказва да вечеря и оставен сам в малка стая, тя е дълга разходка го назад и напред, слушане на весели френски разговор от съседната стая.