Hallo Säbelzahnigelchen,
- "Webanwendungen" nicht ganz vollwertig sind
Nun, man hat deutlich weniger Möglichkeiten die GUI zu gestalten als bei Desktoabwendungen. Ich denke, das ist offensichtlich.
- Bockie unrecht hat, wenn er behauptet, dass "Webanwendungen" die Trennung zwischen den Schichten (Datenschicht, "Programmverwaltungsschicht" und Präsentationsschicht) unterstützt
Ja, insbesondere mit der aussage, dass JS, HTML und CSS dies tun würden. Üblicherweise realisiert ein untrennbarer Haufen von JS, HTML und CSS die GUI-Schicht einer Webanwendung. Die eigentliche Anwendungslogik spielt sich praktisch nie Clientseitig ab. Und es sieht zugegebenermaßen erst mal so aus, als könnte man (innerhalb der GUI) Design, Struktur und Verhalten trennen, in der Praxis funktioniert das aber nicht. Es funktioniert weitgehend, wenn man es mit Dokumenten zu tun hat, weil HTML dazu entworfen wurde, Dokumente zu strukturieren. GUIs haben aber eine andere und komplexere Struktur und vor allem sehr viel mehr Verhalten.
BTW - hast Du schon mal - bspw. mit MSVS - eine Windows Applikation entwickelt?
Nein, aber ich habe schon andere GUI-Bibliotheken verwendet. Erfahrung habe ich vor allem mit Swing.
In vielen Fällen will man keine zustäzliche Abstraktionsebene für Design haben, schlicht weil das bei GUI oft nicht oder nur mit großem Aufwand zu trennen ist. Wenn man unter "Design" lediglich das Aussehen der GUI-Elemente versteht, stellt Swing dafür aber eine Abstraktionsebene zur Verfügung und viele andere GUI-Systeme tun das auch.
Die Trennung von Struktur und Verhalten ist hingegen etwas, was man normalerweise gar nicht will. Dass das so propagiert wird, fällt mir eigentlich nur im Web- und Javascript-Umfeld auf. Der Schritt der Objektorientierung war ja gerade, die Struktur auf der man arbeitet und ihr Verhalten zusammenzufügen. Wenn man Dokumente mit interaktivität Anreichern will, mag die Trennung noch sinnvoll sein, bei GUI-Programmierung ist das aber nicht so.
Die Trennung zwischen Datenmodell und Darstellung ist natürlich sinnvoll. Die wird aber dadurch erreicht, dass man die gesammte Oberfläche von den Daten und der Anwendungslogik abkoppelt.
Säbelzahnigelchen
Grüße
Daniel