Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Eignung von Delphi/RAD Studio zur Erstellung von Applikationen für unterschiedliche Zieltechnologien Christoph Güdelhöfer.

Ähnliche Präsentationen


Präsentation zum Thema: "Eignung von Delphi/RAD Studio zur Erstellung von Applikationen für unterschiedliche Zieltechnologien Christoph Güdelhöfer."—  Präsentation transkript:

1 Eignung von Delphi/RAD Studio zur Erstellung von Applikationen für unterschiedliche Zieltechnologien
Christoph Güdelhöfer

2 Ausblick Motivation Aufgabenstellung TraRes Fragestellungen
Aufbau TraRes Server ClientCore Clients Ergebnis Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

3 Motivation Ursachen Früher Windows Quasi-Monopol
Dank u.a. Smartphones Multiplattformfähigkeit wichtig Delphi ein Hauptwerkzeug bei VIA-Con Frage Wie ist die Eignung von Delphi/RAD Studio zur Erstellung von Applikationen für unterschiedliche Zieltechnologien? Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

4 Delphi Bestandteile Delphi Language (objektorientierte, stark typisierte, höhere Programmiersprache, Dialekt von ObjectPascal) RAD Studio (Rapid Application Development) Bietet u.a. Compiler für verschiedene Plattformen (u.a. Windows, Android, iOS, Linux) Multiplattformfähige Frameworks Frameworks FireMonkey – Windows, Android, OS X, iOS IntraWeb – Webanwendung DataSnap – Datenverbindung (Plattformen u.a. Windows, Android, iOS) Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

5 Aufgabenstellung TraRes Programm zur Trassenreservierung Fragen
Was ist eine Trasse? Warum muss man sie reservieren? Definition Trasse Unter dem Begriff Zugtrasse ist die zeitliche und räumliche Bereitstellung von Fahrwegkapazität zur planmäßigen und sicheren Durchführung einer Zugfahrt zwischen Quell- und Zielort nach vereinbarter Qualität zu verstehen 1 Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

6 Anforderungen Ablauf Nutzer geben Reservierung auf Ihren Endgeräten auf Verarbeitung findet zentral beim Infrastrukturbetreiber statt Folgerungen Client-Server-Anwendung Soll auf unterschiedlichen Endgeräten laufen, daher Multiplattformanwendung Geringer Entwicklungsaufwand Hohe Anpassung an Plattform Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

7 Unterschiede zwischen Plattformen
Herausforderung Unterschiede zwischen Plattformen Benutzeroberfläche Datenverbindung Client-Server Server Kern GUI Client Mehrschichtensystem: Server – Kern – Benutzeroberfläche Client setzt sich aus Kern und Benutzeroberfläche zusammen: Kern von auf allen Plattformen benötigter Funktionalitäten Graphische Benutzeroberfläche abgestimmt auf Plattform Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

8 Fragestellung Fragestellungen Was kann/soll in den Kern?
Wie hoch ist der Anpassungsaufwand bei Nutzung von gleichen/unterschiedlichen GUI-Frameworks? Wie kann RAD Studio SW-Entwickler unterstützen verschiedene Clients zu entwickeln? Folgerungen Kernfunktionalitäten: Eingabevalidierung (rein clientseitige Funktionalität) Datenverbindung Server-Client Zielplattformen: Windows, Android, Webanwendung RAD Studio: Kern als Delphi Entwurfszeitpaket einbinden, zur graphischen SW-Entwicklung Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

9 Graphische SW-Entwicklung
Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

10 TraRes: Aufbau MVVM-Muster
Windows Android Webserver Server Kern Webseite Daten-quelle MVVM-Muster Model: Vom Server bereitgestellt und verwaltet View: Benutzeroberfläche (plattformabhängig) ViewModel: Kern, eigenes Modell Sonderfall: Webanwendung Client hier Webserver oder ISAPI-Anwendung Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

11 Server Aufgaben Verbindung zum Kern über DataSnap
Schnittstelle über TServerMethods Verwaltet das Datenmodell Anbindung an Datenbanken etc. TServerMethods Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

12 Kern: ClientCore Aufgaben
Schnittstelle zum Server (Model): TServerMethods Umwandlung Serverdatenmodell in eigenes Clientdatenmodell Schnittstelle zur Benutzeroberfläche (Views): Komponenten Clientdatenmodell Clientdatenobjekte zusätzliche Funktionalität: Validierung von Eingabedaten Zugriff auf Clientdatenobjekte gekapselt in Komponenten Komponenten werden im Entwurfszeitpaket zur Nutzung bereitgestellt Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

13 TCompany, TUser, TTrainData, TRequest
Kern: Komponenten ServerAccess LoginHandler GeneralMethods TCompany, TUser, TTrainData, TRequest Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

