symlink.ch
Wissen Vernetzt - deutsche News für die Welt
 
symlink.ch
FAQ
Mission
Über uns
Richtlinien

Moderation
Einstellungen
Story einsenden

Suchen & Index
Ruhmeshalle
Statistiken
Umfragen

Redaktion
Themen
Partner
Planet

XML | RDF | RSS
PDA | WAP | IRC
Symbar für Opera
Symbar für Mozilla

Freunde
Benutzergruppen
LUG Switzerland
LUG Vorarlberg
LUGen in DE
SIUG
CCCZH
Organisationen
Wilhelm Tux
FSF Europe
Events
LinuxDay Dornbirn
BBA Schweiz
CoSin in Bremgarten AG
VCFe in München
Menschen
maol
Flupp
Ventilator
dawn
gumbo
krümelmonster
XTaran
maradong
tuxedo

 
Microsoft verspricht das Ende der DLL-Hölle
Veröffentlicht durch maol am Dienstag 11. Maerz, 15:23
Aus der dem-Teufel-die-Seele Abteilung
Programmieren Wie ZDNet in einem Feature-Artikel (deutsche Zusammenfassung) beschreibt, wird ab Windows Server 2003 das Problem mittels Strong Binding gelöst: "Strong binding means an application or component can bind to a specific version of another component, so you can reuse components or use them in isolation."

Das ist also genau das, was unter Unix schon lange mit den verschiedenen Library-Versionen funktioniert, wie die Lib selbst nur ein Symlink ist auf die aktuellste Version.

Swisscom wird WLAN-Multi | Druckausgabe | Windenergie aus der Sahara  >

 

 
symlink.ch Login
Login:

Passwort:

