Re: [gnome-db] more refactoring



Hey Rodrigo, as someone that uses libgda in yet another project I support this idea. I have at the moment done lots of cunning things in makefiles and dynmic loading of shared libraries to allow swtiching between native database support or gnome-db.
So this makes life a lot easier.

I've never seen glib as a bad dependence. Its widely supported on different platforms and its very design is to be cross plateform tool, not something that hampers dependences.


Hi

In the last weeks, I've been talking with many people about libgda usage
in other projects, and, so far, one of the big concerns I've been told
about is its long list of dependencies, specially the CORBA ones (ORBit,
OAF, Bonobo). So, I've been thinking about making (yet) another
structural change, but which won't affect at all neither the current API
nor the apps that use it.

I'm talking about removing the CORBA layer, and replace it with a simple
plugin system, where providers will just be shared libraries that are
loaded via GModule API (in Glib). Doing this will:

* reduce our dependencies to glib and gnome-xml, both available on many
platforms. Of course, plugins will still depend on the specific DBMS
libs, but as they will be dynamically loaded, there is no need to link
libgda against the DBMS libs.

* make it usable for many projects, specially the ones I am concerned
about: Mono (both in linux and in windows) and GNOME Office, where
having libgda depend on CORBA stuff makes it hard to use for many of the
GO apps (Abiword, which is cross-platform, for instance).

* simplify things a lot, both in the code, in the performance, and in
the possibility of compiling/using it in many GNOME-unrelated platforms
(Windows, Mac OS, embedded devices, etc)
* we won't lose the CORBA ability of distributing libgda apps, since we
can easily wrap all the architecture (a tiny library) into a CORBA
server, and have it available for people wanting to use the CORBA stuff
of libgda.

* we won't have API problems, since in the GNOME 2 version, all CORBA
stuff is hidden in libgda internals, so this change will mean just
replacing the internals with just a few API changes. Also, providers'
code will need just a few (or none at all) changes.

So, how does this sound? Any concern/suggestion/opinion?

cheers







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