[gnome-db] plans



Hi!

After a couple of weeks without working on gnome-db/libgda, I'm back to
it.

And well, I've decided on the plans for future development, so here they
are, in case somebody is interested.

As I said some time ago, my mind wasn't clear on what to do for GNOME 2
development, so, after thinking a bit about it, I've decided to use the
porting as an excuse to refactor libgda/gnome-db.

The plan is to keep the current stable version as it is, work on the
refactoring, and when GNOME 2 time comes, if we've got the refactoring
working enough, we'll switch to it; if not, refactoring will continue
and a simple port to GNOME 2 will be done for the stable version. By a
"simple port" I mean just getting the stable version, compile in GNOME 2
and fix only the problems that arise, that is, no GtkObject->GObject
switch, no use of new features, etc. As I also said some time ago, GAL
is being ported with this technique, and if GAL can be ported,
GNOME-DB/libgda can also in an easier way, since the code is not so
GTK-dependent.

For the refactoring:
* I've created a GdaDataModel abstract class and will be making a lot of
stuff on both libgda/gnome-db depend on this. Data-bound list widgets
will use GdaDataModel-based classes to display data, which will a) make
us independent of the source of the data, and b) let us use the nice new
grid widget (at last!) for all lists in the UI (provider list,
connection list, recordsets, etc). This will save us a lot of work and
will make all the UI very consistent.
Also, this means libgda/libgnomedb can be easily extended. If, for
instance, you want to display data from a source not supported by
gnome-db, you'll just have to write a GdaDataModel-based class, and all
of libgda/gnome-db will undesrtand this data

* I've simplified a lot the IDL interfaces, and I've added new nice
interfaces, such as the GNOME::Database::Client one, which will be
implemented by GDA clients, and which allow us to send notifications
from providers to clients, and other interesting things

* stuff is separated in 3 modules (CVS HEAD for all of them): libgda,
libgnomedb (the widgets library) and gnome-db, which will be a mix of
what the GNOME-DB front-end and gASQL are right now.

The code being refactored does not even compile, so unless you want to
help me, don't use it for anything. Also, if somebody wants to help,
please tell me on what, and I'll explain you the current mess in CVS :-)
Also, please note that if you want to have your super-feature included
in gnome-db, this is the time to say it/implement it, as I am in the
beginning of the refactoring process.

Also, I want to note that, because of the little time I've got to work
on gnome-db, I will "abandon" the stable version, unless somebody wants
to help. Abandoning it means that no new features/developments will go
to it, only bug fixes. I'm not against adding new stuff, it's only that
I won't be doing it myself :-)

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]