ASP - Active Server Pages

Wenn man den .NET Entwicklern glauben darf, dann ist ASP mittlerweile eine sehr alte und genauso tote Technik und wird durch ASP.NET ersetzt. Seit dem das Visual Studio Web Developer Express Edition kostenfrei verfügbar ist, stehen die Zeichen auch für Administratoren auf "Wechsel". Trotzdem gibt viel immer noch einige kleine Dinge, die auch in ASP sehr schnell mit einem "Notepad" erstellt und über einen Browser auf dem Webserver gestartet werden können. Daher möchte ich hier in aller Kürze eine Einführung in ASP geben. Schließlich nutzet ich auch ASP in einigen Beispielen wie OWARedirect oder CheckRUS.

ASP Grundlagen

Wenn man vor den Zeiten von ASP.NET dynamische Webseiten ausliefern wollte, dann gab es zwei prinzipielle Vorgehensweisen

  • CGI-Skripte
    Der Webserver ruft anhand der URL ein Programm auf, welches dann anhand übergebener Daten (meist Umgebungsvariablen) die entsprechenden Seiten aufbereitet hat und per STDOUT an den Webserver zu Auslieferung gesendet hat. Jeder einzelne Aufruf einer Seite erzeugte eine neue Programminstanz und entsprechend langsam war dieses Verfahren auf Windows. Mit Fast-CGI und Programme, die permanent gelaufen sind und sich anders in den Webserver eingebunden haben, konnte man das etwas umgehen. Um die Darstellung von den Daten zu trennen, haben viele CGI-Programme die Vorlagen aus Dateien gelesen und ihre Daten quasi per "Suchen und Ersetzen" darin ausgetauscht.
  • Seiteninterpreter
    Der IIS kann aber auch eine vorgegebene Seite nehmen und darin eingebetteten Code ausführen. Im unterschied zu CGI wird also nicht ein Programm gestartet, sondern die Webseite interpretiert. An bestimmten Stellen wird über besondere Tags dem Webserver mitgeteilt, dass nun Code zum Ausführen kommt. Der Code ist also in der Seite, die auch die Anzeige steuert, enthalten.

Normalerweise hat eine Webseite eine klare Struktur. Mit der ASP-Erweiterung werden weitere Funktionen genutzt, die der Webserver, bzw. das ASP-Modul darin interpretiert. Das funktioniert sogar recht schnell, da der Code beim ersten Start kompiliert wird und dann im Speicher verbleibt. Outlook Web Access von Exchange 5.5, 2000 und 2003 nutzen sehr umfangreich ASP-Seiten. Auch andere Produkte und Dienste von Microsoft und Drittherstellern nutzten ASP. So deutet die Erweiterung "ASP" an einer URL auf den Einsatz von ASP hin. Aber auch andere Erweiterungen lassen sich entsprechend registrieren. Auch andere Skriptinterpreter wie Perl oder PHP können im IIS eingebunden werden.

ASP Testen ohne Hello World

ASP testen Sie am besten durch eine ASP-Seite, die die LaufzeitUmgebung ausgibt. Auf der Seite http://www.asphelper.de/tip/tip4_alle_request_servervariables_auflisten.asp ist ein kurzes Beispiel, welches ich noch etwas weiter vereinfacht habe.

<html>
<head><title>ServerVariablen</title></head>
<body>

Man erkennt deutlich die HTML-Formatierungen. Allerdings sieht man auch, dass sich innerhalb der "<% %>" Tags Code befindet. öffnet man solch eine ASP-Datei mit einem Editor, der auch Code sichtbar macht, dann erkennt man die Struktur etwas leichter. Trotzdem bleibt es eine mühselige Aufgabe für Entwickler in ASP Code zu entwickeln. Um Fehler zu reduzieren sollten sie unbedingt die "option explicit" setzen, damit Fehler bei Variablen sofort gemeldet werden.

Kopieren Sie diese Datei einfach in das Verzeichnis C:\inetpub\wwroot als "test.asp" und rufen Sie diese einfach per Browser auf http//:servername/test.asp auf. Sie sollten in etwa folgende Ausgabe sehen:

ASP-Test-Ausgabe

Ein Tippfehler im Code wird z.B.: wie folgt ausgegeben

Leider sind echte Codefehler nicht so einfach zu finden und zu beheben

ASP und IIS

Natürlich ist auch ASP beim Webserver umfangreich konfigurierbar. Zum einen ist die Komponente ASP beim IIS optional zu installieren. Das geht über die Systemsteuerung - Software und dann "Windows Komponenten hinzufügen". Untern dem Punkt "Anwendungsserver" finden sich dann die Internetinformationsdienste, über die man mit WWW-Dienst kommt. Hierunter sind dann die "Active Server Pages" zu installieren.

ASP Installation

Nach der Installation sollten sie prüfen, ob die Erweiterungen auch aktiviert sind.

ASP Erweiterungen aktivieren

Und dann können sie im entsprechenden virtuellen Verzeichnis die ASP-Funktion auch aktivieren. Pro Verzeichnis kann ASP dann individuell aktiviert werden (Skripts ausführen)

ASP im virtuellen Verzeichnis aktivieren ASP Konfiguration

Bitte aktivieren Sie nicht das Feld "Skriptzugriff", da ansonsten ein Anwender den Source-Code einsehen und Schwachstellen aufdecken könnte. Besonders wenn Sie von ASP-Seiten auf andere Ressourcen (z.B. Datenbaken) zugreifen und dazu die Anmeldedaten im Skript interlegt haben, ist dies höchst gefährlich. In der Konfiguration können Sie dann die Bindung von ASP an die ASP.DLL prüfen.

Einschränkungen

  • Schlechter Editor
    Es fehlt eine EntwicklungsUmgebung, wie man sie mit .NET oder auch den früheren Visual Basic schon länger gewohnt ist. ASp ist nun mal wie VBScript eine interpretierte Sprache ohne strenge Typdefinitionen. Insofern sind Editoren mit Syntax-Hervorhebung oft schon das höchste der Gefühle
  • Mühseliges Debugging
    Aus dem gleichen Grund gibt es nicht wirklich einen "Debugger" der eine Schrittweise Abarbeitung erlaubt. Meist behilft man sich mit "Debugausgaben" auf dem Bildschirm oder in Textdateien, um den Code zu entwanzen.
  • Code = Format
    Wer nicht mit eigenen COM-Objekten arbeitet, bei dem sind die Programmierlogik und die Anzeige in einer Datei vereint. Das macht es natürlich einfach, weil die ASP-Seite alles an einer Stelle kombiniert. In vielen Projekten sind aber die Aufgaben der Webdesigner und Code-Entwickler getrennt und dann ist es schon sehr aufwändig, als Entwickler in einer HTML-Seite eines Designers, seinen Code effektiv zu pflegen.

Insofern ist es wirklich absehbar, dass die ASP-Funktionalität immer seltener genutzt wird. Vielleicht sollten Sie sich wirklich mal 20 die Visual Studio Express Editionen von http://www.microsoft.com/express/ herunter laden und die Visual Web Developer Edition einfach auf allen Server vorhalten.

Weitere Links