[Mono-list] Mono.Data.TdsClient assemblies

tim@timcoleman.com tim@timcoleman.com
Tue, 12 Nov 2002 14:27:16 -0500


This afternoon, in a bout of sheer frustration, I thought I would try to
compile Mono.Data.TdsClient.Internal into its own assembly.  Then, if
I mark all of the classes as public instead of internal, and reference
them within the compile of each of System.Data, Mono.Data.TdsClient,
Mono.Data.SybaseClient, those assemblies will be able to access the
internal protocol assembly.  They will not export the symbols from
that assembly (ildasm doesn't show any trace of 
Mono.Data.TdsClient.Internal).

The only real code changes I need to make are removing references to
System.Data from Mono.Data.TdsClient.Internal (don't ask me why those
references are there, they aren't used for anything), and changing
the internal classes to be public.

This will compile on both Windows and Linux, and does not require the
module support that we were waiting for from mcs.  If people are
okay with this, I will go ahead and move things around so that we can
get going on this.  I've been reluctant to do any work in 
Mono.Data.SybaseClient and Mono.Data.TdsClient until they can build 
together with System.Data on Linux, something that is currently 
impossible.

Basically, what we would have is something like
1. Mono.Data.TdsClient.Internal.dll
2. Mono.Data.TdsClient.dll
3. Mono.Data.SybaseClient.dll
4. System.Data.dll

Where 2,3,4 reference 1.  Another point to be made is, now that
the classes are not internal, should a better name be made for
the assembly?  Something like Mono.Data.TdsClient.Protocol.dll, 
Mono.Data.Tds.Protocol.dll, or Mono.Data.Tds.dll?  This point isn't 
so important.

Finally, if we do decide that this is best, should the code
remain where it is, and have the Mono.Data.TdsClient directory
build two assemblies, or should the Mono.Data.TdsClient.Internal
code be moved out?  (In the latter case, we'll have to see if
Miguel is in a good mood ;-) ).

Cheers,

-- 
Tim Coleman <tim@timcoleman.com>                       [43.43 N 80.45 W]
BMath, Honours Combinatorics and Optimization, University of Waterloo
Software Developer, Global Services, Open Text Corporation
"Under capitalism, man exploits man.  Under communism, it's just the
 opposite." -- J.K. Galbraith