Galileo Computing < openbook >
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


Einstieg in ASP.NET von Matthias Lohrer
Einstieg in ASP.NET
gp Kapitel

Vorwort

ASP.NET? Braucht man das?

Seit einigen Jahren entwickle ich Anwendungen für das Internet. Dabei habe ich es nicht mit riesigen Projekten, sondern mit eher überschaubaren Websites zu tun. Es ist aber immer wieder erstaunlich, wie schnell manche Unternehmen auf den Internet-Geschmack kommen, wenn sie erst einmal begriffen haben, was man mit dieser Technologie so alles anstellen kann.

Am Anfang steht oft eine kleine Website, die einige Informationen zum Unternehmen bietet. Schnell aber werden zusätzliche Funktionen gefordert. Die Werbeabteilung möchte ihre News beispielsweise selbst online stellen können. Und schon sind die Grundzüge eines Content-Management-Systems erforderlich. Die Kunden des Unternehmens sollen bestimmte Produkte über das Internet ordern können: Also muss ein Online-Shop her. Die Vertriebsabteilung möchte die Produktlisten des Online-Shops wöchentlich selbst aktualisieren. Das sollte am besten direkt aus Excel heraus geschehen.

Mit anderen Worten: Der Schritt von der simplen Homepage zur Business-Website kann ziemlich klein sein. Als Entwickler ist man ständig gefordert, leistungsfähige Lösungen schnell und kostengünstig anzubieten. Das ist aber gar nicht so einfach. Jedenfalls ist es nicht ganz so einfach, wie manche Auftraggeber es gerne hätten.

Vor diesem Hintergrund habe ich vor einiger Zeit begonnen, mich für ASP.NET zu interessieren. Ich wollte einfach wissen, ob ASP.NET irgendetwas zu bieten hat, was dem durchschnittlichen Webprogrammierer das Leben erleichtern kann. Zu diesem Interesse gesellte sich die Wahrnehmung, dass die herkömmlichen Methoden, beispielsweise Datenbankapplikationen für einen Browser zu entwerfen, nicht effizient sind. Man ist bei der Webprogrammierung auf Gedeih und Verderb an HTML gekettet, und statt sich um die Logik einer Anwendung kümmern zu können, ist man tagein, tagaus gezwungen, sich auf einem relativ niedrigen Codierungs-Niveau mit HTML und JavaScript herumzuschlagen, von der Programmierung mit PHP oder ASP einmal abgesehen. Ob da ASP.NET vielleicht etwas zu bieten hat, was die Bewältigung wiederkehrender Alltagsaufgaben erleichtern kann?

Stärken von ASP.NET

Und tatsächlich besteht eine der Stärken von ASP.NET darin, den Webentwickler bei der Realisierung wiederkehrender Alltagsaufgaben tatkräftig zu unterstützen. Man nehme nur die simple Anforderung, dass ein Anwender ein Datum in ein Textfeld eintragen soll. Spätestens an dieser Stelle beginnen in den Newsgroups die Fragen zu sprießen, mit welchem regulären Ausdruck man denn einen String als gültiges Datum überprüfen kann.

Als Entwickler ist man es aber irgendwann leid, seine Zeit mit der Analyse von Strings zu vertun. Es ist nicht effizient, eine eigene Prozedur zu erstellen, die eine entsprechende Überprüfung vornimmt, und dabei auch noch alle denkbaren Schaltjahre zu berücksichtigen. Und wohl gemerkt: Diese Überprüfung muss man natürlich zweimal programmieren. Einmal in JavaScript, damit der Browser gleich merkt, wenn etwas schief läuft, und einmal auf der Serverseite in ASP, PHP etc., damit auf keinen Fall ungültige Daten verarbeitet werden.

An dieser Stelle bewirken die Validierungssteuerelemente, wie sie ASP.NET bereitstellt, ein kleines Wunder. Angenommen, es soll ein Datum zwischen dem 1.1.1999 und dem 31.12.2002 eingegeben werden. Als ASP.NET-Entwickler schreibt man dafür lediglich diesen Code:

<form runat="server">
Datum zwischen 1.1.1999 und 31.12.2002: 
<input type="text" runat="server" id="eingabe">
<asp:RangeValidator runat="server"
     id="myRangeCheck"
     ControlToValidate="eingabe"
     MinimumValue="1.1.1999"
     MaximumValue="31.12.2001"
     Type="Date">
<p>Falsches Datum</p> <$tab> 
</asp:RangeValidator>
<input type="submit" value=" OK ">
</form></body></html>

