Dll iad - l

DLL iad (DLL-coșmar, literalmente: DLL -ad) - impas asociat cu controlul dinamic al DLL în sistemul de operare Microsoft Windows.

O problemă similară în alte sisteme de operare este numit Dependență iad.

Esența problemei este conflictul de versiuni DLL concepute pentru a sprijini anumite caracteristici. DLL iad - un exemplu de concepte de programare proaste, care, ca o mină ascunsă, ceea ce duce la o creștere bruscă a dificultăților prezentate de o complicație și îmbunătățirea sistemului.

Descrierea problemei

Conform planului inițial, DLL ar trebui să fie consecvente de la o versiune la alta și interschimbabile pe ambele părți.

Punerea în aplicare a mecanismului DLL este de așa natură încât incompatibilitatea și non-fungibilitatea devine regula, mai degrabă decât excepția, ceea ce duce la o mulțime de probleme.

  • Lipsa unor standarde pentru numele și poziția DLL versiune în structura de fișiere conduce la faptul că DLL incompatibil înlocui cu ușurință sau dezactiva reciproc
  • Lipsa standardelor în procedura de instalare conduce la faptul că instalarea de noi programe care să conducă la DLL de înlocuire care rulează în versiuni incompatibile
  • Lipsa de sprijin din verigile DLL și mecanisme de protecție conduce la faptul că DLL incompatibile pot avea același nume și versiunea
  • Nu există instrumente standard pentru a identifica și controla utilizatorii de sistem DLL și administratori
  • Utilizarea DLL separat pentru comunicarea între sarcini duce la instabilitate de aplicații complexe

Pentru a evita conflictele utiliza DLL multe copii redundante ale fiecărei cereri, care neagă ideea inițială de a profita de DLL ca un modul standard, odată ce sunt stocate în memorie și partajată de mai multe aplicații. În plus, cu această experiență, după corectarea erorilor în DLL, sau pentru a restaura sistemul de la un număr de diferite DLL dosar, care poartă același nume, și de a efectua aceeași funcție, crește și actualizare a versiunii sau eroare corectarea automată devine imposibilă.

Istoricul problemei

Această problemă a apărut în versiunile anterioare de Microsoft Windows.

Cu probleme similare întâlnite în versiunile anterioare ale Mac OS X. dar folosind alte tehnologii. Nu evita distribuitorii de biblioteci deschise Source astfel de probleme.

Problema se repetă în mod constant în cazul în care programul încearcă să ruleze pe DLL greșit, c care a fost testat, care arată depravarea originală a conceptului general, care permite versiuni de înlocuire arbitrare ale modulelor.

Măsuri împotriva iad DLL

Se recomandă ca aceste măsuri să ia în același timp, pentru a obține cele mai bune rezultate:

  • calcula suma de control a codului funcției DLL este numit - pentru a compara funcția de control utilizată la scrierea de programe.
  • Sistemul de operare trebuie să fie livrat împreună cu managerul de pachete pentru a fi capabil de a urmări toate interdependenței DLL, cu utilizarea managerul de pachete ar trebui să fie încurajate și DLL-ul de instalare individuale - respins posibil.
  • distribuție centralizată a bibliotecilor
  • Preveni posibilitatea utilizării în paralel a mai multor versiuni ale aceluiași DLL [1].
  • Atunci când modificarea software pentru uz personal și de a oferi o versiune modificată a DLL.
  • În timpul de proiectare DLL trebuie să fie luate în considerare cu atenție conceptul de funcții și versiuni. DLL nu ar trebui să fie folosit fără a fi nevoie de, și bibliotecile asociate cu o singură aplicație ar trebui să fie conectate static (în EXE-fișier).

DLL iad ca proiect motivație .NET