Wohin mit welcher Logik?
-
Welche Logik sollte im UI und welche weiter unten im Programm/Server sein?
Würdet ihr unterscheiden, ob es sich um eine "normale" oder Client Server Anwendung handelt?Eingabeprüfung (ist String eine Zahl?...): UI (oder vlt doch auf Server?)
Berechtigungsprüfung: UI (z.B. nicht Anzeigen von Löschbutton) oder Anwendung/Server (prüfen und Fehlermeldung zurückgeben)?
Berechnungen (Gesammtkosten...) Anwendung/Server
-
Der Server sollte alle Prüfungen selber auch nochmal durchführen, da ein Client grundsätzlich nicht vertrauenswürdig ist.
-
Sage ich auch mal. GUI ist GUI, sonst nichts.
-
Eingabeprüfung (ist String eine Zahl?...): UI (oder vlt doch auf Server?)
Die GUI koennts ja schonmal in einen int/float umwandeln, und der Server sollte nur eine Schnittstelle anbieten, welche Zahlen akzeptiert. Ist schliesslich GUI-Sache, wie der Wert eingegeben wird. Wenn das in der von dir eingesetzten Sprache nicht moeglich ist (keine starke Typisierung), dann .... na ja, siehe Mr. N.

-
Würdet ihr es bei einfachen Desktop Anwendungen auch so machen, dass die UI fast keine Logik hat? Wie würdet ihr das steuern, wann welcher Button aktiv ist? Soll das UI schauen ob alle Felder richtig ausgefüllt sind und dann den OK Button aktivieren oder soll die Anwendungslogik das prüfen und der Button immer aktiv sein?
-
on/off schrieb:
Würdet ihr es bei einfachen Desktop Anwendungen auch so machen, dass die UI fast keine Logik hat? Wie würdet ihr das steuern, wann welcher Button aktiv ist? Soll das UI schauen ob alle Felder richtig ausgefüllt sind und dann den OK Button aktivieren oder soll die Anwendungslogik das prüfen und der Button immer aktiv sein?
Also das MVC-Pattern ist genau das richtige dafür: http://de.wikipedia.org/wiki/Model_View_Controller
Kurz gesagt, Logik wird in Logik gemacht, GUI in GUI, und die einzelnen Module kommunizieren miteinander.
-
on/off schrieb:
Welche Logik sollte im UI und welche weiter unten im Programm/Server sein?
Würdet ihr unterscheiden, ob es sich um eine "normale" oder Client Server Anwendung handelt?Nein!
Es mag bei einer Standalone-Anwendung anfangs der Eindruck entstehen die Daten könnten auch in den Widgets liegen, aber sobald das Programm wächst amortisiert sich eine saubere Trennung.
Model/View/Ccontroller geht immer, egal ob C/S oder nicht.
Grüsse
*this