Beyond 2.8 - namespaces

Derek Atkins warlord at MIT.EDU
Wed Jan 3 11:51:00 EST 2018

Aaron Laws <dartme18 at> writes:

>      It would, of course, require a casual user (single desktop
> user with one data file) to have to have a server and client process
> running. In general, I think it would be a needless source of complexity
> since the earlier approach I mentioned (single-processes communicating with
> the database directly) works just fine.

In the single-user/desktop case, the application can spawn the server
sub-process if it's not already running, and the server sub-process can
exit when it has no connections.

> That said, as Mr. Ralls mentioned, separation of business logic and GUI
> logic is a high-priority development goal, but happens to be a colossal
> task in Gnucash.

Agreed.  A true MVC with complete disconnection of business logic means
a less-usage UI.  You want the UI to be able to inform the user as soon
as possible that there is an "error" in their input.  On the other hand,
you want that error-checking to be done in a way that *ANY* UI can
leverage it (e.g. is my split transaction balanced?).  There-in lies the
difficulty and challenges, because different UIs are going to want to do
that checking in different ways.

For example, on a webui you would want to have that checking done in
Javascript, whereas the Gtk frontend would want a C/C++ function call.
If everything is REST (or REST-like) then you MAY be able to perform
intermediary "validate" calls somewhere along the way to provide more
real-time feedback.  You may not want to wait until the end to perform
the validation.

       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL:    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list