Next Generation Delphi

Delphi 2006 als All-in-One-IDE mit C++
Kommentare

Ein Jahr nach dem Release von Delphi 2005 schickt Borland eine neue Version seines Entwicklungstools ins Rennen. Das neue Delphi glänzt mit einigen neuen Ideen und vielen Detailverbesserungen und so ganz nebenbei kommt auch noch eine neue Sprache hinzu. Den Reigen aus C# und Delphi ergänzt jetzt auch C++. Das integrierte Together kann jetzt das, was man sich schon von der letzten Version erhofft hatte. Wer dabei mit Bangen an die Startzeiten der IDE denkt, kann sich beruhigt zurücklehnen – auch hier hat Borland seine Hausarbeiten gemacht.

Für das Look and Feel hat die Oberfläche von Delphi 2006 einige kosmetische Überarbeitungen der Toolbar und der Editoren erhalten, die der IDE ein etwas modernes Aussehen geben. Neben der sofort sichtbaren Kosmetik hat Borland aber noch einige andere neue Ideen in die IDE einfließen lassen, welche das Arbeiten bequemer und schneller machen sollen. Die relativ lange Startzeit von Delphi 2005 war für einige ein echtes Ärgernis. Die Kritik hat sich Borland offenbar sehr zu Herzen genommen. Der Ladevorgang der IDE wurde komplett überarbeitet, sodass schon die vorliegende Betaversion der aktuellen IDE trotz neuer Features und zusätzlicher Sprache schneller startet als ein Delphi 2005 auf derselben Maschine.

Daneben stehen nach der Installation gleich mehrere Menüpunkte zur Verfügung, um die IDE zu starten. Neben dem Eintrag „Borland Developer Studio“, der die komplette IDE mit allen Sprachen und Plattformen startet, werden zusätzliche Menüpunkte angelegt, um nur den C++Builder, C#Builder, Delphi Win32 oder Delphi.NET zu starten. Wählt man einen dieser Menüpunkte aus, reduziert sich die Startzeit um bis zu 80 Prozent gegenüber Delphi 2005.

Insbesondere wohl um bestehenden C++Builder-Anwendern deutlich zu machen, dass Delphi 2006 auch ein Update für C++Builder ist, wird es das Produkt auch unter dem Namen C++Builder 2006 geben. Unabhängig davon, was auf der Packung steht, enthalten die Pakete denselben Inhalt. Das heißt, Delphi-Entwickler bekommen automatisch auch den C++Builder und C++-Entwickler auch automatisch Delphi und C#. Wobei natürlich auch bei Delphi 2006 gilt, dass nicht alle Personalities installiert werden müssen.

Abb. 1: Designer-Hilfslinien für das Ausrichten von Controls

Abb. 2: Ungespeicherte Änderungen hebt der Editor gelb hervor

 Aufmacherbild: Athenian treasury, Delphi, Greece von Shutterstock / Urheberrecht: Lefteris Papaulakis

[ header = Seite 2: Mehr als Kosmetik ]

 

Mehr als Kosmetik

Insgesamt ist die Entwicklungsumgebung bunter geworden. Nach langer Zeit hat diesmal auch der Formulardesigner eine Überarbeitung erfahren, die beim Design von Anwendungen ausgesprochen hilfreich ist. Bewegt man Controls auf dem Formulardesigner, blendet dieser Hilfslinien zu anderen Controls und zum Formular ein. Mithilfe dieser so genannten Laserlines lassen sich Komponenten einfach bezüglich ihrer Koordinaten oder ihrer Beschriftung aneinander ausrichten. Einziger Wermutstropfen dabei ist, dass diese Erweiterungen lediglich den VCL- und VCL.NET-Designer betreffen, nicht aber den WinForm-Designer. Um eine leichte Positionierung von Formularen auf dem Bildschirm trotz eingebettetem Designer zu ermöglichen, blendet der Designer dazu ein kleines Hilfsfenster in der unteren rechten Ecke ein, welches die spätere Bildschirmposition des Formulars zeigt. Ein Klick auf dieses Hilfsfenster vergrößert es und gestattet anschließend die Positionierung des Fensters mit der Maus. Auch der Editor glänzt mit mehr Farbe. Eine farbliche Kennzeichnung am linken Editorrand hebt die noch nicht gespeicherten Änderungen hervor, sodass ein Entwickler jederzeit überblikken kann, was seit dem letzten Speichern verändert wurde. Daneben ist das Templatesystem komplett überarbeitet und durch zahlreiche neue Features ergänzt worden. Nach dem Einfügen eines Templates können Sie mittels Tab-Taste (bzw. Shift + Tab) zwischen den einzelnen Bestandteilen eines Templates, die farblich hervorgehoben sind, navigieren und erhalten Tooltip-Hinweise zu den einzelnen Bestandteilen. Borland hat dieser Funktion den Namen „Live-Templates“ gegeben.

