 |
.NET's Approach
|
 |
The reason why these libraries
fall prey to DLL Hell is that neither the applications nor the
libraries they use are self-containing or self-describing and
uncontrolled component sharing.
.NET vs. DLL Hell
- All applications are self-describing. This
eliminates the central registry, and thus simplifies
install replication and uninstall.
- Version information regarding application
library usage and the libraries themselves are enforced,
to ensure that applications load the appropriate version
of the libraries they need.
- .NET remembers the "last known good"
- the last component and version combination known to
have successfully worked with an application.
- .NET supports "side-by-side".
Component callers may explicitly specify the version they
need to load, or may allow .NET freedom to locate the
most recent version of a component they need. This means
that multiple versions of the exact same component may
exist on a system without conflict with each other.
- The .NET Framework itself is
versioned in this manner. Hence, it too can be
upgraded and improved without fearing system
breakdown.
- Isolation of applications are supported.
Changes libraries internal to one application have no
effect on another (more or less given). Changes to shared
libraries used by multiple applications will only affect
those applications that allow it.
.NET accomplishes this through its basic unit
of logical functionality: the "assembly".
References: D