extrahierte Links
  • ZDNet
  • Feature-Artikel
  • deutsche Zusammenfassung
  • Mehr zu Programmieren
  • Auch von maol
  • Diese Diskussion wurde archiviert. Es können keine neuen Kommentare abgegeben werden.
    Freut mich... (Score:1)
    Von db (dani [at] raffzahn [dot] ch) am Tuesday 11. March, 16:28 MES (#1)
    (User #1177 Info)
    dass auch Microsoft mal einen Schritt in die richtige Richtung macht!
    fantastisch! (Score:0)
    Von Anonymer Feigling am Tuesday 11. March, 16:30 MES (#2)
    ..wie lange hat microsoft nun gebraucht, um das zu implementieren?

    Kam windows 95 wirklich 1995 raus? ist das scho sooo alt? :)
    Boah! (Score:2)
    Von tr0nix am Tuesday 11. March, 16:39 MES (#3)
    (User #741 Info) http://www.secuserv.ch
    Hey das ist ja fantastisch! Eine Revolution! Ein Killerfeature! Wie der Papierkorb, Active-Directory und natuerlich die Windows-Shares! Wieso hab ich so ein Deja-vue...?


    ----------------
    Wer gegen ein Minimum
    Aluminium immun ist, besitzt
    Aluminiumminimumimmunität
    Re:Boah! (Score:1)
    Von idiot am Tuesday 11. March, 17:22 MES (#5)
    (User #1198 Info)
    ....oder der KDE Desktop ;) scnr, idiot
    Nur für .net Components? (Score:1)
    Von idiot am Tuesday 11. March, 17:21 MES (#4)
    (User #1198 Info)
    So wie ich den englischen Artikel lese, gilt die Neuerung nur für .net Components. Das heisst, dass nur .net Programme von diesem Fortschritt profitieren werden.
    Re:Nur für .net Components? (Score:2)
    Von NoSuchGuy am Tuesday 11. March, 17:26 MES (#6)
    (User #97 Info)
    Aber aus Kompatibilitätsgründen wird das alte System mindestens noch 4 Jahre mitgeschleppt, damit alte Software/Module noch lauffähig sind bzw. bleiben.

    NSG
    --
    "In keinem Bereich menschlicher Leistungen sind so schlechte Ergebnisse erzielt worden wie in der Politik!"
    Re:Nur für .net Components? (Score:1)
    Von db (dani [at] raffzahn [dot] ch) am Tuesday 11. March, 17:48 MES (#8)
    (User #1177 Info)
    Läuft also aktuelle W32-software, die DLLs verwendet, noch genau 4 Jahre?
    Oder wie ist das zu verstehen?
    *gg*
    Re:Nur für .net Components? (Score:1)
    Von db (dani [at] raffzahn [dot] ch) am Tuesday 11. March, 17:28 MES (#7)
    (User #1177 Info)
    irgendwie müssen sie die Leute ja zwingen, sonst verwenden die noch in 10 Jahren die alte Windows-API (oder wie muss ich das jetzt ausdrücken?)..
    Re:Nur für .net Components? (Score:2, Informativ)
    Von alba7 (alexander.bartolich@gmx.at) am Tuesday 11. March, 20:01 MES (#11)
    (User #237 Info) http://fortune-mod-fvl.sourceforge.net/
    > irgendwie müssen sie die Leute ja zwingen,
    > sonst verwenden die noch in 10 Jahren die alte Windows-API

    Das ist genau anders rum. Microsoft schmeisst APIs grundsätzlich nicht weg. In der Regel gehen sie sogar so weit, den alten Code unverändert zu lassen, und neue Funktionalität in einer separaten Sedimentschicht zu implementieren.

    Windows XP unterstützt 16-bit DOS, 16-bit Windows, 16-bit COM, 32-bit Windows, 32-bit COM und demnächst .NET.
    --
    Ich bin ein Teletubby. Und das ist auch gut so.

    Re:Nur für .net Components? (Score:2, Informativ)
    Von Gandalf am Tuesday 11. March, 18:41 MES (#9)
    (User #544 Info)
    Ja, das gilt nur für .net.

    Das Ganze ist an sich recht einfach aufgebaut. Eine .net Applikation sucht nicht wie eine klassische Windows Applikation eine dll im gesammten Pfad (also beispielsweise im winnt\system32), sondern nur im Verzeichnis der exe Datei und in dessen Unterverzeichnissen. So können zwei verschiedene Applikationen in ihrem Verzeichnis jeweils die Version einer dll haben, die sie brauchen.

    Das ist aber nur die Hälfte. Damit nun nicht jede Applikation das .net Framework in einem Unterverzeichnis als lokale Kopie haben muss, existiert der Global Assembly Cache (GAC). In diesem sind alle Klassen des .net Frameworks an zentraler Stelle abgelegt. Hier können natürlich auch eigene Assemblies (das ist ein Resultat des Compiles, also eine dll oder auch eine exe) abgelegt werden, falls das gewünscht ist.
    Damit nun die Bemühungen von oben mit dem Einsatz des GAC nicht zu nichte gemacht werden, ist jedes Assembly mit seiner Version abgelegt. Das heisst, dass sich von einem Assembly zwei unterschiedliche Versionen befinden können (im Gegensatz zu den klassischen dlls im Windowsverzeichnis). Jede Applikation gibt beim anziehen einer dll an, welche Version sie genau haben will.

    Dieses Konzept lässt sich nicht einfach auf bestehende Applikationen anwenden, da die Schnittstelle zum Aufruf einer dll nicht vorsieht, die exakte Version anzugeben.
    Da in der Realität die dlls eben nicht wirklich abwärtskompatibel sind, werden alle klassischen Applikationen (und Windows selber) mit diesem Problem auch in Zukunft konfrontiert sein.
    Re:Nur für .net Components? (Score:1)
    Von alba7 (alexander.bartolich@gmx.at) am Tuesday 11. March, 18:56 MES (#10)
    (User #237 Info) http://fortune-mod-fvl.sourceforge.net/
    > [...] Jede Applikation gibt beim anziehen einer dll an, welche Version sie genau haben will.

    Nicht nur das. Da die Versionsnummer ein MD5 des Assemblies inkludiert, lässt sich das System durch umbenennen oder patchen der Versionsnummer nicht bescheissen. Das geht weit über die von *nix bekannten Symlinks hinaus.

    > Dieses Konzept lässt sich nicht einfach auf bestehende Applikationen anwenden, da die
    > Schnittstelle zum Aufruf einer dll nicht vorsieht, die exakte Version anzugeben.

    Na, ja. An sich schon. NTFS hat echte Symlinks (Kernel-Implementierung). Seit Win95 gibt es die Verknüpfungen (Userspace-Implementierung). Und in der Version-Resource einer PE-Datei ist die Versionsnummer binär mit 4 Integern angegeben. Es sind also alle Zutaten für die *nix-artige Symlinklösung vorhanden.

    Aber aus irgendeinem Grund müssen die bei MS ständig das Rad neu erfinden.
    --
    Ich bin ein Teletubby. Und das ist auch gut so.

    Re:Nur für .net Components? (Score:1)
    Von SrmL (dwsl@dur.ch) am Wednesday 12. March, 01:12 MES (#13)
    (User #17 Info) http://dur.ch/
    Nicht nur das. Da die Versionsnummer ein MD5 des Assemblies inkludiert, lässt sich das System durch umbenennen oder patchen der Versionsnummer nicht bescheissen. Das geht weit über die von *nix bekannten Symlinks hinaus.

    Grandios. Und wie kann man ein Security-Fix einspielen? Man möchte ja nicht das ganze System updaten müssen, nur weil sich eine der Kernkompnenten geändert hat.

    Re:Nur für .net Components? (Score:1)
    Von Seegras am Wednesday 12. March, 09:44 MES (#14)
    (User #30 Info) http://www.discordia.ch
    Grandios. Und wie kann man ein Security-Fix einspielen?

    Dank der neuen Suchfunktionen findet man ja in Zukunft Dateien viel besser, und da muss man also nur sämtliche DLL's die nun quer im system verteilt sind suchen und updaten. So einfach ist das
    --
    "The more prohibitions there are, The poorer the people will be" -- Lao Tse

    Re:Nur für .net Components? (Score:1)
    Von maol (maol@symlink.ch) am Wednesday 12. March, 09:50 MES (#15)
    (User #1 Info) http://www.maol.ch/
    Wenns denn so einfach wäre. Das Problem ist eher, dass Programm A.EXE die B.DLL braucht, und zwar in der Version mit md5sum aba8a21eac910. Was passiert nun, wenn diese DLL ein Update erfährt...

    Vermutlich müssen deshalb auch alte Versionen auf dem System bleiben, was eigentlich nicht so geil wäre. Oder das Update der DLL hat dieselbe md5sum, was genausowenig geil wäre.

    Marketing.

    --
    CRUX: LfS für faule Profis.

    Re:Nur für .net Components? (Score:1)
    Von 2ri (arthur.at.korn.ch.ban.spam) am Wednesday 12. March, 13:27 MES (#16)
    (User #20 Info)
    Es benutzt kryptographie, es ist besser! :)
    auch mit gleicher versions-nummer ? (Score:1)
    Von nu-k-ar am Tuesday 11. March, 22:23 MES (#12)
    (User #1087 Info)
    oder auch mit interop-komponenten ?
    (die welche trotz .EndOfDllHölleHölleHölle in der registry sind )

    dabei sind sowieso 2780 bugs drin sowie 45000 feature's -> auch bug's

    .Marketing


    Linux User Group Schweiz
    Durchsuche symlink.ch:  

    Never be led astray onto the path of virtue.
    trash.net

    Anfang | Story einsenden | ältere Features | alte Umfragen | FAQ | Autoren | Einstellungen