Abb. 3: Für notorische Hotkey- Vergesser lassen sich vorhandene Templates in der IDE auflisten

Die verfügbaren Templates lassen sich in einem eigenen Fenster in der IDE einblenden (Abb. 3). Die neuen komplexeren Templates mit ihren Hinweisen, den benannten Punkten und Navigationsmöglichkeiten sind natürlich nur noch schlecht im bisher verwendeten Textdatei-Format abzulegen. Stattdessen wird jede Vorlage in einer XML-Datei beschrieben, die sich direkt im Editor bearbeiten lässt. Über den Befehl NEU im Pop-up-Menü des Templatefensters wird eine neue XML-Datei mit den nötigen Rumpfinformationen im Editor geöffnet.

Abb. 4: Für C++ stehen nur Nativ-Code- Projekte zur Verfügung

Das Vorgabeverzeichnis der Templates liegt im Ordner ObjReposCodetemplates unterhalb des Installationsordners. Hier sind die Templates nach Sprachen sortiert in Unterordnern abgelegt. Eine Schemadatei im Wurzelverzeichnis ermöglicht es, die Dateien extern zu bearbeiten und zu prüfen. Eine weitere praktische Funktion des Editors versteckt sich in seinem Popup-Menü hinter dem Menüpunkt UMGEBEN. Ein markierter Codeblock lässt sich so nachträglich von einem Template, wie einer Schleife, einem Kommentar oder Begin- End-Block umschließen. Automatisch ergänzt der Editor zudem beginnende Blöcke um das Blockende. Neben den Designer- und Editorerweiterungen hat auch der Debugger einige Detailverbesserungen erfahren. Bei komplexen Objekten in überwachten Ausdrücken können Sie jetzt die einzelnen Felder expandieren und untersuchen, ohne neue Ausdrücke anzulegen. Der bereits aus älteren IDEs bekannte Remote-Debugger ist wieder verfügbar und kann für Win32, .NET und ASP.NET eingesetzt werden.

[ header = Seite 3: C++ Builder ]

C++ Builder

Der integrierte C++Builder ist die seit langem erwartete neue Version des C++Builder 6, der jetzt auch Entwickler, die mit C++ arbeiten, in den Genuss neuer Komponenten und IDE-Features bringt. Projekte aus C++Builder 6 lassen sich mit der neuen Version weiter bearbeiten und öffnen. Allerdings ist zurzeit nicht wie bei Delphi die Möglichkeit gegeben, auch .NET-Code zu erzeugen. Mit C++ ist es ausschließlich möglich, Nativ-Code-Programme für Win32 zu erstellen. Borland will zurzeit weder eine eigene Version von Managed Extensions für C++ herausbringen noch die Variante von Microsoft nachbauen. Stattdessen wartet Borland lieber eine Standardisierung der Erweiterungen für Managed Code ab.

Für Umsteiger von C++Builder 6 ist eine ganze Menge an Komponenten neu, die bereits in mehreren Delphi-Versionen enthalten waren. Daneben profitieren auch C++-Entwickler von den zwischenzeitlichen Neuerungen der IDE wie Strukturanzeige, Historyview, Live-Templates, Zeilenzahlen und Codefol- ding, um nur einige zu nennen. Auch Refactorings stehen in C++ zur Verfügung, im Vergleich zu Delphi allerdings in deutlich abgespeckter Form. Zum Ausgleich hat der C++Builder beim Build-Management die Nase vorn. Es lassen sich mehrere separate Build-Konfigurationen beispielsweise für Release und Debug mit unterschiedlichen Compiler- und Linkeroptionen anlegen, die von einer Basiskonfiguration abgeleitet werden. Neu sind außerdem die so genannten Build-Events. Nur bei C++- Projekten stellte die Projektverwaltung zusätzliche Pop-up-Menü-Einträge zur Verfügung, die es gestatteten, auf die Ereignisse Pre-Build, Post-Build und Pre- Link Makros und Programme auszuführen. Die Suche nach Speicherlöchern erleichtert der integrierte Codeguard durch diverse Überwachungsfunktionen, die sich über die Projektoptionen aktivieren lassen.

Refactorings und Together

