Impressum | Kontakt | Jobs
Aufdringliche Selbstdarstellung seit 1996
Homepage
von
Alexander
Auer

COLD FUSION (Teil I)

Wo andere serverseitige Programmiersprachen aufgeben, kommt Cold Fusion ins Spiel. Eine der leistungsfähigsten, und doch relativ leicht erlernbare Markup-Sprache, die alle Stücke spielt.
Nicht zufällig setzen einige der größten E-Commerce Anbieter auf dieses Schwergewicht unter den Serverseitigen Programmiersprachen.


Beinahe jeder größere Internetauftritt setzt bereits auf dynamisch generierte Server Side Includes, statt statischen HTML-Codes. Der Aufwand an Wartung reduziert sich auf ein Minimum, Datenbankabfragen und Background-Operationen können durchgeführt werden, ohne daß der User etwas davon merkt. Neben den etwas leichtgewichtigeren Serverseitigen Sprachen PHP und ASP konnte sich Cold Fusion von Allaire speziell im E-Commerce Sektor durchsetzen. Dabei setzt Cold Fusion auf eine eigene Markup-Sprache, nämlich CFML (Cold Fusion Markup Language).
Wer schon Erfahrung im Umgang mit serverseitigen Skriptsprachen mitbringt, wird sich nicht allzu schwer tun, diese Sprache zu erlernen.

Was ist Cold Fusion
Cold Fusion ist eine Entwicklungsumgebung der Firma Allaire für Webapplikationen, mit deren Hilfe man auf einfache und schnelle Weise dynamische Webseiten erstellen kann. Es besteht aus zwei Komponenten:
- Das Cold Fusion Studio, ähnlich dem bekannten HTML-Editor HomeSite
- Dem Cold Fusion Server, der benötigt wird, um den entsprechenden Code zu interpretieren

