Ik ben vandaag kort bezig geweest met wat analyse en ik heb een nieuw schema geschreven wat volgens mij meer doordacht is dan het vorige.
Uitleg van schema:Blauwe pijlen: deze verbindingen gebeuren altijd
Groene pijlen: deze verbindingen gebeuren alleen bij lokaal gebruik van het programma (zonder serverarchitectuur)
Oranje pijlen: deze verbindingen gebeuren alleen bij een serververbinding
Voorbeeld van Lokaal gebruik- gebruiker beheert een winkel en gebruikt hiervoor 1 computer
- de database bevindt zich dus op dezelfde computer als die waar het programma draait
- om het proces zo transparant (makkelijk) mogelijk te maken is een server daemon niet nodig bij lokaal gebruik
- de grafische interface van het programma roept functies aan in libqashflow (dit is een verzameling van source files)
- libqashflow is dus het eigenlijke programma; er wordt gestreefd naar een modulaire interface zodat veranderingen aan de GUI makkelijk toegepast kunnen worden, of zodat er eventueel later een andere GUI kan geschreven worden (
ik weet wel niet in welke mate het mogelijk is om een Gtk interface te schrijven; maar zou wel mogelijk moeten zijn; Qt libraries zijn wel sowieso nodig, ook als er een Gtk interface wordt geschreven, want de rest van de programmacode is volledig Qt (Qt is meer dan alleen maar een grafische toolkit))
- de client libraries roepen de database handler aan wanneer er iets moet veranderen in de database of worden uitgelezen van de database
- deze database handler gaat dan effectief de gevraagde acties uitvoeren op de database op de lokale computer
Voorbeeld van Serverarchitectuur- gebruiker beheert een grote winkel en gebruikt hiervoor meerdere computers (aan de kassa staat een computer die enkel dient om verkopen in te geven; een andere computer wordt gebruikt door de beheerder waarmee alles beheerd kan worden)
- om dit systeem te kunnen hanteren moet er een serversysteem ingericht worden: deze server daemon zorgt ervoor dat meerdere gebruikers simultaan met het programma kunnen werken
- de database bevindt zich dus mogelijk op een andere computer als die waar de clientprogramma's draaien (maar het kan zich ook op één van de clientcomputers bevinden)
- de grafische interface van het programma roept functies aan in libqashflow (dit is een verzameling van source files)
- net zoals bij een gewone clientverbinding verbindt een client met client libraries
- de client libraries roepen in het geval van een serverarchitectuur niet rechtstreeks de databasehandler aan, maar geven de acties door aan de server daemon
- de server daemon verifieert gegevens en roept de database handler aan om daadwerkelijk database acties uit te voeren op de database op de server

Ik heb ook een nieuw icoon ontworpen in Inkscape:

En een paar versies van een volledig logo (Inkscape + Gimp):
1.

2.

3.

4.

En tenslotte een screenshot van een
testinterface die ik heb ontworpen in Qt4. Ik ben van plan om een QSS (Qt Style Sheet) te gebruiken als standaardinstelling om het programma zijn eigen stijl te geven. Maar de standaardstijl van het systeem (Linux: Qt; Windows: Native; Mac OS X: Native) zal ook kunnen overgenomen worden (er zal daarvoor dan een optie verschijnen in de instellingen)
Native Qt4 Style

QSS Style Sheet

--------
En nu is het aan jullie..Ik zou graag enkele reacties/opmerkingen horen van jullie over:
1. het nieuwe schema: zit het goed ineen? of heb jij nog andere ideeën?
2. serverarchitectuur vs lokaal gebruik: is het logisch om bij lokaal gebruik geen server daemon te gebruiken, maar rechtstreeks de database handler aan te roepen, of zou het beter zijn om altijd een server daemon te hebben, en bij lokaal gebruik gewoon een lokale verbinding in te stellen met deze server daemon (maar in dat geval denk ik aan onnodig ingewikkelde instellingen voor eindgebruikers wanneer deze gewoon een simpele setup op 1 computer willen) -- dus wat is jouw mening daarover?
3. icoon en logo's: ik weet dat het counter-intuïtief is om me eerst met grafische stuff bezig te houden, maar zonder die grafische details voel ik me rot

maar mijn vraag is: wat vind jij van het icoon en welk logo ziet er het beste uit? Of hoe kan het logo nog verbeterd worden? (en als je weet hoe je dat doet in Inkscape of Gimp, zet dat er dan ook ff bij, want ik ben nog steeds slechts een knoeier op dat gebied

)
4. look van het programma: standaard de eigen "qashflow" style sheet gebruiken? (ziet er op elk platform hetzelfde uit en is volledig afgestemd op qashflow) of standaard liever de native stijl van het platform? (ziet eruit zoals de andere programma's op het platform (Qt/OSX/Windows))