Bei den verfügbaren Refactorings hat die neue Version nicht zuletzt dank des inzwischen vollständig integrierten Together-Parts deutlich zugelegt. Neben den bekannten Funktionen aus Delphi 2005 sind neue Refactorings dazu gekommen, die beispielsweise das Umbenennen von Parametern gestatten. Member lassen sich in übergeordnete oder untergeordnete Klassen verschieben und Methoden können in Schnittstellen oder Superklassen extrahiert werden.

Abb. 5: Beliebige Programme können in den Buildprozess integriert werden

In Delphi 2006 ist die Together-Technologie jetzt endlich komplett integriert und nicht auf eine „Nur-Lesen“-Darstellung außerhalb von ECO-Projekten limitiert. Neben den Klassendiagrammen, die bereits in der Vorversion enthalten waren, unterstützt die Engine auch die weiteren UML-Diagrammtypen von Use Cases über Statecharts bis zu Komponentendiagrammen. Auch für Projekte ohne ECO und für die Win32-Plattform stehen Livesource-Fähigkeiten in Klassendiagrammen zur Verfügung. Änderungen im Klassendiagramm werden sofort im Code reflektiert und umgekehrt. In der Objektablage finden sich zwei Vorlagen für UML-1.5- und UML-2.0-Designprojekte. Auf Wunsch erzeugt Together per Mausklick und unter Einschluss der Diagramme eine Programmdokumentation im HTML-Format. Im Lieferumfang enthalten sind zudem die Design Patterns der Gang of Four für die verschiedenen Sprachen, die einfach in Code umgesetzt werden können. In der Modellansicht oder in einem Diagramm fügen Sie Patterns über das Pop-up-Menü ein und wählen das gewünschte Pattern in einem Dialog aus. Die vorhandenen Patterns werden in einem Treeview dargestellt, lassen sich dort auswählen und bezüglich der Klassennamen und Schnittstellennamen parametrisieren. Über das Tools-Menü steht ein eigener Pattern- Manager zur Verfügung, um die vorhandenen und angelegten Design Patterns zu verwalten.

Abb. 6: Codeguard erleichtert die Fehlersuche

Daneben stehen auch für Delphi-Projekte (native und .NET) die Funktionen zur Codeanalyse und Qualitätssicherung zur Verfügung. Die zu überwachenden Audits lassen sich bequem in einem Dialogfenster konfigurieren und anpassen. Einmal eingestellte Konfigurationen lassen sich speichern und wieder laden. Die Anzeige der Warnungen und Fehler erfolgt in einem separaten Meldungsfenster der IDE. Über die rechte Maustaste kann zu jedem Listeneintrag die Beschreibung direkt im Editorfenster angezeigt werden.

[ header = Seite 4: Compiler und Sprache ]

Compiler und Sprache

Da es sich beim .NET-Part des neuen Delphi noch um ein Produkt für das .NET Framework 1.1 handelt, sind im .NETBereich keine wesentlichen neuen Compilerfeatures dazu gekommen. Generics werden erst im nächsten Delphi für das .NET Framework 2.0 enthalten sein. Allerdings hat Borland einige weitere Sprachfeatures, welche bisher nur unter .NET zur Verfügung standen, für den nativen Win32 Compiler implementiert. Es handelt sich um die Möglichkeit, Operatoren zu überladen und Records mit Methoden zu definieren.

Was Records mit Methoden betrifft, gelten für Win32 dieselben Regeln wie bisher für .NET. Es ist nur erlaubt, statische Methoden zu vereinbaren. Virtuelle Methoden in Records sind nicht möglich. Um Operatoren zu überladen, werden Methoden innerhalb eines Records oder einer Klasse definiert, die mit den Schlüsselwörtern class operator gekennzeichnet sind. Die Zuordnung zu den Operatoren (bis hin zu expliziten und impliziten Typumwandlungen) erfolgt über festgelegte Namen wie Add, Substract, Multiply oder Divide. Die folgende Deklaration wird jetzt auch für Win32 kompiliert:

type
TMyPoint = record
Left : Integer;
Top : Integer;
class operator Add(a, b: TMyPoint): TMyPoint;
end;
class operator TMyPoint.Add(a, b: TMyPoint): TMyPoint;
begin
Result.Left := a.Left + b.Left;
Result.Top := a.Top + b.Top;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c : TMyPoint;
begin
// ...
c := a + b;
end;

Ein weiteres Sprachfeature, das bisher .NET vorbehalten war, sind statische Daten auf Klassenebene. Hatte der native Compiler diese Konstrukte in Delphi 2005 noch abgelehnt, ist es jetzt möglich, mit class var innerhalb einer Klasse Variablen zu vereinbaren, die sich auf die komplette Klasse und nicht auf die Instanz beziehen. Im aktuellen Fieldtest fehlt allerdings noch die Möglichkeit, auch einen Klassenkonstruktor beim Native-Code-Compiler zu deklarieren.