Was jetzt passiert, ist schon erstaunlich: Die ASP.NET-Engine verwandelt diesen ASP.NET-Code in HTML- und JavaScript-Code. Wenn im Browser JavaScript aktiviert ist, wird noch im Browser überprüft, ob ein korrektes Datum eingegeben wurde. Dabei wird der 29.2.1999 korrekt abgewiesen und der 29.2.2000 wird korrekt akzeptiert. Einstellige Tages- und Monatsangaben dürfen auch einstellig eingegeben werden. Zusätzlich übernimmt natürlich auch der Server die Überprüfung, so dass auch bei deaktiviertem JavaScript zuverlässig geprüft wird. Den von ASP.NET generierten JavaScript-Code habe ich mit dem Internet Explorer 6.0, mit Netscape 6.1 und Netscape 4.7 getestet, wobei keine Probleme aufgetreten sind.

Eigentlich ist es genau das, was man sich als Webentwickler immer schon gewünscht hat, was es aber bislang weder zu kaufen noch geschenkt gab. Dabei ist das Beispiel mit dem RangeValidator-Steuerelement nur ein kleines Beispiel, aber ein typisches. ASP.NET ist voll von solchen Features, die einem Entwickler das Leben erleichtern, weil man nicht gezwungen ist, ständig das Rad neu zu erfinden. An allen möglichen Stellen sagt ASP.NET: »Junge, müh dich nicht ab! Sag mir, was du haben willst. Ich erledige das schon für dich!« Als HTML-Kenner ist man da meistens erst mal skeptisch. »Es muss aber auch unter Netscape laufen und bitte auch ohne JavaScript, und Cookies kann ich hier auch nicht brauchen, ja?« »Ja, ist gut.« Anschließende Tests sprechen für sich. Beispiel Sitzungsverfolgung: JavaScript muss nicht aktiviert sein und es werden auf Wunsch auch keine Cookies eingesetzt.

Schwächen von ASP.NET

Bei so vielen Vorteilen liegt die Frage nach den Nachteilen nahe. Der größte Nachteil: Es gibt bislang nur wenige Internet Provider, die ASP.NET unterstützen. Die Schuld daran trägt Microsoft, weil die Microsoft Web Server für den Masseneinsatz bislang einfach nicht geeignet waren. Mit den neuen .NET-Servern soll sich daran etwas ändern. Warten wir's ab. Solange die großen Provider ASP.NET nicht anbieten, muss man sich auf einige kleinere Provider beschränken. Das muss gar nicht teurer sein. Im Anhang finden Sie hierzu einige Adressen.

Ein weiterer Nachteil: Die Einarbeitungszeit in ASP.NET ist lang. Es ist viel einfacher, sich mal eben PHP reinzuziehen, als ASP.NET zu erlernen. Für PHP reicht zur Not ein Wochenende. Für ASP.NET nicht, denn für ASP.NET brauchen Sie außerdem noch VB.NET oder C#. Und dann wäre da noch das ganze .NET Framework, dessen wichtigste Bestandteile Sie ebenfalls kennen sollten.

So stellt ASP.NET in der Kombination mit dem .NET Framework zwar viele Werkzeuge zur Verfügung, mit denen ein Entwickler effizient arbeiten kann, aber es dauert einige Zeit, bis man all diese Werkzeuge kennen gelernt und ihren Gebrauch eingeübt hat. Doch diese Arbeit lohnt sich.

Nach allem, was Microsoft so sagt, wird man die Kenntnisse in VB.NET und des .NET Frameworks noch mindestens die nächsten zehn Jahre lang brauchen können. Und wer nicht gerade im nächsten Jahr in Rente geht, für den dürfte sich der Lernaufwand demnach auszahlen.

Das benötigte Basis-Know-how

Die idealen Grundlagen, um ASP.NET zu erlernen, bringen Sie mit, wenn Sie folgende Voraussetzungen erfüllen:

gp  Kenntnisse in den clientseitigen Technologien HTML, CSS und JavaScript,
gp  Kenntnisse in einer serverseitigen Technologie wie ASP, PHP, JSP etc.,
gp  Kenntnisse in Visual Basic,
gp  Kenntnisse in XML als derjenigen Basistechnologie, auf der ASP.NET und das gesamte .NET Framework aufbaut.

