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

Slides:



Advertisements
Ähnliche Präsentationen
Datenbankzugriff im WWW (Kommerzielle Systeme)
Advertisements

Informationen ü ber den Umbau des Schulnetzes Aufgrund der Umstellung unseres Schulnetzes auf ein neues Serversystem wird Ende Juni 2010 der Zugriff auf.
Introducing the .NET Framework
Bewerbungs- eingang Bewerbungs- bearbeitung Stellenangebote VermittlungKommunikationZusatzleistungen.
Generic Enabler Felix Holzäpfel-Stein, Aachen Generische Komponenten im Cloudkontext.
1/23 RWTH AACHEN  UNIVERSITÄTSKLINIKUM INSTITUT FÜR MEDIZINISCHE INFORMATIK Wissensbasierte Systeme Java-Frameworks zur Generierung von Diagrammen Jenny.
© WZL/Fraunhofer IPT Entwicklung einer Profilbörse für Konfigurationen von Smartphones Vortrag der Seminararbeit von Patrick Posor Aachen, den
Webdeployment auf Cluster Seminarvortrag von Lukas Bonzelett.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Mobil und vernetzt1 VERNETZUNG 4.0 Stefan R. Müller Suchmaschine Blinde Kuh Kinderseitenlandschaft – mobil und vernetzt – das zukunftsweisende Potential.
Herzlich Willkommen zur Projektvorstellung der DORFGESUNDHEITSHÜTTE Bewegungs-Kommunikationsraum der Zukunft.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Projekt ‘L i k a’ ICC, RC Zagreb und RC Gradec beschäftigen sich mit dem Projekt „Lika“ seit 2013 geben älteren Leuten Hilfe in Gopić helfen.
Linux – Ubuntu Präsentation zur Sitzung am Referent: S. Imdahl.
Einführung OpenSTA. Agenda - über OGVIT - Warum Lasttests - Was ist OpenSTA - Wie arbeitet OpenSTA - Skripte für OpenSTA - OpenSTA Collectors - Tests.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
Energy as a driver in open-ended evolution Von Tim Hoverd & Susan Stepney Präsentation von Sebastian Schrage.
Seminarvortrag Möglichkeiten zur dreidimensionalen Darstellung von Straßenoberflächen Matthias Baumgarten.
Lehrveranstaltung am Studiengang Angewandtes Wissensmanagement. WS2009. Projektmanagement I – Endbericht G2B.
TOAD™ Die komplette Entwicklungs- und DBA- Lösung Cristian Maties.
Microsoft Azure Die Cloud-Plattform für moderne Unternehmen ModernBiz 1 Kleine und mittlere Unternehmen (KMU) wünschen sich die Möglichkeit und Flexibilität,
1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der.
Entwicklung einer Webanwendung mittels HTML, ASP, C# und SQL am Beispiel einer Publikationsverwaltung Philipp Kühne Erstprüfer: Prof. Dr. Wilhelm.
Graphik, Doku und Monitor für TWS
D : Nachteilsausgleiche bei Studien- und Prüfungsleistungen
Praktische Informatik 1
Projekt Activtiy Tracker
Wsl schon abgeschaltet Idee dahinter ist interessant und revolutionär
Vor- und Nachteile von RAD-Projekten
Transparent - sachgerecht - fair
Digitale Kompetenz in der Rechtsdidaktik
Praxisseminar Wie man ein Thema für seine Bachelorarbeit findet
Motherboard Marko Drinic – 1ahwit.
Logisches Datenmodell
Simulation von Chemiereaktoren
Kanalrohr aus Stahlbeton
AURIS-MM Spezifikation
Fortgeführtes Konzept zur Pflege der Deichgrasnabe auf den Deichen des Deichverbandes Die Erfahrungen des ersten Jahres der Schafsbe-weidung auf den Deichen.
Programmieren in C Module und Bibliotheken
Pflegereform Entlastung oder Bürde.
„Virtueller Seminarraum“ - SS 2003 Laborprojekt / Forschungsprojekt
Design Studio Zurbel Zwickauer Str Chemnitz
Die betriebliche Direktversicherung
Data/Code driven UI mit WPF Teil 1
Kapitel 5: Betriebliche Anwendungssysteme
Terrassenbelag mit Natursteinplatten
Technisches Sicherheitsmanagement Stadtwerke Hannover AG
BPQ 32 TEST – OE3XEC Ausgangs Situation
Friederike Kleinfercher Abteilung Forschung und Entwicklung
Kandinsky Music Painter II
Herzlich Willkommen zur Projektvorstellung der DORFGESUNDHEITSHÜTTE
© Christopher Hardt & Philippe Nix
Stimmungsbild/Feedback-Erhebung Wie beurteilen Schülerinnen und Schüler die Modellschule für Individualisierung und Potentialentfaltung („IndY“)? Team:
Geschäftsregeln in XÖV-Standards XÖV-Konferenz 2018
DESIGN THINKING.
Einsatzmatrix 2.0.
Bugtracker Tool.
Genetische Algorithmen
Wissenschaftliches Projekt
Von Wietlisbach, Lenzin und Winter
Influencer Marketing.
Der Optimismus in der Rekrutierungsbranche ist hoch Der Optimismus in der Rekrutierungsbranche ist hoch. Die Erwartungen an Umsatz, Budget, Investitionen.
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
SOFTWARE- UND WEB-LÖSUNGEN
Eine Einführung in die Progressive Web Application
Präsentation Projektmanagment „V – MODELL“
Cloudlösungen für die Landesgeschäftsstelle
Siebenmeter von Handball4All -Spielbericht Online- Zeitnehmer/Sekretär
RGB-LED Projekt INGOLSTADT.
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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