Abb. 7: Diagrammarten in Together

Datenbanken

Im Bereich der Datenbankunterstützung fällt zunächst ins Auge, dass die Entwicklungsumgebung sich im Datenbankexplorer nicht mehr nur auf .NET-Datenbanken beschränkt, sondern jetzt einen weiteren Knoten mit dbExpress-Datenbankverbindungen für Win32 und VCL.NET enthält. Wesentliche Änderungen an den nativen bzw. VCL.NET-Datenbankkomponenten sind nicht zu verzeichnen. Allerdings wurden die Treiber für dbExpress überarbeitet und an neue Datenbankversionen angepasst. dbExpress in Delphi 2006 wird voraussichtlich Treiber für die folgenden Datenbanken enthalten:

• InterBase 7.5
• Oracle 10g
• Microsoft SQL Server 2005
• Informix 9x
• IBM DB2 8
• MySQL 4.0.24
• SQL Anywhere 9
• Sybase 12.5

Der neue Treiber für den MS SQL Server unterstützt zudem Unicode. Im Bereich der Datenbankunterstützung für .NET ist das wichtigste Feature die Implementierung von Connection-Pooling für die Borland Data Provider. Verbindungen werden nicht sofort abgebaut, sondern in einen Pool offener Verbindungen gelegt, aus dem neue Anforderungen dann bedient werden können, ohne dass ein kompletter Neuaufbau der Verbindung notwenig ist. In Delphi 2005 unterstützte lediglich der BDP Provider für den MS SQL Server dieses Pooling.

[ header = Seite 5: ECO III ]

Gerade für das verbindungslose Modell des Datenzugriffs unter .NET und besonders im Hinblick auf ASP.NET war das ein längst überfälliges Feature für alle Borland Data Provider. Ebenfalls neu ist die Unterstützung von SQL Tracing für BDP, welches das Debugging der abgesetzten SQL-Befehle erleichtert. Wie die dbExpress-Treiber wurden auch die Borland Data Provider an neue Datenbankversionen angepasst und arbeiten mit den aktuellen Versionen der unterstützten Datenbanken zusammen.

Abb. 8: Codeaudits werden nun auch für Pascal unterstützt

ECO III

Die auffälligste Änderung an ECO III ist die Unterstützung von Statechart-Diagrammen in ECO. Bisher war es nur möglich, Klassendiagramme zu modellieren und diese in Code umzusetzen. Mit Delphi 2006 können auch Statemachines in ECO modelliert und zur Laufzeit direkt ausgeführt werden. Des Weiteren unterstützt ECO III eine neue so genannte Action Language, mit deren Hilfe Anweisungen direkt im Diagramm abgelegt werden können, ohne dass weiterer Code erforderlich ist. Die Action Language ist eine Erweiterung der bisher schon integrierten und standardisierten OCL (Object Contraint Language), die als reine Abfragesprache um Zuweisungen und neue Befehle zur Bearbeitung von Listen und zum Anlegen und Löschen von Objekten erweitert wurde. Es ist also keine komplett neue Sprache, sondern lediglich eine Erweiterung des bestehenden OCL-Standards, der es ermöglicht, mehr Logik und Funktionalität programmiersprachenunabhängig im Modell abzulegen.

Waren die ECO-Komponenten bisher der Architect-Edition vorbehalten, so finden sich in der neuen Version die ECOKomponenten bis hinunter zur Professional-Edition. Die Einschränkungen in den kleineren Versionen betreffen vor allem die Persistenz. Statt SQL-Datenbanken können in der Professional-Edition nur XML-Dateien als persistenter Speicher verwendet werden.

Resümee

In der neuen Delphi-Version trägt Borland der Tatsache Rechnung, dass viele Delphi-Entwickler nach wie vor nicht auf .NET umgestiegen sind und hat sich Mühe gegeben, das Produkt auch für Win32-Entwickler interessant zu machen. Delphi 2006 ist ein gereiftes Delphi 2005 mit durchaus nützlichen und praktischen Detailverbesserungen, welche die tägliche Arbeit erleichtern. Die Entwicklungsumgebung ist wieder reaktiver und schneller geworden. Man darf gespannt sein, inwieweit die breite ECO-Unterstützung im neuen Delphi dazu beiträgt, UML in der Delphi-Gemeinde zu mehr Akzeptanz zu verhelfen. Bitte beachten Sie, dass der Artikel basierend auf einer Beta-Version von Delphi 2006 geschrieben wurde und sich gegebenenfalls noch das eine oder andere Detail bis zur Auslieferungsversion ändern kann.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -