März 2009
Quo Vadis, ColdFusion?
Definition, Geschichte, Ausblick
Obwohl ColdFusion der erste Application-Server der Welt war, ist der Bekanntheitsgrad der Plattform – zumindest in Deutschland – immer noch gering. In diesem Artikel wird unter anderem der Frage nachgegangen, was die Gründe dafür sind. Ist ColdFusion tatsächlich stagnierend – oder ein äußerst erfolgreiches Produkt mit vielversprechenden Zukunftsaussichten? Wir beleuchten die Hintergründe und die lebhafte ColdFusion-Geschichte, stellen Hersteller und Features vor und veranschaulichen die Vor- und Nachteile der verschiedenen Produktausprägungen. Zum Schluss wagen wir einen Ausblick für das Jahr 2009.
Text: Harry Klein
ColdFusion Definition und Geschichte
Die erste ColdFusion-Version wurde im Juli 1995 von den Allaire-Brüdern veröffentlicht. Es handelte sich um eine kostenpflichtige Middleware, die aus drei Teilen besteht: Einem Application Server, einer Entwicklungssprache namens CFML und einer Entwicklungsumgebung. Die Maxime von Allaire galt damals wie heute: ColdFusion sollte ein möglichst einfach zu bedienendes und leistungsfähiges Werkzeug für die Erstellung von Webapplikationen sein.
Die Allaire Corporation wurde 2001 von Macromedia übernommen, im Herbst 2005 wurde Macromedia wiederum vom Grafiksoftwarespezialisten Adobe für rund 3,5 Milliarden Dollar gekauft. Diese beiden Übernahmen haben dem Produkt in keinster Weise geschadet – im Gegenteil: Sowohl Macromedia als auch Adobe integrierten ColdFusion in die eigenen Produktlinien. Ein sehr wichtiger Schritt wurde noch von Macromedia für die Version ColdFusion MX 6 unternommen, indem die Engine von C++ auf J2EE umgeschrieben wurde. Die aktuelle Version Adobe ColdFusion 8.0.1 wurde im April 2008 veröffentlicht und brachte viele Neuerungen, etwa die Unterstützung für 64-Bit-Systeme.
Neben der "Originalversion" sind auch Implementierungen, z. B. Railo, New Atlanta BlueDragon, Open BlueDragon, Smith, CORAL oder IgniteFusion verfügbar. Es würde den Rahmen dieses Artikels sprengen, auf alle diese Ausprägungen einzugehen. Wir beschränken uns daher auf die derzeit ernstzunehmendste Konkurrenz durch die Schweizer Firma Railo Technologies sowie die erste ColdFusion-Open-Source-Version Open BlueDragon.
Die Entwicklungssprache ist sehr leistungsfähig und basiert auf HTML-ähnlichen Tags und Funktionen. Objektorientierte Programmierung ist über ColdFusion Components (CFC) möglich. Entwicklern, die eher aus der Java-, JavaScript- oder PHP-Welt kommen, bietet sich auch die Möglichkeit einer Script-Syntax innerhalb so genannter CFScript-Blöcke. Diese Einschränkung wird in zukünftigen Versionen aufgehoben, sodass komplette ColdFusion Components mithilfe der CFScript-Sprache entwickelt werden können. ColdFusion-Code wird in nativen Code für die J2EE-Plattform kompiliert (Java-Bytecode) und auf einer Servlet Engine ausgeführt. Mit New Atlantas BlueDragon für das Microsoft .NET Framework kann CFML-Code auch für das .NET Framework kompiliert werden.
Stärken von ColdFusion
Einer der wichtigsten Gründe für ColdFusion ist die optimale Unterstützung des RAD-(Rapid Application Development-)Konzepts. Kundenwünsche und Anforderungen ändern sich in Webprojekten sehr häufig, die Möglichkeit, darauf schnell zu reagieren und neue Features zu implementieren, ist deswegen zentral. Wichtig im RAD-Konzept ist also die Implementierungsgeschwindigkeit, unter anderem durch Wiederverwendbarkeit von bestehenden Modulen. Diese kann in ColdFusion mit CustomTag, CFX-Tags, UDF (User Defined Functions) und CFC (ColdFusion Components) erreicht werden. Über den Tag CFImport können sogar Java Tag Libraries importiert und verwendet werden.
Datenbankabfragen erfolgen über den ColdFusion-Tag CFQuery, der sowohl SQL-Code enthalten kann als auch verwendet wird, um Stored Procedures auszuführen. Im nachfolgenden Beispiel werden Datensätze einer Tabelle users aus einer Datenbank intranet ausgelesen und in die Variable qPersonen gespeichert:
<cfquery name="qPersonen" datasource="intranet">SELECT userID, vorname, nachnameFROM users</cfquery>
Die Variable qPersonen erhält spezielle Attribute wie recordCount (Anzahl der Ergebnisse), currentRow (Aktueller Datensatz) und columnListe (Feldliste). Mit den ColdFusion-Tags CFOutput oder CFLoop können die Datensätze in diesem Query-Objekt ausgegeben werden:
<cfoutput query="qPersonen">#vorname# #nachname# (#currentRow# von #recordcount#)<br /></cfoutput>
Es ist auch möglich auf Query-Objekte im Hauptspeicher weitere Abfragen auszuführen – im ColdFusion-Jargon wären dies "Query of Queries". Zum Beispiel liefert diese Abfrage alle Personen mit dem Nachnamen Maier:
<cfquery name="qAlleMaiers" dbtype="query">SELECT firstName, lastnameFROM qPersonenWHERE nachname = 'Maier'</cfquery>
- ColdFusion-Anbieter
- ColdFusion-Anbieter
- ColdFusion-Anbieter
- ColdFusion-Anbieter
- ColdFusion-Anbieter
- ColdFusion-Anbieter
- ColdFusion-Einsatzgebiete
- CFUG Hub
- Konferenzen
- Konferenzen
- Konferenzen
- ColdFusion-Magazin
Das stimmt so nicht, die Developer Edition war schon immer kostenlos verfügbar. Aber finde ich gut, das sich jemand für CF einsetzt. Teste gerade die Centaur Alpha (ColdFusion 9).
Ein weiteres wichtiges Feauture ist die nahtlose Integration von JAVA Klassen. Man kann jede JAVA Klasse instanzieren und damit arbeiten, ohne das man JAVA lernen muss. Einfach genial. #zitieren

































