Einzelnen Beitrag anzeigen

Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
646 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Online/Offline-Software-Konzept für Win, Apple, Android

  Alt 17. Dez 2019, 16:03
ich hatte vor einigen Tagen auf einer Lazarus Konferenz in den Niederlanden mal genau zu dem Thema
eine präsentation gemacht, die dort zwar auf pas2js und lazarus gezeigt wurde, aber da ein teil der
Demo auch auf Basis von TMS Webcore gemacht wurde, das ja auch in Delphi verfügbar ist, deckte das
eigentlich das ab, was du hier erklärst (das hier ist ein Video von der Session mit einigen Demo
Applikationen und auch der https firebird sql schnittstelle).

https://ibexpert.com/hk/lazConf20190129_hk.7z (das video hat evtl keinen ton, da
lief was bei der aufzeichnung falsch)

Die Infos basieren auf realen Kundenprojekten.

Fazit aus meiner Sicht: Native App Entwicklung für mobile devices hängt mit so vielen Faktoren zusammen,
das du früher oder später bei den Tools landen wirst, die der android oder iOS Hersteller
dafür bereitstellen. Ob das um so banalen Kram geht wie nur noch 64 bit usw oder sonstwas ist dabei
eigentlich egal.

Du musst so viel neuen Kram lernen, alleine um das ganze Zeug über die Appstores
verteilen zu können und wirst bekloppt, wenn deine Kunden ein Bugfix brauchen, apple aber wochenlang
nur die alte version im store hat usw. Und auch auf PCs ganz banale Geschichte wie mal eben einen
firebird server zu installieren und zu benutzen, kann dich in der welt der native apps zur
Verzweiflung bringen. Wenn du eine eigene Abteilung mit x erfahren App developern hast, dann kannst du
das so machen, ich vermute aber mal, das du das nicht hast und auch gar nicht haben willst ...

Die erfahrenen Leute, die im Markt bezahlbar und verfügbar sind, sind ausgesprochen selten und Leute mit
Halbwissen kosten nur Geld und Zeit ...

Wir haben uns auf Basis von Kundenprojekten also ausschliesslich auf Webapps auf Basis von
lazarus/pas2js/tmswebcore konzentriert und bieten dafür auch Consulting an (auch im Rahmen
der Hotline).

Da es meistens um Daten aus einem komplexen Backoffice System geht, haben wir aber auch nie den Anspruch,
in einer Offline Situation sämtliche Daten aus allen Tabellen lokal im Handy zu haben, sondern holen
uns über die oben im o.a. Archiv befindliche https Firebird SQL Schnittstelle Daten aus der db, die wir dann
in einem simplen eigenen Format im Webbrowser in der localstorage vorhalten, falls die mal in einem
Offlinezugriff gebraucht werden.

In dem Beispiel oben sind das zum Beispiel daten wie arbeitszeitbuchungen usw.
das schöne an den pas2js anwendungen ist, das die auch offline funktionieren, und du mit so was
wie tms webcore bei bedarf auf datasets und dbgrids daraus füllen kannst, ohne irgeneinen
serverzugriff haben zu müssen. Auch speichern kannst du da, und wenn mal das mal mit der
üblichen Pascalsyntax in lazarus oder delphi gemacht hat, geht die Lernkurve sehr schnell
nach oben.

Man braucht ein wenig Zusatzwissen, um dann die html seite auch lokale auf mobile devices zu cachen,
aber das ist schnell an einigen Beispielen erlernbar.

Das Beispiel in o.a. archiv basiert darauf, das man möglichst einfach vom client per sql
sqls an einen server sendet, der das dann entweder einfach macht oder eine Ergebnismenge liefert.

In der Firebird Welt hat man ausreichend Mechanismen, um rechte einzuschränken, so das die
Webschnittstelle zB nur über SPs daten bekommt. Bei den meisten Rest Server architekturen
kannst du das auch machen, aber beim rest server hast du meistens 3 Ebenen
client-restserver-datenbank
an denen du übereinstimmung brauchst, bei uns sind das nur 2 ebenen, weil der
restserver in der mitte wegfällt. Und das sich diverse Restserver als wunderschöne
Plattform zum Datenklau eignen sieht man regelmäßig, wenn irgendjemand wieder
irgendwo daten abgegriffen hat, weil der unerfahrene Programmierer der Restserver api
einfach erlaubt, zu einer beliebigen Kundennummer in der url irgendwas abzufragen und
der Datendieb dann einfach mal die nummern hochzählt in der url und schaut was kommt.

Das Problem hast du in allen Welten und je mehr eben du hast, mit denen du keine Erfahrung hast,
um so mehr Problem kann es am ende geben.

Da du dich aber vermutlich mit Frontendprogrammierung in Delphi/pascal ganz gut auskennst
und dir auch firebird nicht komplett fremd ist, kann man durchaus davon ausgehen, das
die zusätzlichen Erfahrungen, die du dafür brauchst, innerhalb von maximal einer Woche
vermittelt werden können, wie das auch bei anderen Kunden mit Delphi/Firebird Erfahrung
ausgereicht hat.

Da in jedem einigermaßen aktuellen Webbrowser in der localstorage 5 bis 10 MB
an Daten speicherbar sind, musst du ggf eh mal hinterfragen, was effektiv an
daten offline gebraucht werden, weil alles eher selten klappen wird.

Wenn du aber mal versuchst, irgendein dbgrid ähnliches Konstrukt auf einem 5 Zoll
Handydisplay mit normal dicken Anwenderfingern bedienen willst, dann landest du
eh irgendwann bei dafür geeigneten javascript libs, die man aber gar nicht alle
komplett kennen muss, um damit auf basis von pas2js Anwendungen zu erzeugen. ob du ein
button im form wie in Delphi selber reinklickst oder die button referenz aus einem
html template zur laufzeit verknüpft, um den dann wie sonst auch ein buttonclick
ereignis in pascalsprache umzuhängen, ist nach kurzer eingewöhnung ziemlich egal.

Die o.a. https firebird sql Schnittstelle kannst du übrigens wie von dir gewünscht
mit jeder plattform abgefragt werden, die https zugriffe beherrscht, ganz ohne
sonstige Treiber, und eine geeignete pascalunit, die die results dann umwandelt, kannst
du auch problemlos so schreiben, das die in pas2js als auch in deine fat client Anwendungen
benutzbar ist.

Die https firebird sql demo ist übrigens ohne jede security konzipiert, das ist aber
einfach zu ergänzen.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat