Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Hertha Kranz Geändert vor über 5 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.