Seit dem 1.2 Release ist nun auch ein ORM Bestandteil der Spring4D Bibliothek. Gerade wenn man bereits mit den interface basierten Collection Typen arbeitet bietet Spring. Persistence eine gute Integration und ist derzeit das einzige ORM, was diese Typen direkt unterstützt. Durch seine modulare Architektur bietet es außerdem gute Möglichkeiten zur Erweiterung von nicht bereits unterstützten Datenbank Zugriffskomponenten oder Datenbank Systemen. In Laufe des Workshops werden Sie den Aufbau und dem Umgang mit dem ORM lernen und sehen wie es in der Praxis eingesetzt werden kann.
Agenda:
Überblick über die Spring.Persistence Architektur
Die erste ORM Anwendung
Eigene Adapterklassen für noch nicht unterstützte Datenbankkomponenten
Einsatz des TObjectDataSets
Vorraussetzungen:
Kenntnisse in der objektorientierten Programmierung in Delphi und grundlegendes Datenbankwissen sind von Vorteil.
Kaum eine Software kommt noch ohne die Verwendung von REST APIs aus. Im einen Fall ist es die Schnittstelle zu einem Zahlungsdienstleister, im nächsten Fall die Schnittstelle zum Anbieter einer Cloud API oder schlicht die Daten-Schnittstelle für ein mobiles Gerät. Im nächsten Projekt soll vielleicht der Microservice eines anderen Teams angebunden oder gar ein eigener Microservice mit einer REST API bereitgestellt werden.
Für viele ist REST bei grober Betrachtungsweise nicht mehr als vorzugsweise JSON-Daten über HTTP auszutauschen und jede API, die „irgendwie“ über HTTP-Standardverben Ressourcen bereitstellt, ist eine REST API. Beschäftigt man sich näher mir REST, stellt man fest, dass diese Sicht in vielerlei Hinsicht stark verkürzt ist. Zum einen ist JSON eigentlich nur eines von vielen Formaten und zum anderen spielt, so man denn REST auch als Architekturmodell begreift, die Verlinkung von Ressourcen und Verwendung von Hypermedia eine entscheidende Rolle.
In der Praxis kommen dann schnell weitere Herausforderungen hinzu, es werden in bestehenden Anbieter-APIs vielleicht benutzerdefinierte Medientypen verwendet oder es wird sogar über den Medientyp versioniert, standardisierte oder spezielle Authentifizierungsverfahren müssen implementiert werden oder es sind Mindestanforderungen an die Transportsicherheit wie TLS1.2 erforderlich. Nicht alle dieser Herausforderungen lassen sich mit den REST-Client-Komponenten, die in Delphi mitgeliefert werden, meistern.
Auf der Serverseite bietet Delphi zumindest in der Enterprise Edition DataSnap für die Implementierung von REST-Servern an. Daneben gibt es auch Alternativen im Open Source Bereich wie mORMot oder die MARS Curiosity Library, die sich für die Erstellung von REST-Servern und APIs verwenden lassen.
Im Workshop starten wir mit den Grundlagen und Konzepten von REST um dann einen praktischen Einstieg in die Verwendung von REST Apis mit Delphis REST-Client-Komponenten zu finden und diese kennen zu lernen. Mit den Komponenten erarbeiten wir uns Details zum JSON-Support schauen uns Authentifizierungsverfahren an, diskutieren Fehlerhandling und die Verbindungssicherheit auf Protokollebene (SSL) und lernen nützliche Tools vom Delphi REST Debugger über Fiddler zu curl kennen. Wir diskutieren die Grenzen und Einschränkungen von Delphis REST-Client-Komponenten und lernen alternative Komponenten kennen.
Im zweiten Teil des Workshops schauen wir uns im Detail an, wie mit DataSnap, mORMot und MARS Curiosity REST Apis bereitgestellt werden können. Wir diskutieren die Vor- und Nachteile der unterschiedlichen Bibliotheken und untersuchen welche REST-Architekturmerkmale mit den Bibliotheken realisiert werden können. Aus Serversicht diskutieren wir den API Entwurf, Deployment und Sicherheit, Autorisierung und Authentifizierung, Fehlerhandling und Dokumentation.
Agenda
REST Basics und Konzepte, Delphis REST-Client-Komponenten
JSON Support, Authentifizierung und Grenzen der REST-Client-Komponenten
Alternative Komponenten für REST Clients
Rest Server mit DataSnap, mORMot und MARS Curiosity
Unterschiede und Features der Server und Bibliotheken
Deploymentvarianten und Security von Executables bis IIS und Apache
Gestaltung einer RESTful API
Autorisierung und Authentifizierung
Fehlerhandling und Dokumentation
Voraussetzungen:
Kenntnisse in der objektorientierten Programmierung in Delphi.
Zusätzliche Hinweise:
Für die Nachvollziehbarkeit der Beispiele wird ein Notebook mit einer Delphi Version ab XE7 empfohlen.
Bernd Ua ist Gründer und Geschäftsführer von probucon Business Consulting einem Beratungs- und Trainingshaus, das eine breite Platte von unterstützenden Dienstleistungen bei der Softwareentwicklung anbietet, angefangen von Trainings bis zu Architektur, Projektleitung, Codereviews und Umsetzung. Bernd Ua arbeitet seit mehreren Jahren als Softwarearchitekt und Entwickler sowie als Trainer im Bereich nativer Anwendungen mit Embarcadero Delphi und im .net Umfeld mit C#. Daneben ist er als Autor unter anderem für das Entwickler Magazin tätig und regelmäßig als Speaker auf nationalen und internationalen Veranstaltungen anzutreffen.
Komponenten bilden die Grundlage und den wesentlichen Bestandteil jeder Delphi Anwendung. Die Kapselung von Funktionalität in Komponenten stand bei Delphi immer im Vordergrund, um eine gezielte, rapide Anwendungsentwicklung (RAD) zu ermöglichen. Selbst heute grenzt der starke Komponentenfokus Delphi von anderen Programmiersprachen deutlich ab.
Für die Entwicklung eigener Komponenten gibt es unterschiedliche Motivationen. Im einfachsten Fall dienen abgeleitete Komponenten dazu, wiederkehrende Einstellungen und Standardwerte zusammenzufassen. Komplexere Komponenten können zentrale Algorithmen und Funktionen kapseln und anderen bereitstellen.
Mittlerweile müssen bei der Entwicklung von eigenen Komponenten wesentlich mehr Aspekte berücksichtigt werden, als es in früheren Delphi Versionen der Fall war. Neben der VCL beinhaltet Delphi die plattformübergreifende FireMonkey-Bibliothek. Beide Frameworks unterstützen die neue Form der Datenbindung über LiveBindings und auf ihre jeweils eigene Art Themed UIs (Themes und Styles).
Nach der Einführung in die grundlegenden Konzepte der Komponentenentwicklung mit Delphi und der VCL, werden Sie selbst zunächst damit beginnen, existierende Komponenten nach eigenen Vorlieben zu erweitern. Es werden anhand verschiedener visueller und nicht-visueller Beispielkomponenten die VCL und das FireMonkey-Framework aus Sicht des Komponentenentwicklers diskutiert und erklärt. Anhand einer im Workshop gemeinsam entwickelten Beispielkomponente, welche gemeinsame Funktionalität plattformunabhängig in eine Basisklasse kapselt und die Besonderheiten der beiden Frameworks in erbenden Klassen ergänzt, widmet sich das Code Camp ausführlich den Anforderungen an plattformübergreifende Entwicklung.
Die Verwaltbarkeit, Wiederverwendbarkeit und klare objektorientierte Strukturierung stehen bei dem gesamten Code Camp immer im Fokus. Es werden alle grundlegenden Konzepte der Komponentenentwicklung mit Delphi abgedeckt. Das Lerntempo und die Detailtiefe der einzelnen Bereiche werden die Instruktoren Bernd Ua und Holger Flick individuell auf die Interessen aller Teilnehmer anpassen. Das Code Camp ist sowohl geeignet für Neueinsteiger in den Bereich der Komponentenentwicklung, als auch für Fortgeschrittene, die die neuen Aspekte bedingt durch die neuen plattformübergreifenden und anderen Möglichkeiten der neuen Delphi Versionen kennenlernen möchten.
Agenda
Komponenten und Packages, Events, komplexe Eigenschaften
Einfache visuelle und nicht-visuelle Komponenten, VCL- und FireMonkey Hierarchie
Berücksichtigen von Themes in der VCL und verwenden von Styles in FireMonkey
Klassische Datenbindung über TDatasource und Datenbindung über LiveBinding
WebServices in Komponenten kapseln, asynchrone Operationen in Komponenten
Integration in die IDE über Property und Komponenteneditoren
Voraussetzungen:
Kenntnisse in der objektorientierten Programmierung in Delphi.
Zusätzliche Hinweise:
Für die Nachvollziehbarkeit der Beispiele wird ein Notebook mit einer Delphi Version ab XE2 empfohlen.
Bernd Ua ist Gründer und Geschäftsführer von probucon Business Consulting einem Beratungs- und Trainingshaus, das eine breite Platte von unterstützenden Dienstleistungen bei der Softwareentwicklung anbietet, angefangen von Trainings bis zu Architektur, Projektleitung, Codereviews und Umsetzung. Bernd Ua arbeitet seit mehreren Jahren als Softwarearchitekt und Entwickler sowie als Trainer im Bereich nativer Anwendungen mit Embarcadero Delphi und im .net Umfeld mit C#. Daneben ist er als Autor unter anderem für das Entwickler Magazin tätig und regelmäßig als Speaker auf nationalen und internationalen Veranstaltungen anzutreffen.