[gnome-db] more refactoring



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
-- 
Rodrigo Moya <rodrigo gnome-db org> - <rodrigo ximian com>
http://www.gnome-db.org/ - http://www.ximian.com/



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