Danksagung
Einleitung
Der Weg durch dieses Buch
Ein Wort zu Programmiersprachen
Systemvoraussetzungen
Der Inhalt der CD
Support
Blogs und andere sonderbare Dinge
Teil A
Grundlagen
Hallo, .NET
Die .NET-Initiative von Microsoft
Das Microsoft .NET Framework
Die Common Language Runtime
Programmiersprachen
Verwaltete Module
Metadaten
Die Common Intermediate Language
Assemblys
Die .NET Framework-Klassenbibliothek
Eine erste .NET Framework-Anwendung
Hello, World
Hello.cs im Einzelnen
Mehr über die Methode Main
Hello.exe im Einzelnen
.NET im Überblick
Typen und Ausnahmen
Die Datentypen des .NET Frameworks
Klassen
Strukturen
Schnittstellen
Enumerationen
Delegaten
Boxing und Unboxing
Verweistypen und Wertetypen im Vergleich
Nichtdeterministische Zerstörung
Dynamische Verknüpfung (Dynamic Linking)
Erstellen einer Mehrdateienassembly
Dynamische Verknüpfung zu einer Assembly
Versionsverwaltung von Assemblys
Freigeben einer Assembly: Der globale Assemblycache
Die Verwendung von starken Namen mit Hilfe von Attributen
Verzögerte Signierung
Ausnahmebehandlung
Auffangen von Ausnahmen
Gewährleisten der Ausführung
Auslösen von Ausnahmen
Vorschau: Die .NET Framework-Klassenbibliothek
Die .NET Framework-Klassenbibliothek
Ein-/Ausgabe von Dateien und Streams
E/A von Textdateien
E/A von binären Dateien
Auflistungen (Collections)
Hashtabellen
Dynamische Arrays
Die Anwendung WordCount
Reguläre Ausdrücke
Aufteilen von Zeichenfolgen
Suchen nach Zeichenfolgen
Ersetzen von Zeichenfolgen
Internet-Klassen
HttpWebRequest und HttpWebResponse
Der Namespace System.Web.Mail
Datenzugriff
DataReader
Einfügen, Aktualisieren und Löschen
DataSets und DataAdapter
Reflektion
Abrufen von Informationen über Assemblys, Module und Typen
Benutzerdefinierte Attribute
Dynamisches Laden von Typen (Späte Bindung)
Die FCL im Rückblick
Windows Forms
Das Programmiermodell von Windows Forms
Ein erstes Windows-Formular
Zeichnen im Formular: GDI+
Menüs
Die Anwendung ImageView
Maus- und Tastatureingaben
Steuerelemente
Die Anwendung ControlDemo
Verankerung
Dialogfelder
Die Anwendung DialogDemo
Windows Forms und Visual Studio .NET
Schritt 1: Anlegen eines Projekts
Schritt 2: Entwerfen des Formulars
Schritt 3: Hinzufügen von Feldern
Schritt 4: Ändern des Klassenkonstruktors für das Formular
Schritt 5: Hinzufügen von Hilfsmethoden
Schritt 6: Hinzufügen von Click-Handlern
Schritt 7: Hinzufügen von Tastaturhandlern
Schritt 8: Überschreiben von ProcessDialogKey
Schritt 9: Erstellen und Ausführen der Anwendung
Der Quellcode von NetCalc
Windows Forms im Rückblick
Teil B
ASP.NET
Web Forms
Grundlagen von Webanwendungen
HTTP
HTML-Formulare
Serverseitige Verarbeitung
Active Server Pages als Lösung
Ein erstes Webformular
Das Programmiermodell von Web Forms
Websteuerelemente
HTML-Steuerelemente
Ereignisse auf Seitenebene
Direktiven auf Seitenebene
Ein Währungsumrechner mit Web Forms
Code-Behind-Programmierung
Die Anwendung Lander
Die Funktionsweise von Code-Behind
Code-Behind ohne Vorkompilierung: Das Attribut Src
Verwenden von Nicht-ASP.NET-Sprachen in ASP.NET-Webformularen
Web Forms und Visual Studio .NET
Schritt 1: Erstellen eines virtuellen Verzeichnisses
Schritt 2: Anlagen eines Webanwendungs-Projekts
Schritt 3: Wechseln in den FlowLayout-Modus
Schritt 4: Hinzufügen einer Tabelle
Schritt 5: Einfügen von Text
Schritt 6: Hinzufügen von TextBox-Steuerelementen
Schritt 7: Hinzufügen von Button-Steuerelementen
Schritt 8: Hinzufügen eines Label-Steuerelements
Schritt 9: Bearbeiten des HTML-Codes
Schritt 10: Hinzufügen eines Click-Handlers
Schritt 11: Erstellen und Testen
Der Quellcode von LoanCalc
Ein Blick in die Zukunft
Websteuerelemente
Einfache Steuerelemente
TextBox-Steuerelemente
Label-Steuerelemente
HyperLink-Steuerelemente
Image-Steuerelemente
CheckBox-Steuerelemente
RadioButton-Steuerelemente
Table-Steuerelemente
Panel-Steuerelemente
Button-Steuerelemente
Listen-Steuerelemente
DropDownList-Steuerelemente
ListBox-Steuerelemente
CheckBoxList-Steuerelemente
RadioButtonList-Steuerelemente
Datenbindung mit Listen-Steuerelementen
Datengebundene Steuerelemente
Repeater-Steuerelemente
Die Seite MyComicsRepeater
DataList-Steuerelemente
Die Seite MyComicsDataList
DataGrid-Steuerelemente
Die Seite MyComics DataGrid
Calendar-Steuerelemente
Erweiterte Anpassung: Das Ereignis DayRender
Showtime
Validierungs-Steuerelemente
Verwenden der Validierungs-Steuerelemente
RequiredFieldValidator
RangeValidator
CompareValidator
RegularExpressionValidator
CustomValidator
ValidationSummary
Spammers, Inc.
Bedingte Validierung
Einzelheiten zur Basisklasse WebControl
Benutzersteuerelemente
Grundlagen
Die Direktive @ Control
Ein erstes Benutzersteuerelement
Hinzufügen von Eigenschaften
Hinzufügen von Ereignissen
Verwenden von Code-Behind bei Benutzersteuerelementen
Das Steuerelement XmlNavBar
Dynamisches Laden und Cookies
Cookies
Cookies in ASP.NET
Die Seite MyQuotes
Fragmentcaching
Vorschau: Benutzerdefinierte Steuerelemente
Benutzerdefinierte Steuerelemente
Grundlagen
Ein erstes benutzerdefiniertes Steuerelement
Testen des Steuerelements Hello
Verbessern des Steuerelements Hello: Hinzufügen von Eigenschaften
Mehr über HtmlTextWriter
Postbacks und Postbackdaten
Die Schnittstelle IPostBackDataHandler
ViewState
Änderungen
Die Funktionsweise von ViewState
Hervorrufen von Postbacks
Die Schnittstelle IPostBackEventHandler
Das Steuerelement AutoCounter
Zusammengesetzte Steuerelemente
Deklarative Zusammensetzungen
Das Steuerelement GroupBox
Programmgesteuerte Zusammensetzungen
Das Steuerelement Login
Serversteuerelemente und clientseitiges Scripting
Rückgabe von JavaScript an den Client
Die Methode RegisterClientScriptBlock
Fernhalten des Codes vom Client
Das Steuerelement RolloverImageLink
Das Steuerelement NumTextBox
Grafische Steuerelemente
HTTP-Handler
Das Steuerelement Odometer
Funktionsweise von Odometer
Zusammenfassung
Webanwendungen
Der Aufbau einer ASP.NET-Anwendung
Die Datei Web.config
Konfigurationsvererbung
Die Datei Gobal.asax
Globale Direktiven
Globale Ereignishandler
Globale Objekttags
Der Anwendungsstatus
Verwenden des Anwendungsstatus
Sperren und Entsperren
Die Anwendung AppCounter
Der Anwendungscache
Hinzufügen und Entfernen von Einträgen
Sperren und Entsperren
Richtlinien für abgelaufene Einträge
Rückrufe beim Entfernen von Einträgen aus dem Cache
Die Methode Cache.Add
Die Anwendung SmartQuotes
Der Sitzungsstatus
Verwenden des Sitzungsstatus
Die Seite SessionSpy
Sitzungsstatus ohne Cookies
Prozessmodelle für den Sitzungsstatus
Gültigkeitsdauer einer Sitzung
Deaktivieren eines Sitzungsstatus
Ein Wort zu Webfarmen
Die Anwendung Congo.com
Congo.com im Einzelnen
Übungen mit Congo.com
Sicherheit unter ASP.NET
Was bedeutet Websicherheit?
Authentifizierung
Autorisierung
IIS-Sicherheit
ASP.NET-Sicherheit
Windows-Authentifizierung
Basisauthentifizierung
Digestauthentifizierung
Integrierte Windows-Authentifizierung
Informationen über authentifizierte Benutzer
Die Windows-Authentifizierung im Einsatz
Windows-Authentifizierung und URL-Autorisierung
Windows-Authentifizierung und rollenbasierte Sicherheit
Formularbasierte Authentifizierung
Ein erster Überblick
Formularbasierte Authentifizierung in der Praxis
Gültigkeitsdauer eines Authentifizierungscookies
Formularbasierte Authentifizierung und rollenbasierte Sicherheit
Abmelden
Sicherheit von Authentifizierungscookies
Warnung
Webdienste
Webdienste
Ein erster Webdienst
Testen eines Webdiensts
Webdienste und Code-Behind
Die Basisklasse Webservice
Das Attribut WebMethod
Die Web Services Description Language
Webdienste und komplexe Datentypen
Suche nach Webdiensten - DISCO
Suche nach Webdiensten - UDDI
Clients für Webdienste
Proxys für Webdienste
Ein einfacher Webdienst-Client
Hartkodieren des Dienst-URLs
Asynchrone Methodenaufrufe
Webdienst-Clients und Proxyserver
Die Anwendung CityView
Funktionsweise von CityView
Webdienste gegen Gebühr
Der Beginn eines neuen Zeitalters
Teil C
Fortgeschrittene Themen
ADO.NET
Dr. Sql und Mr. OleDb
Die Namespaces System.Data.SqlClient und System.Data.OleDb
Connection, Command und DataReader
Die Klasse SqlConnection
Die Klasse OleDbConnection
Öffnen und Schließen von Verbindungen
Die Command-Klassen
Die Methode ExecuteNonQuery
Die Methode ExecuteScalar
Die Methode ExecuteReader
Befehle in Transaktionen
Parametrisierte Befehle
Gespeicherte Prozeduren
DataSets und DataAdapter
Die Klasse DataSet
Die DataAdapter-Klassen
Initialisieren eines DataSets von einer Datenbank aus: DataAdapter.Fill
DataTable & Co.
Weitergeben von Änderungen an die Datenbank: DataAdapter.Update
Die CommandBuilder-Klassen
Die Klasse DataView
Ein Wort zu XML
XML
XML-Grundlagen
Elemente
Attribute
CDATA, PCDATA und Entitätsreferenzen
Namespaces
Gültigkeit von Dokumenten und Schemata
XML-Parser
Lesen und Schreiben von XML
Die Klasse XmlDocument
Die Klasse XmlTextReader
Die Klasse XmlValidating Reader
Die Klasse XmlTextWriter
XPath
Grundlagen
XPathNavigator & Co.
Eine Anwendung zur Auswertung von XPath-Ausdrücken
XSL-Transformationen (XSLT)
Clientseitige Konvertierung von XML in HTML
Serverseitige Konvertierung von XML in HTML
Konvertierung von XML-Dokumentformaten
Zusammenfassung
Multithreading
Threads
Starten von Threads
Vorder- und Hintergrund-Threads
Prioritäten
Anhalten und Wiederaufnehmen von Threads
Beenden von Threads
Die Anwendungen Sieve und MultiSieve
Timer-Threads
Thread-Synchronisierung
Die Klasse Interlocked
Monitore
Monitor-Objekte im Einzelnen
Lese- und Schreibsperren
Mutex-Objekte
Ereignisse
Warten auf mehrere Synchronisierungsobjekte
Serialisierter Zugriff auf Auflistungen
Thread-Synchronisierung über das Attribut MethodImpl
Thread-Pooling
Remoting
Grundlagen
Eine erste Remoting-Anwendung
Programmgesteuerte oder deklarative Konfiguration?
Server- oder Clientaktivierung?
Die Methoden Activator.GetObject und Activator.CreateInstance
Leases und die Gültigkeitsdauer von Objekten
Erweitertes Remoting
Verwenden von IIS als Aktivierungsagent
HTTP-Kanäle und binäre Formatierer
Delegaten und Ereignisse
Asynchrone Methodenaufrufe
Die Anwendung NetDraw
Microsoft .NET: Eine neue Welt
Stichwortverzeichnis
Der Autor