ColdFusion 8: Gelungene Rundumerneuerung
Artikel erschienen in Swiss IT Magazine 2007/19
Mit der Version 8 hat Adobe den ersten Major-Release von ColdFusion seit der Übernahme von Macromedia vorgestellt. In der Entwickler-Community stellte man sich in den Monaten zuvor immer wieder die Frage, ob Adobe der Webentwicklungsplattform wohl den nötigen Stellenwert zukommen lassen würde.
Wer eine State-of-the-Art-Site mit datenbankbasierten AJAX-Steuerelementen programmieren will, kommt bei ColdFusion 8 voll auf seine Rechnung. Adobe hat verschiedene Befehle um AJAX-Funktionalität erweitert, mit denen sich die meisten gängigen AJAX-Controls im Handumdrehen erstellen lassen. Dazu zählen asynchrone Data Grids mit Editier- Weiterblätter- und Sortierfunktion ebenso wie Register, Menüs, Baumstrukturen, interagierende Popup-Fenster oder ein Rich-Text-Editor.
Der Programmierer muss sich beim Einsatz dieser Komponenten weder mit Javascript noch mit XML-Files herumschlagen, sondern konfiguriert lediglich die entsprechenden CF-Befehle. Im Developer’s Guide sind dafür diverse Beispiel-Codes enthalten, die sich auch von weniger versierten Usern rasch an die individuellen Bedürfnisse anpassen lassen. Das Prinzip ist bei allen AJAX-Controls dasselbe: Die Queries werden in einer separaten Datei abgelegt, die dann durch Control-Ereignisse wie Click oder Change ausgelöst werden, worauf der Output asynchron im Hintergrund nachgeladen wird.
Leider weisen aber einige Controls noch gewisse Beschränkungen auf: So lassen sich etwa im Data Grid die Daten zwar direkt in den Zellen der Tabelle editieren, und auch ein Delete-Button wird zur Verfügung gestellt, doch gibt es keine Möglichkeit, direkt neue Daten zu erfassen.
Mit einem ganzen Set von Anweisungen adressiert Adobe bei CF 8 die Zusammenarbeit mit Microsofts Exchange-Mailserver. Die neuen Befehle erlauben das Auslesen, Löschen sowie Verzeichnisoperationen mit Mails, Kalendereinträgen, Kontakten sowie Aufgaben mitsamt Routinen für das Handling der jeweiligen Attachments. Mit Ausnahme von Mails, die nach wie vor über den CFMAIL-Befehl generiert werden, ist auch die Erstellung der Exchange-Objekte möglich.
Gänzlich neue Möglichkeiten eröffnen sich auch im Zusammenhang mit PDF-Dokumenten. Mit dem neuen Befehl CFPDF lassen sich einzelne Seiten oder auch komplette Dokumente zu einem neuen File zusammenführen, einzelne Seiten aus einem PDF löschen oder interaktive Dokumente in ein «flaches» PDF konvertieren. Weitere Funktionen betreffen die Verschlüsselung, den Passwortschutz oder das Wasserzeichen-Handling. Doch damit nicht genug: Über die Anweisung CFPDFFORM lassen sich PDF-Formulare, die mit Adobe LiveCycle oder Acrobat erstellt wurden, weiterbearbeiten. PDF-Formulardaten können auch ausgelesen und beispielsweise in einer Datenbank gespeichert werden.
Wie eingangs erwähnt, hat Adobe grossen Wert auf die Integration einerseits mit bestehenden Adobe-Lösungen, andererseits aber auch mit Systemen von Drittanbietern gelegt. Neben der Anbindung an Microsofts Exchange Server ist hier insbesondere die Möglichkeit zu nennen, .NET-Objekte einzubinden respektive aufzurufen, wobei lokale wie auch Remote-Objekte unterstützt werden.
Im gegenwärtigen Stadium weist diese .NET-Integration allerdings einige Beschränkungen auf: So lassen sich zwar Klassen wie System.Data.DataTable in ColdFusion-Datentypen umwandeln, doch ist dies umgekehrt nicht möglich. Ebenso ist etwa auch der Zugriff auf .NET-User-Interface-Komponenten nicht möglich.
Dafür finden sich in CF 8 neu ein Event Gateway für die Interaktion mit dem Flash Communication Server sowie mit den LiveCycle Data Services oder ein Debugger-Plug-in für die Entwicklungsumgebung Eclipse.
Schliesslich bietet ColdFusion 8 nach Angaben der Entwickler von Adobe auch eine massiv bessere Performance: Der aktuelle Release soll gegenüber der MX-7-Version unter dem Strich mehr als viermal schneller sein. In diesem Zusammenhang liefert auch der neuintegrierte Server-Monitor wichtige Erkenntnisse, der über die Administrationsoberfläche aufgerufen wird.
Über diverse grafische Ansichten lässt sich damit beispielsweise in Echtzeit verfolgen, welche Page-Aufrufe und Funktionen dem Server wieviel Leistung abverlangen. Der Monitor erweist sich damit insbesondere beim Performance-Tuning schnell als unverzichtbares Werkzeug.
Neben all den genannten Features finden sich in der jüngsten ColdFusion-Version unzählige weitere Verbesserungen und Neuerungen. Zu nennen sind insbesondere:
- Bildbearbeitung: über 50 neue Befehle zum Erstellen und Zeichnen, Verändern oder Konvertieren von Bilddaten
- ZIP-Handling: Packen und Entpacken von ZIP- und JAR-Archiven
- Report Builder: rundumerneuerter Report Builder mit erweitertem Funktionsumfang
- RSS-Feed: Lesen und Erstellen von RSS- oder Atom-Feeds
- Administrator: Handling verschiedener Administratoren-Accounts mit unterschiedlichen Zugriffsrechten
- Thread-Kontrolle: Steuerung von Threads über den neuen CFTHREAD-Befehl
- Suchmaschine: neue Version von Verity.
Grundsätzlich muss man sich aber auch beim aktuellen ColdFusion-Release die Frage stellen, weshalb man für ein Entwicklungs-Framework Geld ausgeben soll, wenn denn äquivalente Lösungen wie etwa Microsofts ASP.NET oder die PHP-Plattform kostenlos eingesetzt werden können.
Tatsächlich liegt hier denn auch der grösste Schwachpunkt der aktuellen ColdFusion-Version: Zwar können den höheren Softwarekosten durchaus schnellere Entwicklungszeiten entgegengestellt werden, doch liegen die Preise nach wie vor in exorbitanten Höhen.
Dazu kommt, dass Adobe auch bei den Ex-Macromedia-Produkten in Europa deutlich höhere Preise verlangt als in den Vereinigten Staaten: Allein für die Standardversion bezahlt der Schweizer Käufer mit 1995 Franken über 25 Prozent mehr als sein US-Kollege. Die Lokalisierung kann im aktuellen Fall für einmal nicht als Argument ins Feld geführt werden: ColdFusion 8 ist nämlich (zumindest vorläufig) ausschliesslich in Englisch verfügbar.