Inhalt | 6 |
Vorwort | 12 |
1 Einführung | 14 |
1 Einführung | 16 |
1.1 Wer Sie sind | 16 |
1.2 Was Sie erwarten dürfen | 16 |
1.3 Was Sie brauchen | 17 |
1.4 Wie Sie Tipparbeit sparen | 17 |
1.5 Worauf Sie achten sollten | 17 |
1.6 Wie Sie Kontakt aufnehmen können | 18 |
2 Basics | 20 |
2 Basics | 22 |
2.1 Was ist ASP.NET? | 22 |
2.2 Struktur einer Web-Applikation | 22 |
2.2.1 Anlage einer neuen Web-Applikation | 23 |
2.3 Aufbau einer ASP.NET-Seite | 23 |
2.3.1 Eine einfache Seite | 24 |
2.3.2 Eine dynamische Seite | 25 |
2.4 Das ASP.NET-Objektmodell | 26 |
2.4.1 Die Klasse Page | 27 |
2.4.2 Die Klasse HttpRequest | 27 |
2.4.3 Die Klasse HttpResponse | 29 |
2.4.4 HttpServerUtility | 30 |
2.5 Direktiven | 31 |
2.5.1 Die @Page-Direktive | 31 |
2.5.2 Die @Import-Direktive | 32 |
3 Web-Formulare | 34 |
3 Web-Formulare | 36 |
3.1 Basics | 36 |
3.1.1 HTML Server Controls versus Web Controls | 36 |
3.1.2 Postback | 37 |
3.1.3 Persistenz | 37 |
3.1.4 Objekthierarchie | 38 |
3.2 HTML Server Controls | 38 |
3.2.1 Übersicht der HTML Server Controls | 40 |
3.2.2 Die Basisklasse HtmlControl | 42 |
3.2.3 Das allgemeine HTML Server Control | 43 |
3.2.4 Container-Controls | 43 |
3.2.5 LiteralControl | 48 |
3.2.6 Eingabeelemente | 49 |
3.3 Web Controls | 57 |
3.3.1 Übersicht der Web Controls | 58 |
3.3.2 Die Basisklasse WebControl | 58 |
3.3.3 Standard Web Controls | 60 |
3.3.4 Reiche Web Controls | 65 |
3.4 Smart Navigation | 66 |
3.5 Den ViewState für eigene Daten nutzen | 69 |
3.6 Controls dynamisch hinzufügen | 71 |
3.7 Datenaustausch zwischen Web-Formularen | 73 |
3.7.1 Die Eigenschaft HttpContext.Handler | 73 |
4 Eingabevalidierung | 78 |
4 Eingabevalidierung | 80 |
4.1 Die Basisklasse BaseValidator | 81 |
4.2 Verfügbare Validation Controls | 82 |
4.2.1 RequiredFieldValidator | 82 |
4.2.2 CompareValidator | 83 |
4.2.3 RangeValidator | 84 |
4.2.4 RegularExpressionValidator | 84 |
4.2.5 CustomValidator | 85 |
4.3 Fehlerübersicht mit dem ValidationSummary | 87 |
5 Datenbindung | 90 |
5 Datenbindung | 92 |
5.1 Einfache Datenbindung | 92 |
5.2 Einführung in ADO.NET | 94 |
5.2.1 Verbindungsloser Zugriff | 94 |
5.2.2 Das DataSet-Objekt | 95 |
5.2.3 XML als zentrales Element | 95 |
5.2.4 Einbindung in ASP.NET | 95 |
5.2.5 Einfacher Lesezugriff | 97 |
5.2.6 Stichwort SQL-Injection | 98 |
5.2.7 Arbeiten mit dem DataSet | 99 |
5.2.8 Daten ändern und neu anlegen | 101 |
5.3 List Controls | 102 |
5.3.1 Die Basisklasse ListControl | 102 |
5.3.2 ListBox | 103 |
5.3.3 RadioButtonList | 105 |
5.4 Data Controls | 107 |
5.4.1 Repeater | 108 |
5.4.2 Die Basisklasse BaseDataList | 110 |
5.4.3 DataList | 111 |
5.4.4 DataGrid | 113 |
6 Code Behind | 122 |
6 Code Behind | 124 |
6.2 Server Controls und Code Behind | 127 |
6.3 Code Behind-Klassen kompilieren | 127 |
6.4 Visual Studio.NET und Code Behind | 128 |
6.5 Seitenvorlagen mit Code Behind | 128 |
7 State-Management | 134 |
7 State-Management | 136 |
7.1 Session State | 136 |
7.1.1 Wie das Session-Management funktioniert | 136 |
7.1.2 Zugriff auf Session-Variablen | 137 |
7.1.3 Ablage der Session-Daten | 139 |
7.1.4 Ablage von komplexen Daten | 139 |
7.1.5 Konfiguration | 141 |
7.1.6 Session-Ereignisse nutzen | 143 |
7.2 Application State | 143 |
7.2.1 Zugriff auf applikationsweite Variablen | 144 |
7.2.2 Application-Ereignisse nutzen | 145 |
8 Wichtige .NET-Klassen | 148 |
8 Wichtige .NET-Klassen | 150 |
8.1 Emails versenden | 150 |
8.1.1 Eine Mail mit nur einer Zeile Code | 150 |
8.1.2 Die Klasse MailMessage | 151 |
8.1.3 Wer verschickt die Mail eigentlich? | 152 |
8.1.4 Mehrere Empfänger adressieren | 153 |
8.1.5 Dateien anhängen | 153 |
8.2 Zugriff auf das Dateisystem | 154 |
8.2.1 Zugriff auf Laufwerke und Verzeichnisse | 155 |
8.2.2 Zugriff auf Dateien | 158 |
8.2.3 Dateien lesen und schreiben | 158 |
8.3 Grafiken on the fly generieren | 160 |
8.3.1 Zeichnen mit der Klasse Graphics | 161 |
9 Sicherheit | 164 |
9 Sicherheit | 166 |
9.1 Basics | 166 |
9.1.1 Authentication | 166 |
9.1.2 Authorization | 168 |
9.1.3 Impersonation | 168 |
9.2 Windows Authentication | 168 |
9.2.1 Konfiguration | 169 |
9.2.2 Windows Authentication im Einsatz | 169 |
9.2.3 Gruppenmitgliedschaft überprüfen | 172 |
9.2.4 Impersonation | 172 |
9.3 Forms Authentication | 175 |
9.3.1 Konfiguration | 176 |
9.3.2 Forms Authentication im Einsatz | 176 |
9.3.3 Individuelle Überprüfung der Benutzerdaten | 178 |
9.4 Passport Authentication | 178 |
9.5 Authorization | 179 |
9.5.1 File Authorization | 179 |
10 Eigene Controls | 182 |
10 Eigene Controls | 184 |
10.1 User Controls | 184 |
10.1.1 Eigenschaften implementieren | 185 |
10.1.2 Web Controls in User Control verwenden | 186 |
10.1.3 Ereignisse implementieren | 187 |
10.1.4 User Controls dynamisch laden | 191 |
10.2 Custom Controls | 192 |
10.2.1 Ein einfaches Beispiel | 192 |
10.2.2 Bestehende Controls erweitern | 194 |
11 Caching und Optimierung | 200 |
11 Caching und Optimierung | 202 |
11.1 Cachen von ganzen Seiten | 202 |
11.1.1 Ein einfaches Beispiel | 203 |
11.1.2 Die @OutputCache-Direktive | 204 |
11.2 Cachen von Seitenbereichen | 204 |
11.2.1 Ein einfaches Beispiel | 205 |
11.3 Cachen von Objekten | 206 |
11.3.1 Zugriff auf die Cache-Collection | 206 |
11.3.2 Ein einfaches Beispiel | 207 |
11.3.3 Abhängigkeiten festlegen | 208 |
11.4 Weitere Optimierungsmöglichkeiten | 210 |
11.4.1 Arbeiten mit Sessions | 210 |
11.4.2 Arbeiten mit Server Controls | 211 |
11.4.3 Arbeiten mit dem ViewState | 212 |
11.4.4 Round Trips zum Server | 213 |
11.4.5 Programmseitige Textausgaben | 216 |
11.4.6 Arbeiten mit Ausnahmen | 216 |
11.4.7 Arbeiten mit COM-Komponenten | 218 |
11.4.8 Arbeiten mit Datenbanken | 218 |
11.4.9 Debugging | 219 |
Index | 222 |