14 Kern: Pakete Pakete Zwei Arten: Entwurfszeitpakete, Laufzeitpakete
Entwurfszeitpakete nur für Win32 , da Delphi eine Win32-Anwendung ist Laufzeitpakete können für alle Delphi-Plattformen erzeugt werden Problem Wie Entwurfszeitpakete für andere Plattformen nutzbar machen? Lösung Laufzeitpaket in Entwurfszeitpaket kapseln Compiler wählt automatisch passende Komponenten Keine weitere Arbeit für Entwickler Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

15 Benutzeroberflächen: Clients
Plattformen Windows, Android, Webanwendung Erste Client für Windows Dient als Vorlage/Basis für die anderen Clients Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

16 Client: Windows Entworfen mit Hilfe des Design-Editors
Komponenten von FireMonkey Komponenten des Kerns Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

17 Client: Windows Kontrollfluss Verläuft von der Oberfläche zum Kern
Wird gesteuert über Events der FireMonkey-Komponenten (OnValidate , OnChange und OnClick) Events In OnValidate werden Validierungsfunktionen ausgeführt In OnChange werden die Werte an die Komponenten übergeben In OnClick werden die Schreibfunktionen der Komponenten zum Server ausgeführt Ablauf OnChange Falls in OnValidate der Eingabewert den Vorgaben entspricht, wird OnChange ausgeführt, ansonsten eine Fehlermeldung geworfen Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

18 Clients: Fragestellungen
Was kann/soll in den Kern? Wie hoch ist der Anpassungsaufwand bei Nutzung von gleichen/unterschiedlichen GUI-Frameworks? Wie kann RAD Studio SW-Entwickler unterstützen verschiedene Clients zu entwickeln? Konkrete Fragen Funktioniert die Eingabevalidierung? Funktioniert der Verbindungsaufbau zum Server via DataSnap? Was muss an Benutzeroberfläche geändert werden? Zugriff auf Kernkomponenten angepasst werden? Anpassungsaufwand insgesamt? Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

19 Client: Android 1 3 2 4 Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

20 Android: Fazit Kernfunktionalitäten
Datenverbindung zum Server funktioniert ohne Anpassungen Eingabevalidierungen funktionieren ohne Anpassungen Benutzeroberfläche Benutzeroberfläche kann vom Windows-Client übernommen werden Größe und Position der FireMonkey-Komponenten müssen angepasst werden Anbindung an den Kern bleibt unverändert Ergebnis Anpassungsaufwand insgesamt gering, kaum strukturelle Änderungen Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

21 Client: Webanwendung Framework IntraWeb, nicht FireMonkey
Unterschiedliche Komponenten Unterschiede Neuentwicklung der Benutzeroberfläche Events, kein Äquivalent zu OnValidate Gemeinsamkeiten: Vergleichbare Komponenten wie FireMonkey Struktur und Design können übernommen werden Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

22 Webanwendung: Fazit Kernfunktionalitäten
Datenverbindung zum Server funktioniert ohne Anpassungen Eingabevalidierungen müssen an andere Events angepasst werden Benutzeroberfläche Benutzeroberfläche muss neu erstellt werden Entwurf und Struktur der Benutzeroberfläche kann vom Windows-Client „abgeguckt“ werden Kernkomponenten ohne Änderungen nutzbar Ergebnis Anpassungsaufwand insgesamt erheblich, kann durch Übernahme von Lösungen und Konzepten verringert werden Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

23 Ergebnis Pro Multiplattformanwendungen möglich, sofern Compiler
DataSnap für getestete Plattformen geeignet Leichte Übertragbarkeit GUI für FireMonkey-Anwendungen Konzepte, Lösungen können übernommen werden Erzeugung eigener Komponenten RAD Studio Contra Abhängig von Multiplattformfähigkeiten genutzter Frameworks (insbesondere FireMonkey, DataSnap) Erhöhte Kosten für Vermischung von Kern und GUI (Gefahr wird gefördert durch Entwicklungsansatz von RAD Studio) Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

24 Danke für Ihre Aufmerksamkeit!
Ergebnis: Ausblick Ausblick Weitere Optimierungen (z.B. Verlagerung Eingabevalidierung in Kern) Wie ändert sich Anpassungsaufwand, wenn keine äquivalente Komponente zwischen verschiedenen Plattformen vorhanden ist? Nutzung weiterer Fähigkeiten RAD Studios (z.B. LiveBindings) Weitere Plattformen testen (z.B. iOS) Danke für Ihre Aufmerksamkeit! Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018

25 Literaturverzeichnis
1 FIS Forschungsinformationssystem des BMVI. Zugtrasse. [Online; Stand 13. Dezember 2017] url: de/servlet/is/356633/ Multiplattformfähigkeit Delphi · Aachen · 16. Januar 2018


Herunterladen ppt "Eignung von Delphi/RAD Studio zur Erstellung von Applikationen für unterschiedliche Zieltechnologien Christoph Güdelhöfer."

Ähnliche Präsentationen


Google-Anzeigen