Sie müssen das aber nicht alles beherrschen. Grundlagen zu VB.NET und zum .NET Framework erläutere ich im Text. Dem aufmerksamen Leser wird sich auch vieles auf intuitivem Wege erschließen. Wenn Sie bislang also weder HTML noch ASP, VB oder XML kennen, dann dürfen Sie sich trotzdem gerne dieses Buch kaufen und Ihr Glück versuchen. Wahrscheinlich werden Sie aber während der Lektüre irgendwann das Bedürfnis verspüren, sich zu dem einen oder anderen Thema ergänzende Informationen zu besorgen.

Aber das ist ja auch ein legitimer Weg, sich Wissen anzueignen. Wenn Sie beispielsweise im Augenblick XML zu langweilig finden, aber motiviert sind, ASP.NET zu erlernen, dann werden Sie irgendwann mit umso größerer Begeisterung die Grundlagen von XML einfach nachholen. Nur zu! Am besten lernt man ohnehin das, wozu man gerade Lust hat. Ich bin auch immer so vorgegangen. Offizielle Lehrpläne? Nicht nötig.

Orientierung an erprobten Standards

Als Technologie bietet ASP.NET eigentlich nichts wirklich Neues. Statt dessen verknüpft ASP.NET die vorhandenen Technologien HTTP, HTML, JavaScript, CSS, XML und den Bereich der serverseitigen Programmierung so miteinander, dass der Entwickler den maximalen Nutzen daraus ziehen kann. Im Prinzip kann man mit ASP.NET nichts machen, was man nicht auch mit anderen Sprachen machen könnte. Unter Umständen muss man aber bei anderen Sprachen für vieles mehr Handarbeit leisten, was ASP.NET automatisch erledigt.

Genau dieses: Man kann mit ASP.NET nichts machen, was man nicht auch mit anderen Sprachen machen könnte, ist aber ein eindeutiger Vorteil von ASP.NET. Es bedeutet nämlich, dass ASP.NET in Bezug auf die Kommunikation mit den Clients – also den Browsern – keine proprietären Technologien neu ins Spiel bringt. Nein, bei ASP.NET ist nichts proprietär. Alles basiert auf den seit Jahren erprobten Internetstandards.

Wie das Buch zu lesen ist

Wenn es Sie in den Fingern juckt und Sie ohne viel Theorie einfach loslegen wollen, dann sollten Sie zunächst das .NET Framework SDK installieren (Kapitel 2) und anschließend direkt mit dem Crashkurs in Kapitel 4 beginnen. Kapitel 1 erläutert die Grundlagen von .NET generell. Kapitel 3 bietet einen schnellen Überblick über VB.NET. Kapitel 5 stellt die Basisklasse der gesamten ASP.NET-Programmierung vor: die Page-Klasse. Die Kapitel 6 bis 10 widmen sich den diversen Bausteinen der ASP.NET-Programmierung. Es beginnt in Kapitel 6 mit den HTML-Serversteuerelementen. Kapitel 7 stellt die Validierungssteuerelemente einzeln vor. Kapitel 8 präsentiert die Webserversteuerelemente. Kapitel 9 fasst diejenigen Webserversteuerelemente zusammen, die sich auf die Darstellung von Listen spezialisiert haben, und in Kapitel 10 lernen Sie, eigene Webserversteuerelemente zu erstellen.

Bevor Sie alle Steuerelemente auswendig gelernt haben, dürfen Sie aber gelegentlich auch schon einmal vorblättern. In Kapitel 11 lernen Sie, den Status einer Webanwendung zu verwalten. Kapitel 12 widmet sich ausführlich dem Einsatz von Datenbanken. Die Sicherheit von Webanwendungen wird in Kapitel 13 diskutiert. Die Konfiguration von Webanwendungen ist das Thema von Kapitel 14, und in Kapitel 15 lernen Sie, Ihre Anwendung durch Caching-Technologien zu beschleunigen. Zum Abschluss gibt Kapitel 16 einen Überblick über die Möglichkeiten der Web Services.

Viel Erfolg!

Was also ist ASP.NET? ASP.NET ist eine Plattform, auf der ein Entwickler effizient browserunabhängige, performante und skalierbare Webapplikationen erstellen kann. Anders herum gesagt: Wenn Ihr Ziel darin besteht, effizient browserunabhängige, performante, skalierbare Webapplikationen zu erstellen, dann lohnt es sich, ASP.NET näher kennen zu lernen.

Viel Erfolg beim Einsatz von ASP.NET wünscht Ihnen


Matthias Lohrer
im Oktober 2002

  

Einstieg in VB.NET

VB.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML




Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de