Single Page App
📅
Vertragswesen
In dieser Woche haben wir das Vertragswesen auf eine Single Page App umgestellt.
Damit werden je nach Auswahl Seitenelemente ein- und wieder ausgeblendet, stets hat man dabei die Übersicht, in welchem Vertrag, welcher Position bzw. welchem Verbrauch man sich gerade befindet.
Wir sind nun in der Lage, Aktionen zu definieren und clientseitig zu handeln oder Datensätze zu kennzeichnen, etwa, wenn sie ‘dirty’, also vom Vertriebsmitarbeiter geändert sind, er aber noch nicht die Speicherung auf den Server veranlasst hat. Wir können Datensätze asynchron am Server anlegen, aktualisieren und auch wieder löschen, kurz alles, was für Single Page Apps relvant ist.
Prinzipiell könnten wir damit auch andere Frontendteile von Mercator als clientseitige Applikationen implementieren und von den Vorteilen, die wir im Vertragswesen genießen, profitieren:
- Extrem schnelle Responses, z.B. Positionsneuanlagen von unter 200ms Roundtrip vom Browser zum Server, Verarbeitung am Server und wieder Response zum Client. Und das gelingt bei einer Datenübertragung von weniger als 2kB.
- Sehr flexible Userinterfaces, die komplexe Rechenvorgänge erlauben, ohne permanent am Server Neuberechnungen größerer Datenmengen durchführen zu müssen. (Während der Client sich seinen Status merkt und daher nur Änderungen gerechnet werden müssen, ist der Status der Applikation eines Servers zustandslos. Das bedeutet, es muss bei jedem Request wieder die gesamte Datenumgebung zur Kalkulation des Vertrages geladen und errechnet werden.)
- Auslagerung von Rechenlast vom Server zum Client
- viele weitere Vorteile, die wir hier nicht aufzählen, finden Sie in unserer Präsentation zu Ember unter http://at.mittenin.at/36
Dabei dürfen aber auch die Nachteile nicht vernachlässigt werden:
- Erheblicher Implementierungsaufwand
- Erheblicher Lernaufwcand
- Der Download des gesamten Frameworks inklusive Applikationslogik beim ersten Request: Auf Produktivsystemen sind dies immerhin 330 KB, die wir aber noch durch serverseitige Komprimierung verringern können.
- Bislang haben wir nur eine Komponente umgestellt, die die Vertriebsmitarbeiter betrifft, nicht die Kunden im Webshop. Das bedeutet, es handelt betrifft nur die Rechner, die in unmittelbaren Zugriff des Betreibers des Webshops stehen. Das heißt insbesondere, dass ein Webbrowser oder zumindest eine Version vorgegeben werden könnte. Das wäre bei Kundenrechnern nicht der Fall, womit wesentlich umfangreichere Browsertests nötig würden.
- Die Validierung (Gültigkeit bezüglich Inhalt und Form) von Daten, die Authentifizierung (Echtheitsüberprüfung) und die Authorisierungslogik (Berechtigungsüberprüfung) muss ohnehin am Server implementiert werden.
Damit sieht es derzeit nicht so aus, als würden wir in nächster Zeit einen weiteren Teil des Frontends umstellen.
Das Vertragswesen als Single Page App

Zurück zum Blog