ASP.NET: Webapplikationen mit ASP.NET entwickeln – Teil 1

Unserer Webcast Reihe zu ASP.NET folgend wird diese Blogreihe nochmals, vertiefend auf die einzelnen Themengebiete eingehen und zu jedem Aspekt der ASP.NET Entwicklung Beispiele bieten.

ASP.NET ist keine Programmiersprache sondern eine Technologie. Entwickelt wird ASP.NET mittels einer der .NET Sprachen, hier C#.

Die Aufgabe von ASP.NET ist es, dynamische Webseiten zu erzeugen, dies geschieht am jeweiligen Webserver. Wird vom Browser eine ASPX Seite angefordert wird die Anfrage vom Webserver direkt an die ASP.NET Runtime geleitet, die die Verarbeitung übernimmt. Eine ASPX Seite ist eine normale HTML Seite mit zusätzlichem ASP.NET spezifischen Markup.

    1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="Demo1.Index" %>
    2:
    3: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    4:
    5: <html xmlns="https://www.w3.org/1999/xhtml" >
    6: <head runat="server">
    7:     <title></title>
    8: </head>
    9: <body>
   10:     <form id="form1" runat="server">
   11:     <div>
   12:
   13:     </div>
   14:     </form>
   15: </body>
   16: </html>

Das Beispiel zeigt eine eine leere ASPX Seite, wie sie von Visual Studio 2008 erstellt wird. Das Ganze ist Standard HTML, nur der in gelb markierte Block ganz am Beginn enthält Anweisungen für ASP.NET. Hier wird zum Beispiel die Programmiersprache auf C# festgelegt. Dieser Block wird bei ASP.NET Page Direktive genannt.

Um nun Inhalt auf dieser Seite einzufügen können ASP.NET Steuerelemente verwendet werden. Diese Elemente kapseln Layout und Logik und sind überall wieder verwendbar. Einfache Beispiele hierzu sind <asp:Label> und <asp:Textbox>

    1: ..
    2: <form id="form1" runat="server">
    3: <div>
    4:     <asp:TextBox runat="server" ID="textbox1" Text="Text eingeben"></asp:TextBox><br />
    5:     <asp:Label runat="server" ID="label1" Text="Ein Label"></asp:Label>
    6: </div>
    7: </form>
    8: ..

Im Beispiel wurden je ein Label und eine Textbox eingefügt. Wird diese Seite nun vom Browser angefordert, verarbeitet sie ASP.NET und generiert aus den Steuerelementen HTML Code, welcher zum Browser gesendet wird. Wichtig: Jedes Steuerelement MUSS mit dem Attribut runat=server versehen sein, um vom Server auch verarbeitet zu werden! So sieht das der generierte HTML Code aus, der zum Client gesendet wird:

    1: <div>
    2:        <input name="textbox1" type="text" value="Text eingeben" id="textbox1" /><br />
    3:        <span id="label1">Ein Label</span>
    4: </div>

Um dynamische Funktionaltät in ASP.NET Webanwendungen zu bringen, kann wie oben erwähnt mit jeder .NET Sprache Code erzeugt werden. Um eine saubere Trennung von Layout und Logik zu erreichen wird in ASP.NET Code in sogenannte Code-Behind Dateien geschrieben. Im ersten Beispiel oben in der Page Direktive wird dem Attribut CodeBehind="Index.aspx.cs" die ASPX Seite mit einer Codedatei “verbunden”. Diese Datei (oft Controller) genannt agiert als Schnittstelle zwischen der ASPX Seite und dem Programm dahinter. Jeder ASPX Seite ist genau eine Codebehind Datei zugewiesen. Innerhalb dieser kann auf die Seite und alle Eigenschaften und Steuerelemente zugegriffen werden.

Am Beispiel eines “Event Handlers” wird das klar. Hier sind 2 Dinge interessant

1.) Die Verarbeitung von Benutzereingaben am Server (Genaueres dazu in den Folgeposts)

2.) Der typisierte Zugriff auf alle Steuerelemente der ASPX Seite

Die ASPX Seite sieht nun folgendermassen aus. Es wurde ein Steuerelement vom Typ <asp:button> eingefügt.

    1: <asp:TextBox runat="server" ID="textbox1" Text="Text eingeben"></asp:TextBox><br />
    2: <asp:Label runat="server" ID="label1" Text="Ein Label"></asp:Label>
    3: <asp:Button runat="server" ID="buttonSubmit" Text="Absenden" />

Die Verarbeitung des Button-Clicks am Server sieht so aus. Tipp: Im Visual Studio Designer kann man so einen ASP-Button doppelklicken und schon erscheint in der Code-Behind Datei folgende Methode, auch Event-Handler genannt, die auftritt wenn ein User den Button anklickt und somit das HTML Formular an den Server sendet.

    1: protected void buttonSubmit_Click(object sender, EventArgs e)
    2: {
    3:     label1.Text = textbox1.Text;
    4: }

Wie man sieht, kann hier einfach auf die Steuerelemente über deren IDs zugegriffen werden.

Soweit zur ersten knappen Einführung in die ASP.NET Entwicklungswelt. In den folgenden Artikeln der Serie werden wir uns vielen Themen von Steuerelementen bis Anbindung von Datenbanken, etc. widmen.