Interview mit Bernd Ua und Holger Flick

Delphi-Komponenten mit VCL & FireMonkey
Kommentare

Komponenten bilden den Grundpfeiler jeder Delphi-Anwendung; doch was genau verbirgt sich dahinter?

Für die Entwicklung eigener Delphi-Komponenten gibt es unterschiedliche Motivationen: von der Zusammenfassung von wiederkehrenden Einstellungen und Standardwerten bis hin zur Kapselung zentraler Algorithmen und Funktionen ist vieles denkbar. Im Vorfeld des Ende Mai stattfindenden Delphi Code Camps haben wir mit Bernd Ua und Holger Flick über das Thema Delphi-Komponenten mit VCL und FireMonkey gesprochen.

Delphi-Komponenten im Interview

Meine Herren, die Entwicklung von Delphi-Komponenten nimmt einen ganz eigenen Stellenwert ein. Was genau kann man sich unter einer Komponente vorstellen? Gibt es ein Äquivalent in anderen Sprachen?

Die meisten Entwickler verbinden mit Komponenten grafische Gestaltungselemente, allerdings gibt es auch zahlreiche Komponenten, die keine grafische Repräsentation haben und stattdessen spezielle Funktionalitäten kapseln und quasi als Blackbox für die Benutzung in der IDE bereitstellen.

Das besondere an der Komponentenentwicklung ist, dass der Entwickler einer Komponente im Endeffekt einen Stakeholder zusätzlich hat: Neben dem Enduser einer Applikation, welche die Komponente benutzt, ist ein weiterer Stakeholder der Softwareentwickler, der die Komponente einsetzt. Daraus resultieren im Endeffekt auch zwei Aufgaben für den Komponentenentwickler, er muss das Laufzeitverhalten in der Applikation genauso im Auge behalten wie das Verhalten zur Designzeit in der Entwicklungsumgebung.

Komponenten sind immer an eine Klassenbibliothek gebunden. In Delphi sind dies zurzeit z.B. die visuelle Komponentenbibliothek VCL und FireMonkey. In .NET finden wir Komponenten für die Winforms Klassenbibliothek oder WPF.

Bernd Ua

Bernd UaBernd 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.

 

Holger Flick

Holger FlickDr. Holger Flick studierte Informatik an der Universität Dortmund und promovierte an der Fakultät Maschinenbau der Ruhr-Universität Bochum. Bereits seit 1996 programmiert er mit Delphi. Seit 2013 ist er als Mitarbeiter der Korfmann Lufttechnik GmbH in Witten für die gesamte Software- und Hardwarearchitektur der Firma verantwortlich und entwickelt unter anderem unternehmensspezifische Softwarelösungen mit Delphi.

Wie unterscheiden sich Komponenten von Packages?

Packages können Komponenten beinhalten aber daneben zum Beispiel auch IDE-Erweiterungen, wie Experten und Eigenschaftseditoren. Eine Vielzahl von Komponentenbibliotheken werden mittels Packages vertrieben. Packages sind deshalb so beliebt, da die Einbindung von Packages in die Entwicklungsumgebung komfortabel möglich ist und sich so auf einen Rutsch viele Komponenten installieren lassen.

In den vergangenen Jahren hat Delphi eine rasante Entwicklung hingelegt – gerade, wenn es um die Entwicklung für verschiedene Plattformen geht. Hatte das auch Auswirkungen auf die Entwicklung von Komponenten?

Selbstverständlich hatte das Auswirkungen auf die Komponentenentwicklung. Wie bereits erwähnt sind Komponenten immer an eine Klassenbibliothek gebunden. Die VCL ermöglicht nur die Erstellung von Applikationen für Windows mit 32-Bit oder 64-Bit. Möchte man für andere Plattformen entwickeln, so ist man zum Beispiel an FireMonkey gebunden, d.h. man muss seine Komponenten für FireMonkey entwickeln.

Wir werden in unserem Workshop einige Beispiele vorführen, die es dem Entwickler gestatten eine Komponente so zu entwickeln, dass sie mit wenigen Anpassungen für mehrere Klassenbibliotheken bereitgestellt werden kann.

Ein Tipp vorab an Einsteiger: Sollte man aktuell bei der Komponentenentwicklung auf VCL oder FireMonkey setzen?

Es kommt darauf an, welche Zielplattformen die Komponente anbieten soll. Möchte man nur für Windows mit der VCL entwickeln, so erstellt man eine VCL-Komponente. Die meisten Delphi-Anwendungen sind derzeit auf der Basis der VCL erstellt und stellen damit derzeit den größten Markt.

Bei anderen Plattformen muss man eine FireMonkey-Komponente (FMX) verwenden. Insbesondere werden wir in unserem Workshop mit den Framework Neutral Components (FNC) eine weitere Alternative des Drittanbieters TMS Software zu diesen Klassenbibliotheken vorstellen, die weitere Plattformen abdeckt und sowohl in FireMonkey-Anwendungen als auch in VCL-Anwendungen eingesetzt werden kann.

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 beschäftigen Sie sich ausführlich mit dem Thema der Komponenten-Entwicklung. Welche Aspekte sollen dabei besonders im Vordergrund stehen?

Wir werden damit beginnen, gemäß der altbekannten Vorgehensweise die Entwicklung der verschiedenen Varianten von Komponenten vorzustellen. Dabei werden wir auf zahlreiche Fallstricke anhand von praxisnahen Beispielen hinweisen.

Auch die Möglichkeiten der Unterstützung des Entwicklers zur Entwicklungszeit, d.h. also Möglichkeiten der Integration in die Entwicklungsumgebung, werden wir erläutern. Besonderer Wert wird auf die plattformübergreifende Komponentenentwicklung gelegt, d.h. die erstellten Komponenten im Hinblick auf mehrere Klassenbibliotheken zu entwickeln. So wird z.B. eine VCL-Komponente vorgestellt, die die Einbindung von Bildern eines REST-Dienstes vereinfacht. Die Klassenstruktur dieser Komponente wird dabei so ausgelegt, dass sehr schnell eine weitere Variante für die FireMonkey-Klassenbibliothek erstellt werden kann. Hier werden einige Unterschiede zwischen der VCL und FMX herausgearbeitet.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -