O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Microsoft Visual C# 2010 - Das Entwicklerbuch

Book Description

Das umfassende Arbeitsbuch zur Programmierung mit Visual C# 2010. Dieses Buch behandelt die Programmierung von Windows- und Webanwendungen mit C# und Visual Studio 2010 mit folgenden Schwerpunkten: die Sprache C#, GUI-Programmierung mit Windows Forms und Windows Presentation Foundation (WPF), Vermittlung weiterführender Techniken und effizienter Umgang mit der Entwicklungsumgebung Visual Studio 2010. Die ersten Kapitel beschreiben ausführlich Struktur und Syntax der Sprache, behandeln die objektorientierte Programmierung mit C# und gehen auf die wichtigsten Utility-Klassen aus dem .NET Framework ein. Diese Kapitel sind gleichermaßen zum Erlernen der Sprache wie zum Nachschlagen bestimmter Konzepte oder Sprachelemente geeignet. Der Teil zur Erstellung von Windows Forms-Anwendungen behandelt die Windows-Programmierung von der Gestaltung erster Fenster bis zu Drag&Drop, Drucken oder Grafiken mit GDI+. Für fortgeschrittene Windows-Programmierer enthält das Buch einen Teil, der sich ausführliche mit WPF beschäftigt. Der dritte große Komplex des Buches ist weiterführenden Themen gewidmet, wie Multithreading, Datenbankzugriff, ADO, LINQ, XML und Webdiensten sowie Debuggen und Testen. Die beiliegende 90-Tage-Testversion von Visual Studio 2010 Professional rundet das umfassende Werk ab.

Table of Contents

  1. Microsoft Visual C# 2010 – Das Entwicklerbuch
  2. Einleitung
    1. Zielgruppe
    2. Aufbau des Buchs
    3. Die Beispielsammlung zu diesem Buch
    4. Die Visual Studio 2010-Edition auf der beiliegenden Buch-DVD
    5. Korrekturen und Kommentare
  3. I. Einführung in .NET 4.0 und Visual C# 2010
    1. 1. Das .NET Framework
      1. Historie
      2. Bausteine des .NET Framework
        1. Common Language Infrastructure
        2. Common Language Runtime
        3. Common Intermediate Language
        4. Just-In-Time-Compiler
      3. Assemblys
        1. Ausführungsmodell für Assemblys
    2. 2. Visual Studio 2010 und Visual C# 2010
      1. Visual Studio
        1. Geschichte
        2. Visual Studio 2010, .NET Framework 4.0 und C# 4.0
        3. Arbeiten in der Entwicklungsumgebung
          1. Die Startseite
          2. Softwareerstellung
          3. 1. Schritt: Projekt anlegen
          4. 2. Schritt: Quelltexte bearbeiten
          5. 3. Schritt: Projekt erstellen
          6. 4. Schritt: Projekt testen
          7. RAD-Entwicklung
          8. Testen, analysieren, debuggen
          9. Veröffentlichung und Installation
          10. Anpassbarkeit
      2. Die Projektverwaltung
        1. Übersicht
        2. Projektmappen
          1. Projekte und Projektmappen
          2. Der Projektmappen-Explorer
          3. Das Festplatten-Abbild
          4. Die wichtigsten Projektdateien
        3. Startprojekte, Verweise und Projektabhängigkeiten
          1. Who’s first?
          2. Verweise
          3. Abhängigkeiten
        4. Eigene Projektvorlagen
      3. Der Code-Editor
        1. Kleine Annehmlichkeiten
        2. IntelliSense
          1. QuickInfo
          2. Moduswechsel, Deaktivierung und expliziter Aufruf
        3. using-Smarttag
        4. Umschließung
        5. Codeausschnitte
        6. Umgestaltung
      4. Erstellung
        1. MSBuild
        2. Build-Konfigurationen
      5. Konfiguration
        1. Umgebungseinstellungen
        2. Extras/Optionen
          1. Mit letztem Projekt statt mit Startseite starten
          2. Anzahl der zuletzt geöffneten Projekte
          3. Tastenkombinationen
          4. Einzüge im Editor
          5. Fehlerunterstreichung deaktivieren
        3. Externe Tools einrichten
      6. Fensterverwaltung
        1. Die Andock-Hilfe
        2. Die Pin-Nadel
        3. Der IDE-Navigator
      7. Navigation
        1. Suchen
        2. Zur Definition wechseln
        3. Klassenansicht und Objektkatalog
        4. Aufrufhierarchie
      8. Hilfe
        1. Übersicht
        2. Lokal oder Online
        3. Die Online-Hilfe
          1. Design kontra Funktionalität
          2. Die C#-Referenz und die Bibliotheksdokumentation
        4. Die lokale Hilfe
          1. Online-Aktualisierung
    3. 3. Die ersten Programme
      1. Konsolenanwendungen
        1. Schritt 1: Projekt anlegen
        2. Schritt 2: Quelltext bearbeiten
        3. Schritt 3: Kompilieren
        4. Schritt 4: Ausführen
      2. Windows Forms-Anwendungen
        1. Schritt 1: Projekt anlegen
        2. Schritt 2: Formular bearbeiten
        3. Schritt 3: Kompilieren
        4. Schritt 4: Ausführen
    4. 4. Stilkonventionen
      1. Bezeichner
      2. Konventionen
      3. Blöcke
  4. II. C#-Grundlagen
    1. 5. Anatomie eines C#-Programms
      1. Programmaufbau
        1. Klassen
        2. Eintrittspunkt Main()
          1. Rückgabewert und Batch-Dateien
          2. Parameter und Befehlszeilenargumente
      2. using-Direktive und Framework-Klassen
        1. Ein- und Ausgabe
          1. Ausgabe
          2. Eingabe
        2. Kommentare
          1. Einzeilige Kommentare
          2. Mehrzeilige Kommentare
          3. Dokumentationskommentare
      3. Dateien und Assemblys
        1. Klassen und Dateien
        2. Dateien und Assemblys
          1. Anwendungen aus einzelnen Dateien erstellen
          2. Anwendungen aus mehreren Dateien erstellen
          3. Bibliotheken und andere Zieltypen erstellen
          4. Bibliotheken in Anwendungen verwenden
      4. Imperative Programmierung in C#
        1. Daten und Datentypen
        2. Literale und Variablen
        3. Operatoren und Ausdrücke
        4. Anweisungen
          1. Blöcke
          2. Verzweigungen
          3. Schleifen
        5. Funktionen (Methoden)
      5. Objektorientierte Programmierung in C#
        1. Wie sind OOP-Objekte beschaffen?
        2. Objekte und Klassen
          1. Die Klassendefinition
          2. Klassen und Objekte
          3. Die Objekterzeugung
          4. Klassen sind Verweistypen
          5. Der Konstruktor
          6. Programmieren mit Objekten
        3. Die Klasse als Zentrum der objektorientierten Programmierung
          1. Abgeschlossenheit
          2. Sichere Verwendung
          3. Kapselung
        4. Konzepte, die auf der Klasse aufbauen
          1. Modularität
          2. Vererbung
          3. Polymorphie
        5. Die Klasse als Funktionensammlung
    2. 6. Variablen, Daten und Typen
      1. Das C#-Datenmodell
        1. Datenrepräsentation
        2. Typisierung
        3. Wert- und Verweistypen
          1. Programmierung
          2. Übersicht
        4. Erweiterbarkeit
      2. Literale
      3. Variablen
        1. Definition
        2. Initialisierung
        3. Eindeutige Zuweisung
          1. Eindeutige Zuweisung für lokale Variablen
          2. Eindeutige Zuweisung für Felder
        4. Gültigkeitsbereiche
      4. Konstanten
      5. Typen: Primitive Typen
        1. Der bool-Typ
        2. Ganzzahlige Typen
          1. Ein Lob auf den Datentyp int
          2. Über- und Unterlauf
        3. Gleitkommatypen
          1. Null, NaN und Infinity
          2. Signifikante Stellen und Genauigkeit
        4. Zeichen
          1. Unicode
          2. Escapesequenzen
        5. Der decimal-Typ
      6. Typen: Definierbare Typen
        1. Klassen
        2. Schnittstellen
        3. Strukturen
        4. Arrays
        5. Enumerationen (Aufzählungen)
        6. Delegaten
      7. Typen: Strings
      8. Typumwandlung und Boxing
        1. Implizite Typumwandlungen
        2. Explizite Typumwandlungen
        3. Boxing und Unboxing
    3. 7. Operatoren und Ausdrücke
      1. Operatoren und Ausdrücke
        1. Klassifizierung nach Operanden
        2. Ausdrücke
      2. Auswertungsreihenfolge
        1. Vorrang der Operatoren
        2. Assoziativität der Operatoren
        3. Operanden
        4. Klammerung
      3. Nebeneffekte und andere Fallstricke
        1. Methodenaufrufe in Ausdrücken
        2. Teilausdruck nicht abgearbeitet
        3. Aufeinanderfolgende Operatoren
        4. Binäre numerische Erweiterungen (Promotionen)
      4. Die arithmetischen Operatoren
        1. Division und Modulo
          1. Verwendung mit Ganzzahlen
          2. Verwendung mit Gleitkommazahlen
        2. Inkrement und Dekrement
      5. Die Zuweisungsoperatoren
      6. Die relationalen Operatoren
      7. Die logischen Operatoren
        1. Logisches UND (&&, &)
        2. Logisches ODER (||, |)
        3. Logisches XOR (^)
        4. Logisches NICHT (!)
      8. Die Bit-Operatoren
        1. &, &= (bitweises UND)
        2. |, |= (bitweises ODER)
        3. ^, ^= (bitweises XOR)
        4. ~ (bitweises Komplement)
        5. << (Linksverschiebung)
        6. >> (Rechtsverschiebung)
      9. Die Operatoren für die Typidentifizierung und -umwandlung
        1. Typidentifizierung
          1. Der is-Operator
          2. Der typeof-Operator
        2. Typumwandlung
          1. Typumwandlung für Werttypen
          2. Typumwandlungen für Verweistypen
      10. Sonstige Operatoren
        1. Datenzugriff
      11. checked und unchecked
        1. Der new-Operator
        2. Der Bedingungsoperator ?:
        3. Der ??-Operator
        4. Operatoren für nicht gesicherten Code
    4. 8. Ablaufsteuerung
      1. Verzweigungen
        1. Die einfache if-Anweisung
        2. Die if...else-Verzweigung
        3. if...else-Ketten und -Verschachtelungen
          1. Der Bedingungsoperator ?:
        4. Die switch-Verzweigung
          1. Lokale Variablen in switch-Verzweigungen
          2. Fall-through-Verhalten und Unterstützung für Enumerationstypen
      2. Schleifen
        1. Die while-Schleife
          1. Verwendung der Schleifenvariable im Anweisungsblock
          2. Endlosschleifen
        2. Die do...while-Schleife
        3. Die for-Schleife
          1. Auslassung von Schleifenteilen
          2. Schleifenvariable in Schleifenkopf deklarieren
        4. Die foreach-Schleife für Arrays und Auflistungen
      3. Sprunganweisungen
        1. Die continue-Anweisung
        2. Die break-Anweisung
        3. Die goto-Anweisung
    5. 9. Arrays, Enumerationen und Strukturen
      1. Arrays
        1. Definition und Erzeugung
          1. Variablendefinition
          2. Array-Erzeugung
          3. Speicherbelegung für Arrays
          4. Zugriff auf Elemente
        2. Initialisierungslisten
        3. System.Array
          1. Arrays in Strings umwandeln
          2. Array-Länge bestimmen
          3. Arrays in Schleifen durchlaufen
          4. Array-Elemente löschen
          5. Arrays kopieren
          6. Ganze Arrays kopieren mit Clone()
          7. Arrays in andere Arrays einfügen mit CopyTo()
          8. Teilarrays in andere Arrays einfügen mit Array.Copy()
          9. Arrays sortieren und durchsuchen
          10. Sortieren
          11. Binäre Suche
          12. Lineare Suche
        4. Mehrdimensionale Arrays
          1. Definition
          2. Initialisierung
          3. Programmierung
        5. Arrays von Arrays
          1. Definition
          2. Initialisierung
          3. Programmierung
      2. Enumerationen
        1. Definition
        2. Verwendung
        3. Enumerationen und switch
        4. Die Klasse System.Enum
      3. Strukturen
        1. Definition
        2. Verwendung
        3. Unterschiede zwischen Strukturen und Klassen
  5. III. Objektorientierte Programmierung in C#
    1. 10. Klassen
      1. Die Klassendefinition
        1. Zugriff auf Klasse steuern
        2. Zugriff auf Member steuern
        3. Spezielle Klassen
        4. Partielle Klassen
      2. Konstanten
      3. Felder
        1. Definition
          1. Initialisierung
          2. Modifizierer
        2. Instanzfelder
        3. Statische Felder
          1. Initialisierung
          2. Verwendung
          3. Statische Felder als gemeinsamer Speicher für die Objekte einer Klasse
          4. Statische Felder als globale Konstanten oder Variablen
      4. Methoden
        1. Allgemeines
          1. Modifizierer
          2. Implementierung und Aufruf
        2. Instanzmethoden und this
          1. this verwenden
        3. Statische Methoden
          1. Statische Methoden und Konstruktoren
        4. Datenaustausch
          1. Parameter
          2. Wert- und Referenzparameter
          3. Ausgabeparameter (out)
          4. Arrays als Parameter
          5. Variable Parameterlisten (params)
          6. Rückgabewert
          7. Methoden vorzeitig beenden
        5. Rekursion
        6. Überladung
          1. Warum Überladung?
          2. Auflösung der Überladung
          3. Überladene Methoden aufeinander zurückführen
      5. Eigenschaften
        1. Nur-Lesen- und Nur-Schreiben-Eigenschaften
        2. Eigenschaften ohne private-Feld
        3. Unterschiedliche Modifizierer für Get und Set
      6. Konstruktoren
        1. Klassen ohne selbst definierten Konstruktor
        2. Der Standardkonstruktor
        3. Überladene Konstruktoren
          1. this in der Konstruktordeklaration
        4. Statische Konstruktoren
      7. Destruktoren
        1. Aufruf
        2. Eigener Destruktor
      8. Verschachtelte Typdefinitionen
        1. Zugriff aus anderen Klassen
    2. 11. Schnittstellen
      1. Vertragsbasierte Programmierung
        1. Modell 1: Schnittstellengestützte Methoden
          1. Der Vertrag
          2. Der Vertragsanbieter
          3. Der Vertragsnehmer
        2. Modell 2: Schnittstellen als Labels für Klassen
      2. Schnittstellen definieren
        1. Schnittstellen-Member
        2. Schnittstellenvererbung
      3. Schnittstellen implementieren
        1. Die Dokumentation ist wichtig (IComparable-Beispiel)
        2. Schnittstellen-Member verbergen
      4. Namenskonflikte in Schnittstellen lösen
    3. 12. Vererbung, Polymorphie und Klassen-Design
      1. Vererbung
        1. Das Prinzip der Vererbung
          1. Der grundlegende Mechanismus
          2. Vererbung kontra Komposition
          3. Einige wichtige Fakten
        2. Geerbte Member
          1. Geerbte Elemente bilden Unterobjekte
          2. Zugriff auf geerbte Member
          3. Konstruktor und Basisklassenkonstruktor
          4. Ausführung des Basisklassenkonstruktors
          5. Explizite Auswahl eines Basisklassenkonstruktors
          6. Überladen, verdecken, überschreiben
          7. Verdeckung
          8. Überladung
          9. Überschreibung
        3. Die oberste Basisklasse Object
          1. Vorteile für die Programmierung
          2. Die Methoden von Object
        4. Vererbung über Assembly- und Sprachgrenzen hinweg
          1. Ableitung von Klassen anderer .NET-Sprachen
          2. Common Language Specification (CLS) und Common Type System (CTS)
          3. Eine CLS-kompatible Visual Basic-Klasse
          4. Die C#-Anwendung
      2. Polymorphie
        1. Grundprinzip und Implementierung
          1. Polymorphie durch Vererbung
          2. Polymorphie durch Schnittstellen
        2. Dynamische und statische Bindung
          1. Statische Bindung
          2. Dynamische Bindung
          3. Am weitesten abgeleitete Implementierung
          4. Verwendung von new, virtual und override
          5. Virtuelle Methoden versiegeln
        3. Generische Programmierung
          1. Mit Polymorphie planen
          2. Basisklassen-Arrays
          3. Basisklassenparameter
        4. Typidentifizierung zur Laufzeit
        5. Abstrakte Klassen
          1. Abstrakte Member
          2. Abstrakte Klassen
          3. Abstrakte Klassen kontra Schnittstellen
      3. Der Klassen-Designer
        1. Klassendiagramme erzeugen
        2. Klassendiagramme bearbeiten
          1. Typen hinzufügen
          2. Bestehende Typen
          3. Neue Typen anlegen
          4. Vererbung, Schnittstellenimplementierung und Komposition
          5. Member bearbeiten
          6. Darstellung anpassen
        3. Projektdokumentationen erstellen
        4. Analysespezifikationen umsetzen
        5. Projekte pflegen
    4. 13. Indexer, Enumeratoren und Iteratoren
      1. Indexer
        1. Syntax
        2. Beispiel
      2. Enumeratoren
        1. Funktionsweise
        2. Implementierung
          1. IEnumerable
          2. IEnumerator
      3. Iteratoren
        1. foreach-Unterstützung durch Iteratoren
        2. Klassen mit mehreren (benannten) Iteratoren
        3. Eigene Lösungen, die auf IEnumerable basieren
    5. 14. Operatorenüberladung
      1. Syntax
      2. Regeln
        1. Überladbare Operatoren
        2. Regeln für die Überladung
      3. Fallbeispiel: Unäre Inkrement- und Dekrement-Operatoren
      4. Fallbeispiel: Binäre mathematische Operatoren
      5. Fallbeispiel: Relationale Operatoren
      6. Fallbeispiel: Konvertierungsoperatoren
      7. Fallbeispiel: true und false
    6. 15. Ausnahmebehandlung
      1. Konzeption und Zielsetzung
        1. Kein Weg zurück
        2. Behandeln von Ausnahmen
      2. Das try...catch-Grundgerüst
        1. Ausnahmen abfangen
        2. Mehrere catch-Handler
        3. Ausnahmen als Informationsträger
      3. Die finally-Klausel
      4. finally-Block
      5. using-Anweisung
      6. Ausnahmen auslösen
        1. Ausnahmen weiterleiten
        2. Innere Ausnahmen
      7. Die vordefinierten Ausnahmeklassen
        1. Member der Klasse Exception
        2. CLR-generierte Ausnahmen
      8. Eigene Ausnahmeklassen schreiben
  6. IV. Fortgeschrittenes C#
    1. 16. Werttypen und Verweistypen
      1. Zwischen C++ und Smalltalk
        1. Das Wertemodell
        2. Das Verweismodell
        3. Umsetzung in C++ und Smalltalk
      2. Der C#-Weg
        1. Speicherreservierung und Lebensdauer
          1. Speicherzuteilung
          2. Lebensdauer
          3. Garbage Collection
          4. Heap-Belegung
          5. Heap-Freigabe
          6. Heap-Generationen
          7. Wie werden Objekte aufgelöst?
          8. Explizites Löschen
          9. Garbage Collector, Destruktor und IDisposable
        2. Objekte kopieren
          1. Flaches und tiefes Kopieren
          2. Kopiermethoden
          3. Clone() und MemberwiseClone()
          4. Copy() und Konstruktor
        3. Objekte vergleichen
          1. Gleichheit feststellen
          2. Regeln für die Überschreibung von Equals()
          3. Überschreibung von GetHashCode()
          4. Beispiel
          5. Größenvergleiche
          6. IComparable und die Methode CompareTo()
          7. IComparer und Compare()
          8. Beispiel
        4. Boxing und Unboxing
        5. Wert- und Referenzparameter
        6. Nullfähigkeit
          1. Werttypen
        7. Nullable<T>
          1. Test auf null
      3. Zusammenfassung
    2. 17. Namespaces, Gültigkeitsbereiche und Zugriffsschutz
      1. Namespaces
        1. Namespaces definieren
          1. Verschachtelte Namespaces
          2. Globaler Namespace
          3. Namespaces und Quelltextdateien
        2. Namespaces erweitern
        3. Typen aus Namespaces verwenden
        4. using-Direktive
        5. using-Aliase
          1. ::-Operator
        6. Konfliktlösung mit Namespaces
      2. Gültigkeitsbereiche
        1. Übersicht
        2. Verdeckung
        3. Auflösung der Verdeckung
      3. Zugriffsmodifizierer im Überblick
    3. 18. Delegaten und Ereignisse
      1. Delegaten
        1. Definition
        2. Instanziierung
          1. Vereinfachte Syntax
          2. Anonyme Methoden
        3. Aufruf
        4. Delegaten als Methoden-Hooks
        5. Delegaten mit Aufruflisten
          1. Methoden entfernen
          2. Verweisparameter
      2. Ereignisse
        1. Das Prinzip
          1. Umsetzung in C#
        2. Ereignisse veröffentlichen
        3. Ereignisse abonnieren
        4. Ereignisargumente
          1. Der object-Parameter
          2. Der EventArgs-Parameter
          3. Benutzerdefinierte EventArgs-Klassen
    4. 19. Attribute
      1. Vordefinierte Attribute
      2. Benutzerdefinierte Attribute
        1. Benutzerdefinierte Attribut-Klasse erstellen
        2. Komponente erstellen, die mit der Attribut-Klasse arbeitet
        3. Attribut-Klasse verwenden
    5. 20. C#-Generika
      1. Einführung in Generika
      2. Generische Typen
        1. Generische Klassen
          1. Vererbung
          2. Methoden überschreiben
          3. Methoden überladen
          4. Statische Member
        2. Generische Strukturen
        3. Generische Schnittstellen
        4. Generische Delegaten und Prädikate
        5. Kovarianz und Kontravarianz
      3. Generische Methoden
        1. Aufruf
        2. Swap
      4. Einschränkungen für Typparameter
        1. Ungebundene Typen
        2. Einschränkungen
          1. Primäre Einschränkungen
          2. Sekundäre Einschränkungen
          3. Konstruktor-Einschränkung
        3. Vererbung
      5. Null, default und die Problematik der Werttypen
        1. Das Problem der Standardwerte
        2. Das Problem der Leere
          1. Verweistypen
          2. Werttypen
          3. Nullable-Typen
      6. Ein Blick hinter die Kulissen
        1. Typisierung mit Werttypen
        2. Typisierung mit Verweistypen
    6. 21. XML-basierte Dokumentierung
      1. Einführung
      2. XML-Dokumentationskommentare
        1. Die empfohlenen Tags
        2. Eigene Tags definieren
        3. Beispiele
      3. XML-Dokument erzeugen
      4. Lesbare Dokumentationsseiten
        1. Transformation mit ndoc
        2. Transformation mit eigenem XSLT-Code
          1. Beispiel und Vorlage für eine XSL-Datei
          2. Transformieren
  7. V. Wichtige .NET-Klassen
    1. 22. Strings und reguläre Ausdrücke
      1. String-Erzeugung
      2. String-Literale
        1. Escapesequenzen
        2. @-Literale
        3. Zeilenumbrüche
        4. Pooling
      3. String-Vergleiche
        1. Test auf Nutzinhalt
        2. Gleichheit und Ungleichheit
        3. Größenvergleiche
        4. Kulturunabhängige Größenvergleiche
      4. String-Manipulationen
        1. Aneinanderreihung
        2. Einfügen, Löschen, Ersetzen
        3. Suchen
        4. Zerlegen und Zusammenfügen
          1. Substring()
          2. Split()
          3. Join()
        5. Trimmen und auffüllen (Padding)
        6. Umwandeln
          1. Groß- und Kleinschreibung
          2. Konvertierung von und in andere Datentypen
          3. Umwandlung in Zeichen-Array
        7. Auf einzelne Zeichen zugreifen
        8. Kopieren
      5. Formatierung mit Platzhaltern
      6. ToString(), IFormattable und die Formatbezeichner
        1. IFormattable
          1. Formatbezeichner
          2. Benutzerdefinierte numerische Formatbezeichner
      7. String.Format() und die kombinierte Formatierung
        1. Eigene Typen mit Unterstützung für Formatbezeichner
        2. Eigene Formatierer mit IFormatProvider und ICustomFormatter
          1. Der Formatierungsmechanismus
          2. ICustomFormatter und IFormatProvider implementieren
          3. Formatieren
      8. StringBuilder
        1. String-Manipulation
        2. Kapazität
      9. Reguläre Ausdrücke
        1. Syntax regulärer Ausdrücke
          1. Zeichen und Zeichenklassen
          2. Quantifizierer
          3. Gierige Quantifizierer
          4. Gruppierung
          5. Assertionen (Anker)
        2. Suchen mit Regex und Match
          1. Stringaufbau prüfen
          2. Grep-Programm
        3. Ersetzen mit Regex
    2. 23. Streams, Dateien und Serialisierung
      1. Reader und Writer
      2. Verzeichnisse
        1. Auflisten von Verzeichnissen
        2. Anlegen und Löschen von Verzeichnissen
        3. Rekursives Löschen von Dateien und Verzeichnissen
        4. Verschieben von Verzeichnissen
        5. Mit Verzeichnissen arbeiten
        6. Pfadangaben
      3. Streams
        1. Dateien schreiben
        2. Dateien lesen
        3. Die File-Klasse
        4. MemoryStream
        5. NetworkStream
        6. BufferedStream
        7. CryptoStream
        8. DeflateStream und GZipStream
        9. Asynchrones Streaming
      4. Serialisierung
        1. Formatter
        2. Serialisierung von persistenten und transienten Daten
        3. Objekte serialisieren
        4. Objekte deserialisieren
    3. 24. Auflistungen
      1. Grundlagen
        1. Die Basis-Schnittstellen
        2. Die Auflistungsklassen
      2. Die Qual der Wahl
        1. Kriterium I: Generisch oder nicht generisch
        2. Kriterium II: Eigenschaften
        3. Kriterium III: Effizienz
        4. Die Auflistungen im Vergleich
      3. Nicht generische Auflistungen
        1. ArrayList
        2. Hashtable
        3. BitArray
      4. Generische Auflistungen
        1. List
        2. Dictionary
        3. LinkedList
        4. Stack
        5. SortedSet
    4. 25. Datum, Mathematik und die Systemumgebung
      1. Datum und Uhrzeit
        1. Datum und Uhrzeit abfragen
          1. Ticks
          2. Details abfragen
        2. Datum und Uhrzeit manipulieren
        3. Formatierung
        4. Zeitzonen
        5. Kalender
        6. Zeitspannen
        7. Laufzeitmessungen
      2. Numerik
        1. Die Klasse Math
        2. Die trigonometrischen Funktionen
        3. Die Klasse BigInteger
        4. Die Klasse Complex
          1. Rechnen mit komplexen Zahlen
      3. Zufallszahlen
        1. Zufallszahlengenerator erzeugen
        2. Zufallszahlen erzeugen
      4. Systemumgebung
        1. Informationen zur Systemumgebung abfragen
        2. Umgebungsvariablen
        3. Externe Anwendungen ausführen
  8. VI. Windows Forms-Anwendungen
    1. 26. Einführung in Windows Forms
      1. Windows Forms
        1. Namespaces
        2. Zentrale Klassen
          1. Application
          2. Form
          3. Control
      2. Anwendungsgerüst
        1. Die Visual Studio-Projektvorlage
          1. Das Formular
          2. Die Anwendung
          3. Unterstützung für visuelle Stile
        2. Anwendungsgerüst ohne Visual Studio
        3. Starten und beenden
          1. Anwendungen mit Meldungsfenster beginnen
          2. Anwendungen beenden
        4. Leerlaufverarbeitung
        5. Assembly-Info
      3. Benutzeroberfläche
        1. Formulare, Container und Steuerelemente
        2. Layout
          1. Position und Größe
          2. AutoSize
          3. Automatische Skalierung
          4. AutoScaleMode.None
          5. AutoScaleMode.Font und AutoScaleMode.DPI
          6. Andocken und Verankern
          7. Dock
          8. Anchor
          9. Layout mit Containern
          10. Neutrale Container
          11. Layoutcontainer
          12. Funktionale Container
        3. Ressourcen
          1. Ressourcen hinzufügen
          2. Ressourcen bearbeiten
          3. Ressourcen verwenden
          4. Ressourcen entfernen
        4. Windows Forms-Designer
          1. Grundlegende Arbeitsschritte
          2. Komponenten hinzufügen
          3. Komponenten auswählen
          4. Komponenten dimensionieren
          5. Komponenten ausrichten
          6. Komponenten kopieren
          7. Komponenten löschen
          8. Komponenten sperren
          9. Z-Reihenfolge
          10. Aktivierreihenfolge
      4. Ereignisbehandlung
        1. Ereignisse behandeln
          1. Ereignisse im Windows Forms-Designer
          2. Ereignisse im Quelltext
          3. Ereignis-Handler löschen
        2. Allgemeine Ereignisse
        3. Mausereignisse
        4. Tastaturereignisse
          1. Fokus zuordnen
          2. Tastaturvorschau durch Formular
          3. Tasten identifizieren
          4. Weiterverarbeitung unterbinden
        5. Mehrere Ereignisse – eine Behandlungsmethode
    2. 27. Formulare
      1. Rund ums Formular
        1. Konfiguration
          1. Größe und Position
          2. Titelleiste und Rahmen
          3. Schrift und Hintergrund
          4. Verhalten
        2. Ereignisbehandlung
        3. Formulare anzeigen und schließen
          1. Formulare schließen
          2. Formulare mehrfach anzeigen und verbergen
        4. Formulare als Hauptfenster
          1. Hauptfenster festlegen
          2. Mehrere Hauptfenster
        5. Anwendungssymbol
          1. Symbole erstellen
          2. Symbole verwenden
      2. Dialogfelder
        1. Eigene Dialogfelder
          1. Konfiguration
          2. Schaltflächen für Dialogfelder
          3. Modale und nicht-modale Dialogfelder
        2. Musterimplementierung für modale Dialoge
          1. Schaltflächen
          2. Datenauswertung
          3. Lebenszyklus
        3. Musterimplementierung für nicht-modale Dialoge
          1. Konfiguration
          2. Schaltflächen
          3. Datenauswertung
          4. Lebenszyklus
        4. Standard-Dialogfelder
          1. Datei öffnen
        5. Meldungsfelder
      3. Konfiguration via Anwendungseinstellungen
        1. Anwendungskonfiguration aus XML-Datei
          1. Konfigurationsdatei anlegen
          2. Einstellungen laden
        2. Benutzerdefinierte Einstellungen
          1. Die ApplicationSettingsBase-Klasse
          2. Einstellungen laden und speichern
    3. 28. DVD-Kapitel: Steuerelemente
    4. 29. Eigene Steuerelemente entwickeln
      1. Erweiterung bestehender Steuerelemente
        1. Projekte für eigene Steuerelemente
        2. Codegerüst
        3. Kompilierung
        4. Testanwendung
        5. Neue Eigenschaften hinzufügen
        6. In die Ereignisbehandlung eingreifen
        7. Steuerelemente selbst zeichnen
          1. Hintergrund
          2. Steuerelement-Stile
      2. Kombination bestehender Steuerelemente
      3. Ableitung von Control
      4. Unterstützung für den Windows Forms-Designer
        1. Benutzerdefinierte Steuerelemente in der Toolbox
          1. Symbole für Steuerelemente
        2. Benutzerdefinierte Steuerelemente im Eigenschaftenfenster
        3. Überflüssige, geerbte Eigenschaften und Ereignisse ausblenden
    5. 30. Drag & Drop, Drucken und andere weiterführende Techniken
      1. Dateien öffnen und speichern
        1. Menübefehle
        2. Nicht gespeicherte Änderungen
          1. bool dirty
          2. Änderungen in Dokument
          3. Menübefehle aktivieren und deaktivieren
        3. Die Methoden zum Anlegen, Öffnen und Speichern
          1. Datei/Neu
          2. Datei/Öffnen
          3. Datei/Speichern
          4. Datei/Speichern unter
      2. Zwischenablage
        1. Die Klasse Clipboard
        2. Daten in die Zwischenablage einfügen
        3. Daten aus der Zwischenablage übernehmen
        4. Die vordefinierten Datenformate
        5. Daten in mehreren Formaten einfügen
        6. Aktivierung der Zwischenablagebefehle
      3. Drag & Drop
        1. Die Drag & Drop-Quelle
        2. Der Drag & Drop-Vorgang
        3. Das Drag & Drop-Ziel
          1. DragOver
          2. DragDrop
        4. Dateien aus dem Windows Explorer in ein Textfeld ziehen
        5. Drag & Drop zwischen Listenfeldern
      4. Begrüßungsbildschirme
        1. Begrüßungsbildschirme erstellen
        2. Begrüßungsbildschirme anzeigen
      5. MDI
        1. Von SDI zu MDI
        2. Das übergeordnete Fenster
        3. Die untergeordneten Fenster
        4. Das Menüsystem
          1. Verschmelzen der Menüs
          2. Das Fenstermenü und die Fensterliste
          3. Implementierung der Menübefehle
      6. Drucken
        1. Einführung
          1. Kein Drucken ohne PrintDocument
        2. Drucken in fünf Minuten
        3. Druckeinstellungen und -dialoge
          1. Manuelle Druckerwahl und Konfiguration des Druckauftrags
          2. Einen Drucker auswählen
          3. Den Druckauftrag konfigurieren
          4. Manuelle Konfiguration des Seitenlayouts
          5. Der Drucken-Dialog
          6. Der Seite einrichten-Dialog
          7. Der Druckvorschau-Dialog
        4. Bilder drucken
          1. Unskaliertes Ausdrucken
          2. Skaliertes Ausdrucken
        5. Texte drucken
          1. Mehrseitige Texte
          2. Seitenzahlen drucken
          3. Markierten Text drucken
      7. Sound
        1. Die vordefinierten Signaltöne
        2. WAV-Dateien abspielen
          1. Sounddateien laden und abspielen
          2. Sounddateien asynchron laden
    6. 31. GDI+
      1. Gerätekontexte und Paint
        1. Das Paint-Ereignis
          1. Neuzeichnen veranlassen
          2. In PictureBox oder Panel zeichnen
        2. Eigene Graphics-Objekte
      2. Zeichenwerkzeuge und -operationen
        1. Zeichenqualität einstellen
        2. Zeichenfläche löschen
        3. Text zeichnen
          1. Einzeiliger Text
          2. Mehrzeiliger Text
          3. TextAbmessungen bestimmen
          4. Vertikaler Text und andere Formatierungsmöglichkeiten
        4. Linien und andere Grafikprimitiven zeichnen
          1. Linien
          2. Rechtecke, Quadrate und Punkte
          3. Linienzüge und Polygone
          4. Ellipsen, Kreise und Kreisbögen
          5. Splines und Bézierkurven
        5. Schriften
          1. Vordefinierte Font-Objekte
          2. Verfügbare Schriften
          3. Font-Objekte
          4. Schriftfamilien
          5. Schriftschnitte
          6. Maßeinheiten
          7. Zeichensätze
          8. Schrifteigenschaften abfragen
          9. Schriften abwandeln
          10. Der Schriften-Dialog
        6. Farben
          1. Die vordefinierten Farben
          2. Eigene Farben
        7. Stifte (Pen)
          1. Vordefinierte Stifte
          2. Eigene Stifte
          3. Die Linienstile
          4. Gemusterte Stifte
        8. Pinsel (Brush)
          1. Vordefinierte Pinsel
          2. Eigene Pinsel
          3. SolidBrush
          4. TextureBrush
          5. Den Pinsel erzeugen
          6. Weitere Konfigurationsmöglichkeiten
          7. HatchBrush
          8. LinearGradientBrush
          9. Kachelung
          10. PathGradientBrush
      3. Transformationen
        1. Verschieben
        2. Drehen
        3. Skalieren
        4. Kombinierte Transformationen
        5. Transformationen zurücknehmen
      4. Bilder
        1. Laden
          1. Welche Bildtypen werden unterstützt?
          2. Bilder als Ressourcen laden
          3. Bild in Ressourcendatei aufnehmen
          4. Bildressourcen verwenden
        2. Anzeigen
          1. Das Problem der Bildgröße
          2. Fenstergröße an Bildgröße anpassen
          3. Bildgröße an Anzeigefeld anpassen
          4. Bildlaufleisten
        3. Speichern
        4. Bearbeiten
        5. Bitmaps
          1. Pixel bearbeiten
          2. Die Farbabbildung ändern
          3. Transparenz einstellen
          4. Spiegeln
          5. Neue Bitmaps erstellen
        6. Metadateien
      5. Clipping
        1. Der Clipping-Bereich des Paint-Ereignisses
        2. Der Clip des Graphics-Objekts
      6. Grafikprogramme
      7. Fraktale
      8. Animation und Double Buffering
        1. Die Grundtechnik
          1. Das Bildmaterial
          2. Leinwand und Projektor
          3. Der Taktgeber
          4. Ein Beispiel
        2. Automatisches Double Buffering
        3. Die Bilder lernen laufen
          1. Figur und Szenerie
          2. Transparenz
          3. Skalierung
          4. Z-Reihenfolge
          5. Bewegung
        4. Double Buffering mit BufferedGraphics
          1. Das Grundprinzip
          2. Die Klasse BufferedGraphics
  9. VII. Windows Presentation Foundation
    1. 32. Einführung in WPF
      1. Das Grundprinzip
        1. Von Windows Forms zu WPF
        2. Die erste WPF-Anwendung
          1. Schritt 1: WPF-Projekt anlegen
          2. WPF-Assemblys
          3. Das WPF-Grundgerüst
          4. Namespaces
          5. Anwendung und Hauptfenster
          6. Schritt 2: XAML-Datei weitergeben
          7. Schritt 3: Anwendungslogik hinzufügen
          8. Ereignisse behandeln
          9. Zugriff auf XAML-Elemente via C#-Code
          10. Schritt 4: Projekt erstellen und testen
      2. Der WPF-Designer
        1. Der Entwurf-Bereich
          1. Komponenten verschieben
          2. Das Grid-Panel
        2. Der XAML-Bereich
          1. IntelliSense
        3. Das Eigenschaftenfenster
      3. Das WPF-Modell
        1. Eine neue Zielsetzung
        2. Eine neue GUI-Bibliothek
        3. Ein neues Grafikmodell
          1. Vektorgrafik statt Pixel
          2. DirectX statt Clipping
          3. Sorry, no Graphics
        4. Ein neues Layoutkonzept
        5. Ein neues Eigenschaftenkonzept
        6. Ein neues Ereignismodell
          1. Bubbling und Tunneling
          2. Was Sie über die Ereignisbehandlung unbedingt wissen müssen
          3. Befehle
        7. Neue Ausführungsmodelle
    2. 33. WPF-Fenster, -Seiten und -Steuerelemente
      1. Fenster und Seiten
        1. Fensterbasierte Anwendungen
          1. Das Hauptfenster
          2. Konfiguration
          3. Weitere Fenster aufrufen
          4. Dialogfelder
        2. Browseranwendungen
          1. Erstellung
          2. Ausführung
          3. Browserkonfiguration
          4. Seitennavigation
        3. Fensterbasierte Anwendungen mit Frames und Seiten
      2. Die Steuerelemente
        1. Die Basisklassen
        2. Übersicht
      3. Datenbindung
        1. Datenbindung zwischen Steuerelementen
        2. Datenbindung zu selbst definierten Klassen
        3. Datenbindung für Auflistungen
      4. Menüs und Symbolleisten
        1. Aufbau von Menüs
        2. Ereignisbehandlung
        3. Kontextmenüs
        4. Symbolleisten
      5. Zwischenablage
      6. Drag & Drop
    3. 34. Grafik
      1. Grundtechniken
      2. Transformationen
      3. 3D-Ansichten
        1. Die Benutzeroberfläche
        2. Die Objekte
        3. Die Szenerie
        4. Kamera verschieben
        5. Zoomen
      4. Bilder
        1. Bilder in Image-Element einpassen
        2. Bilder in optimaler Größe laden
        3. Thumbnails
      5. Animation
    4. 35. XAML
      1. Grundlagen
        1. XAML zur Laufzeit laden
        2. Eigene Klassen instanziieren
        3. Klassen definieren
      2. Namespaces
        1. CLR-Namespaces
        2. XML-Namespaces
      3. Elemente
        1. Elementinhalt
        2. Eigenschaften als Elemente
      4. Attribute
        1. Typkonvertierung
        2. Attached-Eigenschaften
        3. Markuperweiterungen (Markup Extensions)
        4. Die Attribute (und Elemente) des XAML-Namespace
      5. Ressourcen, Stile und Vorlagen
        1. Ressourcen definieren
        2. Ressourcen verwenden
        3. Stile
        4. Trigger
        5. Vorlagen
      6. WPF-Ausführungsmodelle
  10. VIII. Multithreading
    1. 36. Prozesse und Anwendungsdomänen
      1. Prozesse
        1. Die Process-Klasse
        2. Prozess starten
        3. Prozess binden
        4. Prozess beenden
        5. Prozessverhalten und -mechanismen verwalten
      2. Anwendungsdomäne
        1. Erstellen einer Anwendungsdomäne
        2. Ausführbare Assemblys innerhalb einer Anwendungsdomäne
        3. Nicht ausführbare Assemblys innerhalb einer Anwendungsdomäne
        4. Laden und Entladen von Assemblys in einer Anwendungsdomäne
        5. Daten zwischen Anwendungsdomänen austauschen
    2. 37. Thread-Programmierung
      1. Starten von Threads
        1. Einfachen Thread starten
        2. Starten von Threads in einer anderen Anwendungsdomäne
        3. Hintergrundthreads
      2. Arbeiten mit Threads
        1. Priorisieren von Threads
        2. Anhalten und Beenden von Threads
      3. Synchronisierung
        1. Monitor
        2. Interlock
        3. Mutex
      4. Pooling
      5. Timer
  11. IX. Datenbanken
    1. 38. ADO.NET
      1. Architektur und Technologie
        1. Technologie
        2. Architektur
      2. Klassen in ADO.NET
      3. Connection-Klasse und Pooling
      4. Command-Klasse
        1. Arbeiten mit einer SQL-Abfrage
        2. Arbeiten mit parametrisierten Abfragen
        3. Arbeiten mit gespeicherten Prozeduren
        4. Anlegen einer gespeicherten Prozedur
        5. Schreiben und Testen einer gespeicherten Prozedur
        6. Zugreifen aus einer Anwendung auf gespeicherte Prozeduren
        7. Methoden zum Ausführen der Befehle
      5. DataReader-Klasse
      6. DataAdapter- und DataSet-Klasse
        1. XML-Daten und XML-Schema
        2. Laden von XML-Daten und XML-Schemadefinition
        3. Manipulieren von Daten im DataSet und der Datenquelle
        4. Relationen zwischen Datentabellen erzeugen
        5. DataTable-Klasse
        6. DataTableReader
        7. DataView-Klasse
        8. Transaktionen
    2. 39. SQL Server-Programmierung
      1. Programmieren von SQL Server 2008 R2
        1. Anlegen eines SQL Server-Projekts
        2. Erstellen einer benutzerdefinierten Funktion
        3. Erstellen einer gespeicherten Prozedur
        4. Erstellen eines Aggregats
        5. Erstellen eines Triggers
        6. Erstellen eines benutzerdefinierten Typs
  12. X. XML
    1. 40. XML Daten
      1. Allgemeines
        1. Aufbau und Terminologie eines XML-Dokuments
        2. Verfügbare APIs
      2. Programmieren mit XML
        1. Die Klasse XMLDocument
          1. Ein XML-Element hinzufügen
          2. Ein XML-Attribut hinzufügen
          3. XML-Daten lesen
          4. XML-Daten schreiben
        2. LINQ to XML
          1. Erstellen
          2. Lesen
          3. Schreiben
    2. 41. XPath, XQuery LINQ to XML und XSLT
      1. XPath und XQuery
        1. Arbeiten mit XPath
        2. Arbeiten mit XQuery
        3. Arbeiten mit XPath und XQuery
      2. LINQ to XML
      3. XSLT
        1. XSLT-Transformation
  13. XI. Web Forms
    1. 42. Grundlagen der Webentwicklung (ASP.NET)
      1. Grundlagen von ASP.NET
        1. Ordnerstruktur
        2. Seitenmodelle in ASP.NET
        3. Automatische Kompilierung
        4. Lebenszyklus einer ASP.NET-Seite
      2. Arbeiten mit ASP.NET
        1. ASP.NET-Projekt erzeugen
        2. Webkonfigurationsdatei
        3. Debuggen von Webanwendungen
        4. Website veröffentlichen
        5. Website konfigurieren
    2. 43. Web Forms und Steuerelemente
      1. Arbeiten mit Web Forms
        1. Web Form erstellen
        2. Steuerelemente platzieren
      2. Arbeiten mit serverseitigen Steuerelementen
        1. TextBox und Button
        2. DropDownList und ListBox
        3. CheckBoxList und RadioButtonList
        4. CheckBox und RadioButton
        5. FileUpload
        6. Wizard
        7. Xml-Steuerelement
        8. MultiView und View
        9. Sitemap, Menü und TreeView
        10. Login-Steuerelemente
      3. MembershipProvider und RoleProvider
      4. Validierung von Daten
    3. 44. Datengebundene Steuerelemente
      1. Steuerelemente an Expressions binden
        1. Ressourcendatei hinzufügen
        2. Ressource binden
      2. Datenquellen an Steuerelemente binden
      3. DropDownList, ListBox, CheckBoxList und RadioButtonList
        1. Deklarative Datenbindung
      4. GridView-Steuerelement
        1. Deklarative Datenbindung
      5. FormView und DetailsView
        1. Object Binding
    4. 45. Webparts und Layout
      1. Webparts
        1. Vorbereitungen
        2. WebPartManager
        3. WebPartZone
        4. EditorZone
        5. CatalogZone
      2. Designs
        1. Vorbereitung
        2. Skin bzw. Designdatei erzeugen
        3. Skin in die Website einbinden
  14. XII. Webdienste und Remoting
    1. 46. XML-Webdienste
      1. Architektur der XML-Webdienste
      2. SOAP, XML und WSDL
        1. UDDI
        2. SOAP
        3. WSDL
        4. Interoperabilität
        5. Die Proxyklasse eines Webdienstes
      3. XML-Webdienst-Namespaces
      4. Einen ASP.NET-Webdienst erstellen
      5. Einen neuen Webdienst erstellen
        1. Die Basisklasse WebService
        2. Das Attribut WebService
      6. Webmethoden erstellen
        1. BufferResponse
        2. CacheDuration
        3. Description
        4. EnableSession
        5. MessageName
      7. Einen XML-Webdienst testen
      8. Fortgeschrittene Techniken für Webdienste
        1. Arbeiten mit dem SOAP-Header
        2. Autorisieren über Principals und Permissons
        3. Arbeiten mit Zertifikaten
        4. Arbeiten mit komplexen Typen
        5. Proxy Type Sharing
      9. Aufrufen und arbeiten mit Webdiensten
        1. Erstellen eines Webverweises mit Visual Studio
        2. Einfacher Aufruf von Webmethoden
        3. Aufruf zustandsbehafteter Webmethoden
        4. Aufruf von Webdiensten mit SOAP-Headern
        5. Asynchroner Aufruf von Webmethoden
        6. Dynamische Webdienst-URLs
        7. Aufruf von Webdiensten über einen Proxyserver
        8. Authentifizieren über Windows-Authentifizierung
      10. Debuggen eines XML-Webdienstes
      11. Weitergeben von Webdiensten
    2. 47. Remoting
      1. Architektur und Technologie
        1. Channels
        2. Formatter
        3. Remoteobjekte
        4. Proxy
        5. Marshal-By-Value
        6. Marshal-By-Reference
      2. Server- und Clientaktivierte Objekte
        1. Serveraktivierte Objekte
        2. Clientaktivierte Objekte
        3. Deklarative Konfiguration
        4. Objektlebensdauer
      3. Hosts
        1. Das Remoteobjekt
        2. Remoting über einen Windows-Dienst
          1. Main()
          2. OnStart() und OnStop()
        3. Installieren des Dienstes
        4. Die Clientanwendung des Windows-Dienstes
  15. XIII. Spracherweiterungen und LINQ
    1. 48. Spracherweiterungen von C# 4.0
      1. Dynamic
      2. Ko- und Kontravarianz
      3. Optionale (oder Standard-) Parameter
      4. Benannte Argumente
      5. Verbesserte COM-Interoperabilität
    2. 49. LINQ
      1. Grundlagen der LINQ-Operatoren
        1. Projektionsoperatoren
          1. Select-Operator
          2. SelectMany-Operator
        2. Restriktionsoperator
        3. Sortierungsoperatoren
          1. OrderBy
          2. ThenBy- und ThenByDescending-Operator
          3. Reverse-Operator
        4. Gruppierungsoperatoren
          1. GroupBy-Operator
        5. Verknüpfungsoperatoren
          1. Join-Operator
          2. GroupJoin-Operator
        6. Set-Operatoren
          1. Distinct-Operator
          2. Union-Operator
          3. Intersect- und Except-Operator
        7. Aggregatsoperatoren
          1. Count-Operator
          2. Sum-Operator
          3. Min- und Max-Operator
          4. Average-Operator
        8. Generierungsoperatoren
          1. DefaultIfEmpty- und Empty-Operator
          2. Range-Operator
          3. Repeat-Operator
        9. Quantifizierungsoperatoren
          1. Any-Operator
          2. All-Operator
          3. Contains-Operator
        10. Partitionierungsoperatoren
          1. Take-Operator
          2. TakeWhile-Operator
          3. Skip-Operator
          4. SkipWhile-Operator
        11. Elementoperatoren
          1. ElementAt- und ElementAtOrDefault-Operator
          2. First- und FirstOrDefault-Operator
          3. Last- und LastOrDefault-Operator
          4. Single- und SingleOrDefault-Operator
      2. LINQ to Objects
      3. LINQ to SQL
        1. Referenzen und Namespaces
        2. Kommunikation mit der Datenbank
        3. Entwerfen von Entitätsklassen
        4. Entitätsverknüpfungen
        5. Datenabfragen
          1. Datenabfrage über gespeicherte Prozeduren und benutzerdefinierte Funktionen
          2. Vorkompilieren von Abfragen
          3. Direkte Abfragen
        6. Datenmanipulation
          1. Daten ändern
          2. Daten hinzufügen und löschen
          3. Datenbank-Konflikte bearbeiten
          4. Transaktionen
          5. Entitäten automatisiert erzeugen
      4. LINQ to Entities
      5. LINQ to DataSet
      6. LINQ to XML
        1. Erzeugen von XML-Dokumenten über die LINQ to XML API
        2. Lesen von XML-Dokumenten
        3. Ändern von abgefragten XML-Daten
  16. XIV. Debuggen
    1. 50. Debuggen mit Visual C#
      1. Der integrierte Debugger
        1. Vorbereitung für das Debuggen
        2. Anwendungen im Debugger ausführen
          1. An externe oder laufende Anwendungen anhängen
          2. Befehlszeilenargumente
          3. DLLs debuggen
          4. Debug-Sitzung beenden
        3. Haltepunkte und Einzelschrittausführung
          1. Haltepunkte setzen
          2. Haltepunkte deaktivieren oder löschen
          3. Haltepunkte konfigurieren
          4. Schrittweise Programmausführung
        4. Die Debug-Fenster
          1. Ausgabe
          2. Überwachen
          3. Auto und Lokal
          4. Direktfenster
          5. Visual Studio-Befehle
          6. Aufrufliste
          7. Die Fenster Threads, Module und Prozesse
          8. Arbeitsspeicher
          9. Disassembly
          10. Register
      2. Debuggen im Code-Editor
        1. DataTip (DatenInfo)
        2. Schnellüberwachung
        3. Bearbeiten und Fortfahren (Edit & Continue)
      3. Manuelle Debug-Techniken
        1. Meldungsfenster
        2. Bedingte Kompilierung
        3. Assert()-Methode
        4. Conditional-Attribut
          1. Präprozessor-Direktiven
  17. A. DVD-Kapitel: Schlüsselwörter
  18. B. DVD-Kapitel: C#-Referenz
  19. Stichwortverzeichnis