Intelligenz lässt sich nicht am Weg, sondern nur am Ergebnis feststellen.
– Garry Kasparov Kapitel 26 JavaScript goes .NET
In Kapitel 20 haben Sie bereits Microsofts .NET-Technologie anhand eines Web Service im Einsatz gesehen. In diesem Kapitel gehen wir einen Schritt weiter und werfen einen Blick über den Tellerrand: In .NET können Sie sogar mit JavaScript programmieren! Genauer gesagt, in Microsofts JavaScript-Dialekt JScript. Die .NET-Anpassung der Sprache wurde von den Redmondern schlicht JScript.NET getauft. Die Web-Abteilung von .NET heißt ASP.NET – Sie wissen sicherlich, dass ASP für Active Server Pages steht und die alte Microsoft-Technologie für die serverseitige Skriptprogrammierung ist.
Als Voraussetzungen benötigen Sie dieselbe Software, die schon in Kapitel 20 für .NET Web Services (Version 1.x) genannt wurde: einen Microsoft IIS-Webserver sowie das .NET Framework. Standardmäßig wird der Webserver meist so installiert, dass die .NET-Dateien in c:\inetpub\wwwroot abgelegt werden. Eine ASP.NET-Seite hat die Endung .aspx, deswegen enden auch alle Dateien in diesem Kapitel so. Im Webbrowser rufen Sie dann die Datei über http://localhost/dateiname.aspx auf (und nicht über den Pfadnamen auf der Festplatte). Auch mit ASP.NET 2.0 und dem Visual Web Developer können Sie in JScript.NET entwickeln, allerdings hilft Ihnen die Entwicklungsumgebung nicht dabei. Die Sprache wird aber weiterhin von ASP.NET 2.0 an sich unterstützt.
An dieser Stelle gebe ich nur einen groben Überblick über einige der Möglichkeiten von ASP.NET/JScript.NET. Für weiterführende Informationen sollten Sie Spezialliteratur lesen.
26.1 Erste Schritte  
Nun wollen wir die Funktionstüchtigkeit von ASP.NET an kleineren Beispielen ausprobieren. Zunächst einmal muss ASP.NET mitgeteilt werden, dass in JScript.NET programmiert werden soll (der Standard ist nämlich eine andere Microsoft-Sprache, Visual Basic). Das geht mit folgender Anweisung:
<%@ Page Language="JScript" %>
Skriptcode wird in ASP.NET vor dem eigentlichen HTML-Code angebracht, und zwar innerhalb der folgenden Tags:
<script runat="server">
// hier kommt der Skriptcode hin
</script>
Besonders wichtig ist hier das Attribut runat="server". Jedes Element, das dieses Attribut hat, ist für ASP.NET sichtbar. Aber auch das Gegenteil gilt: Wenn Sie dieses Attribut vergessen, kann ASP.NET mit dem Element nichts anfangen. Lassen Sie es beispielsweise beim <script>-Tag weg, so wird der dort platzierte Code für clientseitigen JavaScript-Code gehalten und von ASP.NET nicht angerührt.
ASP.NET ist zudem komplett objektorientiert, Sie müssen also alles über Methoden abhandeln. Hilfreich ist hier die reservierte Methode Page_Load(). Diese wird beim Laden der Seite ausgeführt (sie ist also eine Art Pendant zum clientseitigen Gegenstück onload). Hier folgt ein kleines Beispiel. Die Anweisung Response.Write() ist das serverseitige Gegenstück zu document.write() von JavaScript:
<%@ Page Language="JScript" %>
<script runat="server">
function Page_Load() {
Response.Write("ASP.NET ist einfach zu erlernen");
}
</script>
<html>
<head>
<title>ASP.NET</title>
</head>
<body>
</body>
</html>
Wie zu erwarten, gibt dieses Skript den gewünschten Text aus.
 Hier klicken, um das Bild zu Vergrößern
Abbildung 26.1 Das erste ASP.NET-Skript
Interessant ist ein Blick auf den erzeugten HTML-Quellcode:
ASP.NET ist einfach zu erlernen
<html>
<head>
<title>ASP.NET</title>
</head>
<body>
</body>
</html>
Sie sehen: Der Text wurde vor dem HTML-Code ausgegeben; der (serverseitige) <script>-Block ist verschwunden: Er wurde auf dem Webserver interpretiert, und das Ergebnis seines Codes, nämlich die Textausgabe, wurde an den Browser geschickt.
Es gibt noch eine weitere, sehr bequeme Möglichkeit, Text mit ASP.NET auszugeben. Dazu müssen Sie zunächst ein textfähiges HTML-Element erstellen, beispielsweise <p> oder <div> oder <span>. Geben Sie diesem Element eine eindeutige ID sowie das schon bekannte Attribut runat="server". Hier ein Beispiel:
<p id="Absatz" runat="server">Text ...</p>
Der Clou: Über die ID können Sie nun auf das HTML-Element zugreifen, und zwar von ASP.NET aus. Dessen Eigenschaft InnerHtml entspricht der Eigenschaft innerHTML (beachten Sie die unterschiedliche Schreibweise), die neuere Versionen des Internet Explorer und Netscape Navigator kennen:
Absatz.InnerHtml = "HTML-Zugriff leicht gemacht";
Hier sehen Sie ein komplettes Listing:
<%@ Page Language="JScript" %>
<script runat="server">
function Page_Load() {
Absatz.InnerHtml = "HTML-Zugriff leicht gemacht";
}
</script>
<html>
<head>
<title>ASP.NET</title>
</head>
<body>
<p id="Absatz" runat="server">Text ...</p>
</body>
</html>
 Hier klicken, um das Bild zu Vergrößern
Abbildung 26.2 Der Text wird im <p>-Element ausgegeben.
Wie Sie sehen, wird der Text im Webbrowser ausgegeben. Werfen wir wieder einen Blick auf den erzeugten HTML-Quellcode:
<html>
<head>
<title>ASP.NET</title>
</head>
<body>
<p id="Absatz">HTML-Zugriff leicht gemacht</p>
</body>
</html>
Sie stellen fest: Wieder ist der <script>-Block verschwunden; innerhalb des <p>-Elements steht jetzt der angegebene Text (das runat="server" ist ebenfalls nicht mehr da).
|