[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [DotGNU]dll hell

From: Rhys Weatherley
Subject: Re: [DotGNU]dll hell
Date: Sun, 22 Jun 2003 13:38:17 +1000
User-agent: KMail/1.4.3

On Sunday 22 June 2003 01:22 pm, john bailo wrote:
> dot net promises to deliver us from dll hell
> but ms dotnet compiles to dll ' s

The "dll hell" that MS promises to deliver us from is that of DLL versioning.  
With regular DLL's, it is very easy to overwrite a newer version with an 
older one, and mess up the applications that depended upon the newer one.

The MS implementation "solves" (if that's the right word :-) ) this problem by 
allowing multiple versions of the same DLL to exist side by side in the 
system.  Applications are strongly bound to the DLL versions that they rely 
upon, so that (theoretically) an application will always get the version it 
wanted, even if other versions exist on the system.

i.e. MS has re-invented the shared object versioning that has existed in Unix 
for quite some time. :-)

This tends to fall apart when you move to other CLR implementations, which 
won't necessarily use the same version numbers.  i.e. they've replaced the 
hell of overwritten binaries with the hell of mis-matched version numbers 
across implementations.

> what does dotgnu offer?

Right now, we don't support DLL versioning - the version numbers are present, 
but ignored by the runtime engine.  All of the library assemblies are in the 
one directory.  I'm investigating how to handle multiple versions of the same 
thing, while remaining compatible with MS-compiled programs.  It's kind of 
moot until the runtime engine stablises anyway.

For the time being, if you want to run several versions side-by-side, you need 
only install them in separate directories and set the CSCC_LIB_PATH 
environment variable to specify the location of the libraries you want to 

> what is the equivalent of a dotnet windows service?  a daemon?

Probably.  There's nothing that prevents the DotGNU Portable.NET runtime 
engine from being run as a daemon, since a daemon is just a process like any 
other under Unix.

The equivalent of "web services" is DGEE, which you can read about on our web 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]