[Mono-list] Some questions about shared assemlies, strong names...

Fergus Henderson fjh@cs.mu.OZ.AU
Mon, 5 May 2003 23:49:20 +1000

On 05-May-2003, Paolo Molaro <lupus@ximian.com> wrote:
> On 05/05/03 Fergus Henderson wrote:
> > But often organizations will not be willing to use different names
> > even when a conflict is identified.  For example, do you think
> > Microsoft will stop using the name "mmc.exe" just because the Mercury
> > compiler used it first?  Or will the Mono project stop using the name
> > "mono.exe" just because some other groups were using it already?
> > 
> > The strong name solution allows two conflicting assembly names to coexist.
> Yes, though they solve the issue for *assemblies*, program names clashes
> are not addressed by strong names... So we need to educate developers to
> use sensible names for their programs anyway.

By "program names", do you mean "names of *.exe files",
or do you mean "names referred to in program source code"?
Actually both of these are problems, and neither is directly
addressed by strong names.

However, the second of these is not too bad.
Since all names in the .NET CLR are namespace-qualified,
name clashes in names referred to in program source code can only
occur if there is a clash between two namespace names.
Namespace name clashes are not as much of a problem as clashing DLL names,
because they only cause trouble if the two different clashing names are
both referred to from the same source file, which is a lot rarer than
referring to them both from the same program, or just having them both
installed in the PATH on the same system.
Also, if they occur, they can be worked around by splitting up
the offending source file, or by writing a wrapper around one of
the two namespaces whose names clash.

Names of *.exe files are a more difficult issue...

Fergus Henderson <fjh@cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.