Cold Fusion läuft als CGI-Skript. Für die Ansteuerung der Datenbank hat Allaire die Cold Fusion Markup Language (CFML) konzipiert. Dabei handelt es sich um eine stark an die Syntax von HTML angelehnte Sprache, die ebenfalls mit Tags und Attributen arbeitet. Wer HTML kennt, wird deshalb auch sehr schnell mit CFML zurechtkommen.
Derzeit stehen Cold Fusion Versionen für Windows 95/98/NT und Solaris zu Verfügung.
Es werden die ServerAPis ISAPI, NSAPI und WSAPI sowie die Webserver Microsoft Information-Server, Netscape Enterise Server und WebSite (O'Reilly) unterstützt, außerdem folgende Datenbanktypen:
- alle Datenbanken mit ODBC-Schnittstelle/-Treiber
- alle OLE-Datenbanken
- native Datenbank-Treiber für Oracle (nur Enterprise Edition)
- native Treiber für Sybase (nur Enterprise Edition)
Leicht verständliche Benutzerführung in der Entwicklung von Applikationen und in der Konfiguration des Servers gehören zu den absoluten Stärken von Cold Fusion.

Für wen eignet sich Cold Fusion
Für kleinere Projekte ist Cold Fusion fast zuviel des Guten. Hier sollte eher PHP in Verbindung mit MySQL Datenbanken zum Einsatz kommen. Für diese Kombination spricht, daß beide Applikationen kostenlos und sehr flexibel sind.
Wer jedoch den Einstieg ins E-Business im größeren Stil plant und eine entsprechende Besucheranzahl kalkuliert, sollte Cold Fusion in Erwägung ziehen.
Da die Verwaltung und Konfiguration des Servers fast ausschließlich über ein Web-Interface erfolgt, werden auch weniger erfahrene Benutzer und Administratoren schnell den Einstieg finden.

Grundsätzlicher Syntax
Befehle werden in Cold Fusion, genau wie in reinem HTML, in spitzen Klammern geschrieben. Allerdings beginnen sie mit einem vorangestellten CF (z.B. <CFOUTPUT>). HTML-Code und Cold Fusion Befehle können ohne Probleme miteinander gemischt werden.
Die Dateiendung von Cold Fusion - Dateien lautet auf .cfm Die meisten Befehle müssen, ebenfalls wie unter HTML, nach dem Öffnen auch wieder geschlossen werden. Dies geschieht durch den Slash / (</cfoutput>).

Application.cfm
Beim Aufruf jeder Cold Fusion Seite wird standardmäßig immer zuerst die Datei Application.cfm aufgerufen. Dies ist insofern ein Vorteil, da in dieser Datei Variablen definiert werden können, die von allen anderen Seiten ausgelesen werden. Achten Sie darauf, daß diese Datei vorhanden ist, sonst kommt es zu Fehlermeldungen!

Variablen
Variablen kennzeichnen sich unter Cold Fusion durch die Einbettung in Rautezeichen aus. Um sie am Bildschirm auszugeben, müssen sie (bis auf Ausnahmen) innerhalb eines <cfoutput> Befehls stehen, damit Cold Fusion erkennen kann, daß es sich um Variablen handelt.
Um eine Variable zu initialisieren, wird <cfset> verwendet. Ein einfaches Beispiel, das die Ausgabe der Variable 'Test' mit dem Wert 'Hallo Welt' veranlasst:
<cfset Test="Hallo Welt">
<cfoutput>
#Test#
</cfoutput>


Eine Besonderheit von Cold Fusion ist seine Fähigkeit zur Unterscheidung, woher Variablen kommen. Wird eine Variable als Argument über die URL mitgegeben, so kann sie auch mittels #url.variablenname# angesprochen werden. Ebensolches gilt für Formularfelder, die mittels #form.variablenname# ausgelesen werden.
Diese Unterscheidung kann große Vorteile bringen, da die Herkunft eines Wertes genau bestimmt werden kann. Ebenso leicht kann man CGI Umgebungsvariablen, wie beispielsweise den Browsertyp eines Besuchers auslesen (#CGI. .HTTP_USER_AGENT#).

Dateien inkludieren
So wie alle anderen Serverseitigen Programmiersprachen, unterstützt auch Cold Fusion das dynamische inkludieren von Template-Files. Der entsprechende Befehl lautet
<CFINCLUDE TEMPLATE="dateiname.cfm">
Dadurch können häufig verwendete Seiten- und Codeteile (Copyright am Seitenende, Navigation, ...) in eigenen Dateien gespeichert werden, was die Wartung und Aktualisierung wesentlich vereinfacht.

Mailfunktionen
Auch Mailfunktionen, die mit normalem CGI relativ kompliziert sind, lassen sich schnell und einfach in Cold Fusion realisieren.
Hier ein Beispiel eines Kontaktformulars mit anschließendem Versand:

<cfif isdefined("abschicken") and abschicken="yes">
<cfmail TO="#form.email#" SUBJECT="Testmail">
<cfoutput>#form.message#</cfoutput>
</cfmail>
<cfelse>
<form action="filename.cfm?abschicken=yes" method="post">
<input type="text" name="email">
<input type="text" name="message">
<input type="submit" value="Go">
</form>
</cfif>
</body></html>


Diese wenige Zeilen Code reichen, um mittels Formular übergebene Daten zu versenden.
Zur Erklärung:
Die Funktion isdefined prüft, ob eine Variable definiert ist. Nachdem sie erst durch das Abschicken des Formulars definiert wird, wird zuerst das Formular aufgebaut. Geht der Benutzer auf 'Go' kommt der Befehl Cfmail zum Tragen, der die übergebenen Variablen als E-Mail verschickt.

Loop-Schleifen
Besonders komfortabel ist die Möglichkeit, bestimmte Ausdrücke und Funktionen in beliebiger Anzahl zu wiederholen. Die entsprechende Loop-Funktion hat folgenden Syntax:
<CFLOOP INDEX="Variablenname" FROM="Startwert" TO="Endwert" STEP="Schritte">
Dies ist gerade deshalb besonders hervorzuheben, da ähnliche Funktionalitäten in anderen Programmiersprachen nur umständlich und auf Umwegen realisiert werden können.
Eine einfache Funktion, die untereinander die Zahlen von 1- 10 im Browser anzeigt, würde folgendermaßen aussehen:
<CFLOOP index="count" from="1" to="10" Step="1">
<cfoutput>#count#</cfoutput><br>
</CFLOOP>
Die Schleife wird einfach so oft durchlaufen, bis der Endwert erreicht ist. Anschließend bricht die Schleife ab, um den restlichen Code zu bearbeiten.

Datumsfunktionen
Neben den von anderen Sprachen bereits bekannten Datumsfunktionen wie now() für die Ausgabe des aktuellen Datums, kann Cold Fusion auch mit einigen Feinheiten aufwarten.
So verfügt es über einige Vergleichsfunktion zweier Daten, Datumsformatierungsmöglichkeiten oder Rechenoperationen mit Daten. Einschränkende Zusatzattribute sind zahlreich vorhanden, so daß man auf eine Vielzahl an Möglichkeiten zurückgreifen kann.

Nach dieser ersten groben Einführung beschäftigt sich der zweite Teil in der nächsten Ausgabe mit weiterführenden Beispielen und Datenbank-Interaktion.

Weitere Informationen & Links:
http://www.allaire.com/Products/coldfusion/
Produktinformation und Download einer Evaluation-Copy

http://www.allaire.com/support/KnowledgeBase/SearchForm.cfm
Knowledge Base mit zahlreichen hilfreichen Artikeln

http://www.dli-usa.com/cfdocs/gettingstarted/contents.htm
Hilfe zu Installation, Tutorium

http://www.bcpl.net/~esaunder/CFbookmarks.html
Linksammlung zu Cold Fusion


Zurück zur Übersicht