Interview mit Stefan Glienke vom Spring4d-Projekt

Spring4D ORM in Delphi
Kommentare

Ein ORM ist ein praktisches Werkzeug – auch im Delphi-Umfeld. Doch was steckt dahinter? Wir sprachen mit Stefan Glienke über die Vorzüge und die Nachteile eines ORM.

Seit einigen Jahren bereits ist das Spring4D ORM im Delphi-Umfeld im Gespräch. Kein Wunder, schließlich ist ein ORM ein tolles Werkzeug, um die Arbeiten mit Datenbanken zu vereinfachen.

Spring4D ORM

Dennoch gibt es natürlich auch immer wieder kritische Stimmen, wenn es um den Einsatz eines ORM geht. Wir sprachen daher mit einem der Mitentwickler – Stefan Glienke – über das ORM. Außerdem gibt er uns einen Ausblick auf das kommende Release.

Herr Glienke, warum sollte man Ihrer Meinung nach generell auf ein ORM setzen?

Stefan Glienke: Es gibt mehrere Gründe. Einer davon kann sein, dass man mit seiner Software verschiedene Datenbanken ansprechen möchte: In diesem Fall bietet ein ORM einen guten Weg, die Unterschiede bei SQL-Syntax bzw Dialekt zu abstrahieren. Durch die Modellierung der Daten über Klassen kann es die Entwicklung beschleunigen, da man sich nicht mit der Generierung von SQL und dem Mappen von Query-Ergebnissen befassen muss.

Stefan Glienke

Stefan GlienkeZunächst mit Turbo Pascal und später mit Delphi, blickt Stefan nun auf etwas mehr als 15 Jahre Erfahrung mit diesen Programmiersprachen zurück. Natürlich interessiert er sich auch für andere Programmiersprachen, allen voran C#. Seine Schwerpunkte und besonderen Interessensgebiete sind Softwaredesign, Patterns und Prinzipien, und wie man sie simpel und einfach im täglichen Gebrauch nutzbringend anwenden kann. Seit 2011 entwickelt er die DSharp-Bibliothek für Delphi und ist auch Mitentwickler im Spring4d-Projekt.

Bereits seit Anfang 2012 ist Spring4D in Delphi-Kreisen im Gespräch – ein Thema, mit dem Sie sich ebenfalls beschäftigen. Wie hat sich das Framework in den letzten Jahren entwickelt?

Stefan Glienke: In Spring4D fließen viele Ideen und Konzepte ein, die Entwickler aus anderen Sprachen und Umgebungen gewohnt sind, die aber in der Delphi RTL nicht vorhanden sind – zum Beispiel eine große Auswahl an Interface-basierten Collection-Typen, von einfachen Listen bis zu Multimaps, mit einem komfortablen API, um auch komplexe Operationen auszuführen.

Auch der DI-Container wurde in den vergangenen Jahren sehr weiterentwickelt und kann sich von seinem Funktionsumfang durchaus mit namhaften Containern aus anderen Sprachen messen. Dazu zählen sowohl seine flexible Architektur, die es möglich macht, ihn auf eigene Anforderungen anzupassen, als auch die eingebauten Möglichkeiten, wie automatisch erzeugte Factories oder die Unterstützung des Decorator-Patterns.

Mit der 1.2er-Version, die bereits längere Zeit in der Beta ist und zeitnah zum Delphi 10.2-Release veröffentlicht wird, haben wir einiges rund um das sogenannte Interception hinzugefügt und bringen auch eine leistungsfähige Mocking-Lösung mit, die einem beim Unit-Testing gute Dienste leistet.

Zu den Neuerungen und geplanten Features für Version 1.3 werde ich bald mehr Informationen auf meinem Blog veröffentlichen.

Wie steht es um die Erweiterbarkeit des Spring4D ORM? Wie groß ist der Aufwand, es an neue Datenbanksysteme anzubinden?

Stefan Glienke: Es ist sehr einfach, das ORM sowohl für zusätzliche Datenbank-Komponenten als auch für andere Datenbanksysteme zu erweitern. Es gibt Interfaces und/oder Basisklassen, die man entsprechend implementieren muss. Beides werde ich auch im Workshop zeigen.

Immer wieder geraten ORMs in Verruf, gerade, wenn es um Performancefragen geht. Ist das ein ernstzunehmendes Problem oder überwiegen die Vorteile?

Stefan Glienke: Wie so oft in der Softwareentwicklung bringt jede Abstraktion auch einen gewissen Grad an Overhead. Es liegt natürlich am ORM, diesen Overhead so gering wie möglich zu halten. Auch was die Generierung von optimierten Statements und die Ausführung der Abfragen angeht – natürlich sind wir da auch noch nicht dort angelangt, wo ORMs wie Hibernate sind. Man sollte sich trotzdem den Weg offenhalten, bei Bedarf sein handgeschriebenes SQL für kritische Teile auszuführen; auch dafür bieten wir die Möglichkeit.

Trotzdem ist ein ORM keine magische Silberkugel, die man einfach auf alles, was mit Datenbankabfragen zu tun hat, abfeuern kann. Es ist ein Werkzeug, und man muss auch wissen, wann man dieses Werkzeug nicht benutzen sollte.

Delphi Code Camp 2017

Spring4D ORM auf dem Delphi Code Camp 2017Vom 31. Mai bis 02. Juni 2017 präsentiert die Entwickler Akademie zusammen mit dem Entwickler Magazin das Delphi Code Camp in Frankfurt am Main. Dort erleben Sie unter anderem Stefan Glienke mit seinem Workshop Spring4D ORM.
Alle weiteren Informationen findet man auf delphi-code-camp.de.

Auf dem Delphi Code Camp halten Sie einen Workshop zum Spring4D ORM. Welche Einzelheiten wollen Sie den Besuchern mitgeben?

Stefan Glienke: Wir werden uns gemeinsam die Architektur und die verschiedenen Teile des ORM anschauen und lernen, wie diese zusammenarbeiten und benutzt werden. Dazu werden wir eine Anwendung entwickeln und mit verschiedenen Datenbanken ausführen. Am Ende des Tages wird jeder Teilnehmer wissen, wie er das ORM benutzen kann und kann entscheiden, ob und wie es ihm in seiner Software von Nutzen sein kann.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -