[Mono-devel-list] GAC (design) issues

Todd Berman tberman at sevenl.net
Mon May 3 04:44:25 EDT 2004


On Mon, 2004-03-05 at 10:14 +0200, Gert Driesen wrote:
> ----- Original Message -----
> From: "Todd Berman" <tberman at sevenl.net>
> To: "Gert Driesen" <gert.driesen at pandora.be>
> Cc: "Ian MacLean" <ianm at activestate.com>; "Carl-Adam Brengesjö"
> <ca.brengesjo at telia.com>; <mono-devel-list at lists.ximian.com>
> Sent: Monday, May 03, 2004 8:53 AM
> Subject: Re: [Mono-devel-list] GAC (design) issues
> 
> 
> > On Mon, 2004-03-05 at 08:08 +0200, Gert Driesen wrote:
> > [snip]
> > > What I really don't understand is that you're saying that no one in the
> Mono
> > > team has experience in using the MS GAC, but still you're confident
> enough
> > > that you'll do a better job at implementing it than MS. I really wonder
> why
> > > the Mono team chose to take a departure from MS compatibility at this
> point
> > > in time.
> > >
> >
> > As far as no one having experience with the MS GAC, I dont think you can
> > presume to know that. Not only are many of the ximian mono developers on
> > windows all the time, lots of the active contributors have pretty
> > extensive win32 experience.
> 
> Not that this really matters, but let me quote Miguel on this : " Let me
> start by saying that -we- the Mono team have relatively
> little experience with the GAC"
> 
> Its not about scoring points here : I just want to make sure you know what
> the consequence of these design decisions are...
> 
> >
> > I dont see the departure at all personally. If anything you are taking
> > advantage of some peculiarities of the ms implementation which are
> > shortcuts to doing the right thing.
> >
> > Again, you havnt explained why at all you *need* to reference the
> > assembly via its path. If you know what version you want an
> > Assembly.Load ("AssemblyName, Version=whatever") will work exactly as
> > expected.
> 
> Ofocurse, so you're asking users to specify the full qualified assembly name
> on the command line ?
> 
> meaninng : mcs /r:System.Data, Version=...,Culture=....,PublicKeyToken=...
> 
> This definitely is crazy, but even then its better than having your compiler
> guess what assemblies you want to reference ...
> 

or just mcs /r:System.Data
have you guys even tested this? I can say that MonoDevelop (arguably the
largest mono project available right now) compiles, and runs *perfectly*
with this gac setup. the build system required *no* changes, and the
only changes required to the runtime was *changing* gac assumptions that
#D makes about the windows GAC.

> >
> > And if you *dont* know what version you want, how can you be picky about
> > what you get back?
> 
> Ofcourse you need to know what version you want ...
> 

Well, then do: mcs /r:System.Data, Version=whatever when (and not if)
that gets implemented. For now its not there, but it will be.

> >
> > > I really get the impression that the GAC implementation was rushed in
> ...
> > >
> >
> > I dont believe it is being rushed in at all, however waiting any longer
> > would have been a bad idea as well.
> 
> My point is : why implement it different from MS ?  Are you really sure that
> the Mono implementation of the GAC is better, and easier to manage than the
> MS implementation ?  And even if it is : what happened to compatbility ?
> And lets not forget : for any other existing .NET tool which works with
> assembly references developers will need to specifiy the full path to an
> assembly (or the fully qualified assembly name) anyway ...
> 

Ok, here is what I don't get. We implement it the same as MS, what we
dont do is replicate every implementation detail of their SDK. Note,
thats the SDK not the framework itself.

And no, any other existing .NET tool that operates on assembly
references will not be affected assuming they are writing proper code.
In fact, MCS itself is most likely going to change from using that
LoadFromGac method to something else to be even more correct, however
the implementation itself is being worked out.

For the 7th time (slight exaggeration), will you *PLEASE* explain why
getting the absolute path to the assembly is so important to you? You
keep explaining that you need it, without explaining why you need it. In
my (intentionally uninformed, as you wont explain) opinion, you are
doing something that takes advantage of the ms.net sdk's implementation
details (like pathing) and are irritated that you might have to refit
that code to actually work properly. I would love to be wrong, please
help me understand.

--Todd

> Gert
> 
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list




More information about the Mono-devel-list mailing list