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

Datenbank-Programmierung mit Visual C# 2010

Book Description

Das vorliegende Buch bietet nicht nur den idealen Einstieg in die Datenbank-Programmierung, sondern eignet sich auch bestens als Nachschlagewerk für Fortgeschrittene, wobei auch LINQ und ADO.NET Entity Framework ausgiebig besprochen werden. Traditionsgemäß steht bei dieser gründlich überarbeiteten und erweiterten Neuauflage der praktische Nutzen im Vordergrund. Während der Einsteiger nach dem bewährten Prinzip ""soviel wie nötig"" schnell zu ersten Erfolgserlebnissen geführt wird, kann sich der Profi zahlreiche Anregungen aus den vielfältigen Konzepten der Datenbank-Programmierung holen und die Effizienz seiner Arbeit als Entwickler deutlich steigern. Wer mit wenig Aufwand zeitgemäße .NET-Datenbank-Anwendungen erstellen will, kommt heute kaum noch an Visual C# 2010 und Visual Studio 2010 vorbei.

Alles zur Datenbank-Programmierung, inkl. LINQ und Entity Framework

Ideal auch für Umsteiger von Visual Basic

Table of Contents

  1. Datenbankprogrammierung mit Visual C# 2010
  2. A Note Regarding Supplemental Files
  3. Vorwort
    1. Ein Buch für Einsteiger und Fortgeschrittene
    2. Ideal auch für Visual Basic Umsteiger
    3. Begleitdateien
    4. Zu den Autoren
    5. Danksagungen
  4. 1. Erste Schritte
    1. Unsere Werkstatt
      1. Betriebssystem
      2. Internet Information Server
        1. ASP.NET registrieren
      3. Visual Studio 2010
      4. SQL Server 2008 oder Express Edition
      5. Microsoft Access
    2. C# und die Datenbankprogrammierung
      1. Zur Geschichte des universellen Datenzugriffs
      2. Merkmale webbasierter Anwendungen
        1. Allgemeine Architektur
        2. Grundprinzip ist die Trennung von Datenbank und Datenhaltung
        3. Kein Platz mehr für das Recordset-Objekt
        4. Das DataSet als Mini-Datenbank
        5. Ohne XML geht gar nichts mehr
        6. LINQ to XML
        7. SQL-Kenntnisse sind ein Muss!
        8. ASP.NET ist keine Hürde!
        9. Last but not least – OOP!
      3. Ein Wort zum .NET-Sicherheitskonzept
        1. Wie es früher war
        2. Die neuen Sicherheitsmechanismen
    3. Was ist neu in .NET 4.0/Visual Studio 2010?
      1. Die verschiedenen Pakete
      2. Die Visual C#-Entwicklungsumgebung
        1. WPF-Technologie
        2. IntelliSense Suggestion Mode
        3. Call Hierarchy
        4. Navigate To
        5. Highlighting von Verweisen
        6. Live Semantic Errors
        7. Generate From Usage
      3. Neuheiten im Framework 4.0
        1. Dynamic Language Runtime
        2. Numerische Typen
        3. Generische Datenstrukturen
        4. Lazy Initialization
        5. Code Contracts
        6. Chart
        7. Reporting
        8. WCF
      4. C# 4.0: Sprache und Compiler
        1. C# und VB kommen sich näher
        2. Dynamischer Support
        3. Kovarianz und Kontravarianz
        4. Office Programmierung
        5. Parallele Programmierung/PLINQ
        6. Verbesserungen bei der Dateiarbeit
    4. Ein wenig Datenbanktheorie
      1. Normalisieren von Tabellen
        1. Ausgangstabelle
        2. Erste Normalform
        3. Zweite Normalform
        4. Dritte Normalform
        5. Normalisierung nach dem Prinzip »Faule Sekretärin«
      2. Verknüpfen von Tabellen
        1. 1:1-Beziehung
        2. 1:n-Beziehung
        3. n:m-Beziehung
        4. Beziehungsdiagramm der FIRMA-Datenbank
        5. Referenzielle Integrität
        6. Datenbank-Prototyp verwenden
      3. Weitere wichtige Begriffe
        1. Sekundärindex
        2. NULL-Werte
    5. Einführungsbeispiele
      1. 1.1 ... auf eine lokale Access-Datenbank zugreifen?
        1. Datenquelle einrichten
        2. Die fertige Datenquelle
        3. Benutzerschnittstelle
        4. Programm testen
        5. Quellcode
        6. Bemerkungen
      2. 1.2 ... mit dem Microsoft SQL Server arbeiten?
        1. Datenquelle einrichten
        2. Programm testen
      3. 1.3 ... eine einfache LINQ to SQL-Anwendung schreiben?
        1. Oberfläche
        2. Quellcode
      4. 1.4 ... eine einfache ASP.NET-Webanwendung entwickeln?
        1. Erstellen der ASP.NET-Website
        2. Datenbank hinzufügen
        3. GridView hinzufügen
        4. GridView an Datenquelle anbinden
        5. Test
        6. Bemerkungen
      5. 1.5 ... meine erste WPF-Anwendung erstellen?
        1. Oberfläche
        2. Quellcode (.xaml)
        3. Quellcode (.cs)
        4. Test
      6. 1.6 ... einen einfachen WCF-Dienst entwickeln?
        1. Webdienst
        2. Webclient
        3. Test
        4. Bemerkungen
  5. 2. Einführung in LINQ
    1. Die LINQ-Philosophie
      1. OOP-Modell versus relationales Modell
      2. Besonderheiten beim ORM
      3. Ein erstes LINQ-Beispiel
        1. Klassischer Datenbankzugriff
        2. Datenbankzugriff unter LINQ
      4. Der Weg zu LINQ
        1. Wie war es in der Zeit vor LINQ?
        2. Wichtige LINQ-Features
        3. Die LINQ Architektur
        4. LINQ Implementationen
    2. LINQ-Grundlagen
      1. Typinferenz
      2. Objekt-Initialisierer
        1. Anonyme Typen
      3. Erweiterungsmethoden
      4. Lambda-Ausdrücke
    3. Abfragen mit LINQ to Objects
      1. Grundlegende Syntax
      2. Zwei alternative Schreibweisen von LINQ-Abfragen
      3. Die wichtigsten Abfrageoperatoren
        1. Übersicht
        2. Allgemeines zu den folgenden Beispielen
      4. Die Projektionsoperatoren Select und SelectMany
        1. Select
        2. SelectMany
      5. Der Restriktionsoperator Where
      6. Die Sortierungsoperatoren OrderBy und ThenBy
        1. OrderBy/OrderByDescending
        2. ThenBy/ThenByDescending
        3. Reverse
      7. Der Gruppierungsoperator GroupBy
      8. Verknüpfen mit Join
      9. Aggregat-Operatoren
        1. Count
        2. Sum
      10. Verzögerte Ausführung von LINQ-Abfragen
      11. Konvertierungsmethoden
      12. Abfragen mit PLINQ
        1. Probleme mit der Sortierfolge
    4. How-to-Beispiele
      1. 2.1 ... LINQ-Abfragen verstehen?
        1. Oberfläche
        2. Quellcode
        3. Test
      2. 2.2 ... nichtgenerische Collections abfragen?
        1. Oberfläche
        2. ArrayList erzeugen
        3. Variante 1 (mit Cast-Operator)
        4. Variante 2 (mit Typisierung)
        5. Variante 3 (mit OfType)
        6. Test
        7. Bemerkungen
  6. 3. SQL in Theorie und Praxis
    1. Einführung
      1. SQL-Dialekte
      2. Kategorien von SQL-Anweisungen
        1. Datendefinition
        2. Datenabfrage
        3. Datenmanipulation
        4. Zugriffskontrolle
    2. Testprogramm und Beispieldatenbank
      1. Hinweise zur Bedienung
      2. Unsere Beispieldatenbank im Überblick
      3. Alternative Varianten für die SQL-Abfrage
        1. Visual Studio
        2. Microsoft Access
        3. ADO Query
      4. Bemerkungen
    3. Daten abfragen
      1. Abfragen mit SELECT
      2. Alle Spalten auswählen
      3. Auswahl der Spalten
      4. Filtern
        1. Suche in einem Bereich
        2. Suche nach Zeichenfolgen
        3. Datumsvergleich
        4. Probleme mit Datums-/Uhrzeitvergleichen
        5. IN-Klausel
        6. Auf der Suche nach dem Nichts
      5. Beschränken der Ergebnismenge
      6. Eindeutige Records/doppelte Datensätze
      7. Tabellen verknüpfen
        1. Verknüpfen mit LEFT-JOIN/RIGHT-JOIN
        2. Verknüpfen mit INNER JOIN
        3. Auto-JOIN
      8. Tabellen vereinigen
      9. Datensätze sortieren
      10. Datensätze gruppieren
        1. Die HAVING-Klausel
      11. Unterabfragen
        1. Das Ergebnis einer Query ist Bedingung (WHERE) einer anderen Query
        2. Liefert die Subquery eine Menge von Werten, müssen Sie mit ANY/ALL einen dieser Werte auswählen
        3. »=ANY« kann durch »IN« ersetzt werden (»<>ALL« entspricht »NOT IN«)
        4. Eine WHERE-Klausel kann mehrere Subqueries enthalten
        5. Synchronisieren von Unterabfragen mit der Hauptabfrage
    4. Daten manipulieren
      1. Einfügen einzelner Datensätze
      2. Einfügen von Abfragedaten
      3. Exportieren/Importieren von Abfragedaten
        1. Speichern in externen Tabellen
      4. Aktualisieren/Ändern
      5. Löschen
        1. Bemerkungen
    5. Erweiterte SQL-Funktionen
      1. Berechnete/Formatierte Spalten
        1. Format-Funktion
        2. Berechnungen in Spalten
        3. Neue Spalten erzeugen
        4. Weitere String-Formatierungsfunktionen
      2. Berechnungsfunktionen
      3. NULL-Werte
      4. Datum und Zeit in SQL-Abfragen
        1. Datumsberechnungen
        2. DateValue
      5. Datentypumwandlungen
      6. Kreuztabellenabfragen
    6. Datenbankverwaltung mit SQL (DDL)
      1. Datenbanken
      2. Tabellen
      3. Indizes
        1. CONSTRAINT-Klausel
        2. Beziehungen festlegen
        3. CREATE INDEX
      4. Tabellen/Indizes löschen oder verändern
      5. Sichten (Views)
      6. Nutzer- und Rechteverwaltung
        1. Datenbankpasswort ändern
        2. User erzeugen/löschen
        3. User neues Passwort zuweisen
        4. Gruppe erzeugen/löschen
        5. Nutzer zu Gruppe hinzufügen/entfernen
        6. Rechte zuweisen/entziehen
    7. Datenbankentwurf optimieren
      1. Indizes
      2. Abfrageoptimierung
      3. Weitere Möglichkeiten
    8. SQL in der C#-Praxis
      1. Ausführen oder abfragen?
      2. Einfügen von Strings zur Laufzeit
      3. Datumseingabe
      4. Parameterübergabe
        1. Parameter für OleDbCommand
        2. Parameter für SQLCommand
    9. How-to-Beispiele
      1. 3.1 ... nach einem INSERT das Zählerfeld abfragen?
      2. 3.2 ... die Anzahl der Datensätze ermitteln?
      3. 3.3 ... Datumsteile in SQL zur Suche nutzen?
      4. 3.4 ... die Groß-/Kleinschreibung berücksichtigen?
      5. 3.5 ... WITH OWNERACCESS OPTION verwenden?
      6. 3.6 ... Datensätze richtig verknüpfen?
      7. 3.7 ... doppelte Datensätze aus einer Tabelle löschen?
        1. Temporäre Tabelle
        2. Eindeutiges Feld
      8. 3.8 ... die IFF-Funktion ersetzen?
      9. 3.9 ... ein einfaches SQL-Abfrageprogramm erstellen?
        1. Oberfläche
        2. Quelltext
        3. Test
      10. 3.10 ... Aggregatfunktionen auswerten?
        1. Oberfläche
        2. Quellcode (OleDb)
        3. Quellcode (SqlClient)
        4. Test
        5. Bemerkungen
      11. 3.11 ... SQL-Injection verhindern?
        1. Oberfläche
        2. Quelltext
        3. Test
        4. Schutz vor SQL-Injection
      12. 3.12 ... die Access 2007-Datenbankfeatures unterstützen?
    10. Übersichten
      1. Die wichtigsten SQL-Befehle
      2. Unterschiede ANSI-SQL und Access-SQL
  7. 4. Einführung ADO.NET
    1. Die wichtigsten Klassen in ADO.NET
      1. Klassenhierarchie
      2. Die Klassen der Datenprovider
        1. .NET-Datenprovider
        2. Weitere Datenprovider
        3. Anzeige der installierten Datenprovider
        4. Herstellerspezifische Datenprovider
      3. Klassen im DataSet
      4. Das Zusammenspiel der ADO.NET-Klassen
    2. Das Connection-Objekt
      1. Allgemeiner Aufbau
      2. OleDbConnection
        1. Parameter für OleDb-Zugriff
        2. OleDb-Provider für Access Datenbank (.mdb)
        3. OleDb-Provider für Access 2007/2010 (.accdb)
        4. OleDb-Provider für SQL Server
      3. SqlConnection
        1. Parameter für SQL Server-Zugriff
        2. Verbindung mit einer SQL Server-Datenbankdatei
        3. Bemerkungen zur Authentifizierung
      4. Fehlerbehandlung beim Öffnen einer Verbindung
      5. Schließen einer Verbindung
      6. Verbindungspooling
      7. Transaktionen
      8. Eigenschaften des Connection-Objekts
        1. ConnectionString-Eigenschaft
        2. Database- und DataSource-Eigenschaft
        3. Provider-Eigenschaft
        4. ServerVersion-Eigenschaft
        5. ConnectionTimeout-Eigenschaft
        6. State-Eigenschaft
      9. Methoden des Connection-Objekts
        1. Open- und Close-Methode
        2. ChangeDatabase-Methode
        3. CreateCommand-Methode
        4. BeginTransaction-Methode
      10. Ereignisse des Connection-Objekts
        1. InfoMessage-Ereignis
        2. StateChange-Ereignis
      11. Der ConnectionStringBuilder
      12. ConnectionString in den Anwendungseinstellungen speichern
    3. Das Command-Objekt
      1. Erzeugen und Anwenden eines Command-Objekts
      2. Erzeugen mittels CreateCommand-Methode
      3. Eigenschaften des Command-Objekts
        1. Connection- und CommandText-Eigenschaft
        2. CommandTimeout-Eigenschaft
        3. CommandType-Eigenschaft
        4. UpdatedRowSource-Eigenschaft
      4. Methoden des Command-Objekts
        1. ExecuteNonQuery-Methode
        2. ExecuteReader-Methode
        3. ExecuteScalar-Methode
      5. Freigabe von Connection- und Command-Objekten
    4. Parameter-Objekte
      1. Erzeugen und Anwenden eines Parameter-Objekts
      2. Eigenschaften des Parameter-Objekts
        1. ParameterName- und Value-Eigenschaft
        2. DbType, OleDbType und SqlDbType-Eigenschaft
        3. Direction-Eigenschaft
        4. Weitere Eigenschaften
    5. Das CommandBuilder-Objekt
      1. Erzeugen
      2. Anwenden
      3. Einsatzbeschränkungen
      4. Einige Regeln
      5. Optimistisches Konkurrenzmodell
    6. Das DataReader-Objekt
      1. DataReader erzeugen
      2. Daten lesen
      3. Eigenschaften des DataReaders
        1. Item-Eigenschaft
        2. FieldCount-Eigenschaft
        3. IsClosed-Eigenschaft
      4. Methoden des DataReaders
        1. Read-Methode
        2. GetValue- und GetValues-Methode
        3. GetOrdinal- und ähnliche Methoden
    7. Das DataAdapter-Objekt
      1. DataAdapter erzeugen
        1. Konstruktor mit SELECT-String und Connection-Objekt
        2. Konstruktor mit SelectCommand-Objekt
      2. Command-Eigenschaften
      3. Fill-Methode
        1. Begrenzung der Datenmenge
      4. Update-Methode
        1. Bemerkungen
      5. UpdateCommand und Parameter-Objekte
        1. SourceVersion- und SourceColumn-Eigenschaft
      6. InsertCommand und DeleteCommand
        1. Vorgehensweise
        2. Parameter definieren
        3. Datensätze hinzufügen
        4. Datensätze löschen
      7. MissingSchemaAction-Eigenschaft
      8. RowUpdating- und RowUpdated-Ereignis
        1. Der Parameter RowUpdatingEventArgs
        2. Die Status-Eigenschaft
    8. Arbeiten mit Excel-Arbeitsmappen
      1. Zugriffsmöglichkeiten
      2. OLE DB-Connectionstring
      3. Zugriff auf Excel 2007/2010-Arbeitsmappen
      4. Neue Mappen erstellen
      5. Daten in ein Tabellenblatt eintragen
      6. Daten aktualisieren
      7. Daten auslesen
      8. Zugriff auf Tabellenbereiche
      9. OLE-Automation
    9. Weitere Features des Datenzugriffs unter ADO.NET
      1. Auslesen von Datenbankschemas
      2. Providerfabriken
    10. How-to-Beispiele
      1. 4.1 ... wichtige ADO.NET-Objekte schnell kennen lernen?
        1. Oberfläche
        2. Quellcode (OleDb)
        3. Test
        4. Bemerkungen
      2. 4.2 ... eine Aktionsabfrage ausführen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      3. 4.3 ... Daten direkt zur Datenbank hinzufügen oder löschen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      4. 4.4 ... eine Access-Auswahlabfrage ausführen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      5. 4.5 ... parametrierte Abfragen ausführen?
        1. Oberfläche
        2. Quellcode 1 (Nordwind.mdb)
        3. Erster Test
        4. Quellcode 2 (Northwind.accdb)
        5. Quellcode 3 (Northwind.mdf)
        6. Test
      6. 4.6 ... die Datenbank aktualisieren?
        1. Oberfläche
        2. Quellcode (Command-Objekte selbst programmiert)
        3. Test
        4. Quellcode (mit CommandBuilder)
        5. Test
        6. Bemerkungen
      7. 4.7 ... RowUpdating-/RowUpdated-Ereignisse verstehen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      8. 4.8 ... Schemainformationen der Datenbank abrufen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      9. 4.9 ... einen Connectionstring verschlüsseln?
        1. Oberfläche
        2. Quelltext
        3. Test
      10. 4.10 ... eine klassische Datenzugriffsschicht entwickeln?
        1. Vorbereitungen
        2. Selektieren aller Kunden
        3. Kunde hinzufügen
        4. Kunde löschen
        5. Kunden aktualisieren
        6. TestClient
        7. Bemerkungen
    11. Übersichten
      1. Datentypen
      2. Connection-Objekt
      3. Command-Objekt
      4. Parameter-Objekt
      5. DataReader-Objekt
      6. DataAdapter
      7. CommandBuilder
  8. 5. Das DataSet-Objekt im Detail
    1. Einführung
      1. Das Objektmodell
        1. Objekthierarchie
        2. Die wichtigsten Klassen
      2. Methoden zum Erzeugen eines DataSets
        1. Copy-Methode
        2. Clone-Methode
        3. GetChanges-/HasChanges-Methode
      3. Weitere wichtige Methoden des DataSets
        1. RejectChanges-/AcceptChanges-Methode
        2. Merge-Methode
      4. Die XML-Fähigkeiten des DataSets
        1. XML-Datei erzeugen
        2. Inhalt der XML-Datei
    2. Das DataTable-Objekt
      1. DataTable erzeugen
        1. Unabhängige DataTable
        2. Kopieren
      2. Spalten hinzufügen
      3. Berechnete Spalten
      4. Primärschlüssel ergänzen
        1. Bemerkungen
      5. Einbinden von Constraints
        1. ForeignKeyConstraint
        2. AcceptRejectRule-Eigenschaft
        3. UniqueConstraint
      6. Hinzufügen von Relationen
        1. Erstellen einer DataRelation
        2. GetChildRows-Methode
        3. CreateConstraints-Flag
      7. Zeilen zur DataTable hinzufügen
        1. NewRow-Methode
        2. ImportRow-Methode
      8. Auf den Inhalt einer DataTable zugreifen
        1. Columns- und Rows-Eigenschaften
        2. TableName- und ColumnName-Eigenschaften
        3. Find-Methode
        4. Übergabe eines DataColumn-Objekts
        5. Select-Methode
      9. Weitere Hinweise zum Bearbeiten von Zeilen
      10. Zeilen löschen
        1. Delete oder Remove?
      11. Zeilenstatus und Zeilenversion
        1. RowState-Eigenschaft
        2. AcceptChanges- und RejectChanges-Methode
        3. DataRowVersion-Enumeration und HasVersion-Methode
      12. Ereignisse des DataTable-Objekts
        1. Übersicht
        2. ColumnChanging- und ColumnChanged-Ereignis
        3. RowChanging- und RowChanged-Ereignis
        4. Eigenschaften der Änderungsereignisse
    3. Datenansichten mit DataView
      1. Erzeugen eines DataView
        1. CreateDataView-Methode des DefaultViewManager
      2. Sortieren und Filtern von Datensätzen
      3. Suchen von Datensätzen
      4. Zeilenansicht mit DataRowView
        1. Zugriff
        2. Neu erzeugen
    4. Weitere DataSet-Features
      1. Umwandlungen zwischen DataSet und DataReader
        1. DataTableReader
        2. Load-Methode
        3. LoadOption-Enumeration
      2. Binäre Serialisierung für DataSet/DataTable
        1. RemotingFormat-Eigenschaft
        2. Binäre- kontra XML-Serialisierung
      3. Die DataTable kann mehr XML
      4. Schnelles Laden von DataSets
    5. Typisierte DataSets
      1. Was ist ein typisiertes DataSet?
        1. Welche Vorteile bietet ein typisiertes DataSet?
        2. Wie erzeuge ich ein typisiertes DataSet?
      2. Das Datenquellen-Konzept
      3. Typisierte DataSets und TableAdapter
        1. Warum sollte man ein typisiertes DataSet einsetzen?
        2. Der TableAdapter
    6. LINQ to DataSet
      1. Untypisierte DataSets abfragen
        1. Probleme mit NULL-Werten
      2. Typisierte DataSets abfragen
      3. Abhängigkeiten zwischen den Tabellen auflösen
    7. Die Qual der Wahl
      1. DataReader – der schnelle Lesezugriff
      2. DataSet – die Datenbank im Hauptspeicher
        1. Typisiertes versus untypisiertes DataSet
      3. Objektrelationales Mapping – die Zukunft?
        1. LINQ to SQL/LINQ to Entities
    8. How-to-Beispiele
      1. 5.1 ... eine DataTable erzeugen und in einer Binärdatei speichern?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      2. 5.2 ... eine DataTable in einer XML-Datei abspeichern?
        1. Oberfläche
        2. Quellcode
        3. Test
      3. 5.3 ... Master-Detailbeziehungen im DataGrid anzeigen?
        1. Oberfläche
        2. Quellcode
        3. Test
      4. 5.4 ... in einem DataView sortieren und filtern?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      5. 5.5 ... nach Datensätzen suchen?
        1. Oberfläche
        2. Quellcode
        3. Test
      6. 5.6 ... vereinfacht nach Datensätzen suchen?
        1. Oberfläche
        2. Quellcode
        3. Test
      7. 5.7 ... zwischen DataTable und DataReader umwandeln?
        1. Oberfläche
        2. Quellcode (Allgemein)
        3. Quellcode (DataTable => DataReader)
        4. Quellcode (DataReader => DataTable)
        5. Test
      8. 5.8 ... große Datenmengen in ein DataSet laden?
        1. Oberfläche
        2. Quellcode
        3. Test
      9. 5.9 ... ein DataSet binär serialisieren?
        1. Oberfläche
        2. Quellcode
        3. Test
      10. 5.10 ... ein DataSet in einen XML-String konvertieren?
        1. Konvertierungsmethoden
        2. Testoberfläche Form1
        3. Erzeugen eines untypisierten DataSets als Testobjekt
        4. Test
      11. 5.11 ... ein untypisiertes in ein typisiertes DataSet laden?
        1. Konvertierungscode
        2. Normales DataSet erzeugen
        3. Typisiertes DataSet
        4. Testoberfläche
        5. Test
      12. 5.12 ... ein typisiertes DataSet mit LINQ abfragen?
        1. Oberfläche
        2. Typisiertes DataSet
        3. Quellcode
        4. Test
        5. Bemerkungen
      13. 5.13 ... mit LINQ to DataSet die Datenbank aktualisieren?
        1. Bedienoberfläche
        2. Typisiertes DataSet erstellen und anbinden
        3. Quellcode
        4. Test
        5. Bemerkungen
    9. Übersichten
      1. DataSet
      2. DataTable
      3. DataColumn
      4. DataRow
      5. DataView
  9. 6. Windows Forms-Datenbindung
    1. Einführung
    2. Manuelle Datenbindung an einfache Datenfelder
      1. BindingSource erzeugen
      2. Binding-Objekt
      3. DataBindings-Collection
      4. Bindungen löschen
      5. Bemerkungen
    3. Manuelle Datenbindung an Listen und Tabelleninhalte
      1. DataGridView
      2. Datenbindung von ComboBox und ListBox
    4. Entwurfszeit-Datenbindung an ein typisiertes DataSet
    5. Drag & Drop-Datenbindung
    6. Navigieren im DataSet
      1. Vor- und Rückwärtsblättern
      2. Hinzufügen und Löschen
      3. Aktualisieren und Abbrechen
      4. BindingNavigator
    7. Die Anzeige formatieren
    8. Das DataGridView
      1. Vom DataGrid zum DataGridView
      2. Grundlegende Datenbindung
      3. Standardmäßige Anzeige und Bedienung
      4. Wichtige Spalteneinstellungen
        1. AllowUserToOrderColumns
        2. Frozen
        3. HeaderText
        4. DisplayIndex
        5. Resizable und MinimumWidth
        6. Visible
      5. Automatische Größenanpassungen
        1. AutoSizeColumnsMode-Eigenschaft/AutoResizeColumns-Methode
        2. AutoSizeMode-Eigenschaft/AutoResizeColumn-Methode
        3. AutoSizeRowsMode-Eigenschaft/AutoResizeRows-Methode
        4. AutoResizeRow-Methode
      6. Selektieren von Zellen
        1. SelectedCells-, SelectedRows- und SelectedColumns-Eigenschaften
        2. CurentCell- und CurrentCellAddress-Eigenschaften
      7. Columns- und Rows-Auflistungen
      8. DataGridViewCellStyle-Objekte
        1. Datenformatierung
        2. Outfit
        3. Benutzerdefinierte Zellenformatierung
      9. Spaltentypen
        1. DataGridViewButtonColumn
        2. DataGridViewComboBoxColumn
        3. DataGridViewCheckBoxColumn
        4. DataGridViewImageColumn
      10. Editieren im DataGridView
      11. Fehlerbehandlung
      12. Eingabeprüfung
    9. How-to-Beispiele
      1. 6.1 ... eine Objekt-Datenquelle verwenden?
        1. Quellcode (Geschäftsobjekte)
        2. Datenquelle hinzufügen
        3. Quellcode (Form1)
        4. Test
        5. Bemerkungen
      2. 6.2 ... Steuerelemente an einen Objektbaum binden?
        1. Klassendiagramm
        2. Klasse CBestellung
        3. Klasse CPerson
        4. Klasse CKunde
        5. Klasse CFirma
        6. Klasse CPersistent
        7. Form1
        8. Test
        9. Anbinden an DataGridView
      3. 6.3 ... Detailinformationen mit ListBox/ComboBox anzeigen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      4. 6.4 ... Steuerelemente manuell an ein DataSet binden?
        1. Benutzerschnittstelle
        2. Quellcode
        3. Test
        4. Bemerkungen
        5. Variante mit BindingNavigator
      5. 6.5 ... zwei Formulare an eine Datenquelle binden?
        1. Oberfläche
        2. Quellcode Form1
        3. Quellcode Form2
        4. Test
        5. Bemerkungen
      6. 6.6 ... mittels ComboBox zwei Tabellen verknüpfen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      7. 6.7 ... ein typisiertes DataSet manuell binden?
        1. Oberfläche
        2. Datenquelle erstellen
        3. Steuerelemente manuell anbinden
        4. ComboBox anbinden
        5. Erster Test
        6. Zweiter Test
        7. Bemerkung
      8. 6.8 ... 1:n-Beziehungen per Drag & Drop-Datenbindung anzeigen?
        1. Oberfläche
        2. Datenquelle erstellen
        3. Personal-Eingabemaske per Drag & Drop erzeugen
        4. Datengitter für die Detailtabelle per Drag & Drop erzeugen
        5. Test
        6. Quellcode Form1
      9. 6.9 ... die Spalten im DataGridView formatieren?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      10. 6.10 ... mit DataReader und ListView arbeiten?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      11. 6.11 ... Bilder aus der Datenbank anzeigen?
        1. Oberfläche
        2. Vorbereitungen
        3. Quellcode
        4. Test
        5. Bemerkungen
      12. 6.12 ... BLOB-Daten verwalten?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      13. 6.13 ... BLOB-Daten anzeigen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      14. 6.14 ... das DataGridView als Datenbank-Frontend verwenden?
        1. Vorbereitungen
        2. Bedienoberfläche
        3. Statische Klasse CData
        4. Quellcode Form1 (Teil 1)
        5. Formatieren des DataGridView
        6. Quellcode Form1 (Teil 2)
        7. Test
        8. Bemerkungen
      15. 6.15 ... Datenbindung mit LINQ to SQL kennen lernen?
        1. Datenkontext
        2. Oberfläche
        3. Quellcode
        4. Test
      16. 6.16 ... den DataRepeater für die Anzeige verwenden?
        1. Oberfläche
        2. Quelltext
        3. Test
        4. Bemerkungen
  10. 7. Datenbindung – WPF
    1. Grundprinzip
      1. Bindungsarten
      2. Wann wird eigentlich die Quelle aktualisiert?
      3. Bindung zur Laufzeit realisieren
    2. Binden an Objekte
      1. Objekte im Code instanziieren
      2. Verwenden der Instanz im C#-Quellcode
      3. Anforderungen an die Quell-Klasse
      4. Instanziieren von Objekten per C#-Code
    3. Binden von Collections
      1. Anforderung an die Collection
      2. Einfache Anzeige
      3. Navigieren zwischen den Objekten
      4. Einfache Anzeige in einer ListBox
        1. Verwendung von DisplayMemberPath
      5. DataTemplates zur Anzeigeformatierung
      6. Mehr zu List- und ComboBox
        1. SelectedIndex
        2. SelectedItem/SelectedItems
        3. SelectedValuePath und SelectedValue
      7. Verwendung der ListView
        1. Einfache Bindung
        2. Sortieren der Einträge
    4. Ein Blick hinter die Kulissen
      1. Navigieren in den Daten
      2. Sortieren
      3. Filtern
    5. Drag & Drop-Datenbindung
      1. Vorgehensweise
      2. Weitere Möglichkeiten
    6. Formatieren von Werten
      1. IValueConverter
      2. BindingBase.StringFormat-Eigenschaft
    7. Das DataGrid als Universalwerkzeug
      1. Grundlagen der Anzeige
        1. UI-Virtualisierung
        2. Spalten selbst definieren
        3. Zusatzinformationen in den Zeilen anzeigen
      2. Vom Betrachten zum Editieren
    8. How-to-Beispiele
      1. 7.1 ... Datenbindung unter LINQ to SQL realisieren?
        1. Datenmodell per LINQ to SQL-Designer erzeugen
        2. Die Programm-Oberfläche
        3. Der Zugriff auf die Daten
        4. Test
        5. Alternative
      2. 7.2 ... Drag & Drop-Bindung für Master/Detail-Beziehungen umsetzen?
        1. Oberfläche
        2. Quellcode (XAML)
        3. Quellcode (C#)
        4. Test
  11. 8. Datenbindung in ASP.NET-Anwendungen
    1. Übersicht Datenbindung unter ASP.NET
      1. Grundkonzept
      2. DataSource-Steuerelemente
    2. SqlDataSource im Detail
      1. Datenauswahl mit Parametern
      2. Parameter für INSERT, UPDATE und DELETE
      3. FilterExpression
      4. Caching
      5. Weitere Methoden
        1. Aktualisieren/Refresh mit DataBind
      6. Ereignisse
    3. Zugriff auf Geschäftsobjekte mit der ObjectDataSource
      1. Verbindung zwischen Objekt und DataSource
      2. Ein Beispiel sorgt für Klarheit
        1. Die Basisklasse Artikel
        2. Das Geschäftsobjekt
      3. Geschäftsobjekte in einer Session verwalten
    4. Typisierte DataSets und ObjectDataSource
      1. Verwendung von TableAdaptern in ASP.NET-Seiten
        1. Instanziieren von TableAdaptern und typisiertem DataSet
      2. Datenauswahl und Anzeige mit TableAdaptern
      3. Datenmanipulation mit TableAdaptern
      4. ObjectDataSource und typisierte DataSets
        1. 1. TableAdapter und ObjectDataSource verknüpfen
        2. 2. Datenmethoden zuordnen
        3. 3. Datenquellen miteinander verknüpfen (1:n-Beziehung)
        4. 4. GridView-Funktionen aktivieren
        5. 5. Parameter der Datenmethoden mit Controls verknüpfen
        6. 6. Unser erster Quellcode
        7. 7. Nachbessern
        8. 7. Und doch wieder TableAdapter
        9. 8. Etwas Luxus bitte
    5. LinqDataSource
      1. Bindung von einfachen LINQ-Collections
      2. Binden eines LINQ to SQL-DataContext
      3. Berechnete Spalten/Detaildaten
      4. Eigene LINQ-Ausdrücke zur Laufzeit übergeben
      5. Filtern mit der LinqDataSource
    6. EntityDataSource
      1. Entity Data Model erstellen
      2. EntityDataSource anbinden
      3. Datenmenge filtern
    7. QueryExtender
      1. Grundlagen
      2. Suchen
      3. Sortieren
    8. Weitere Datenquellen
      1. Spezialfall AccessDataSource
      2. Verwalten strukturierter Daten mit der XmlDataSource
    9. Das GridView-Steuerelement im Detail
      1. Auswahlfunktion (Zeilenauswahl)
      2. Auswahl mit mehrspaltigem Index realisieren
      3. Hyperlink-Spalte für Detailansicht nutzen
      4. Spalten erzeugen/konfigurieren
      5. Template-Spalten verwenden
        1. Detaildaten in Zeilenform anzeigen
      6. Paging im GridView realisieren
      7. Editieren und Löschen im GridView
      8. Einfügen von Datensätzen
      9. Keine Daten, was tun?
    10. Weitere Steuerelemente für die Datenbindung
      1. DetailsView
        1. Einfügen neuer Datensätze
        2. Datensatzauswahl
      2. FormView
        1. Datenbindung im FormView
      3. DataList
        1. Layout verändern
        2. Bearbeitungsfunktionen implementieren
      4. Repeater
      5. ListView
        1. Erste Schritte
        2. Sortieren
      6. Label/TextBox
      7. CheckBoxList, BulletList, RadioButtonList, DropDownList, ListBox
        1. Datenbindung
      8. Hierarchische Datenanzeige mittels TreeView-Control
      9. Chart-Control
    11. Eingabeprüfung mit den Validator-Steuerelementen
      1. Übersicht
      2. Wo findet die Fehlerprüfung statt?
      3. Verwendung
      4. RequiredFieldValidator
      5. CompareValidator
      6. RangeValidator
      7. RegularExpressionValidator
      8. CustomValidator
        1. Clientseitige Validierung
        2. Serverseitige Validierung
      9. ValidationSummary
      10. Weitere Möglichkeiten der Validation-Controls
        1. Validierung zeitweise verhindern
        2. ValidationGroup bilden
        3. Eingabefokus setzen
    12. Reports in ASP.NET-Anwendungen verwenden
      1. Der Microsoft ReportViewer
      2. Direkter Excel-/PDF-Export
      3. Parameterübergabe an lokale Reports
    13. Weitere Themen
      1. Dynamic Data
        1. Dynamic Data-Beispielapplikation
        2. Einbindung in bestehende Projekte durch direkte Adressierung
        3. Weitere Informationen
      2. ASP.NET MVC
        1. Grundlagen
        2. Das Microsoft ASP.NET MVC-Framework
        3. Weitere Informationen
      3. AJAX
        1. Was ist eigentlich AJAX und was kann es?
        2. Die AJAX-Controls in Visual Studio
        3. AJAX-Control-Toolkit
    14. How-to-Beispiele
      1. 8.1 ... die Zellen im GridView formatieren?
        1. Oberfläche
        2. Quelltext
        3. Test
      2. 8.2 ... ein GridView mit Scrollbar realisieren?
      3. 8.3 ... ein GridView mit Mouseover-Effekt realisieren?
        1. Oberfläche
        2. Quelltext
        3. Test
      4. 8.4 ... GridView-Daten im Excel-Format exportieren?
        1. Oberfläche
        2. Quelltext
        3. Test
      5. 8.5 ... Detaildaten in einem Popup-Fenster anzeigen?
        1. Oberfläche Hauptformular
        2. Oberfläche Detailformular
        3. Quellcode
        4. Test
      6. 8.6 ... eine Zeilensumme im GridView berechnen?
      7. 8.7 ... reagieren, wenn keine Daten vorhanden sind?
      8. 8.8 ... im GridView eine Spaltensummen berechnen?
        1. Oberfläche
        2. Quelltext
        3. Test
      9. 8.9 ... korrekte Währungswerte im GridView anzeigen?
      10. 8.10 ... Eingabewerte im GridView validieren?
        1. Oberfläche
        2. Test
      11. 8.11 ... einen E-Mail-Versand in ASP.NET realisieren?
        1. Übersicht
        2. Mail-Server bestimmen
        3. Einfache Text-E-Mails versenden
        4. E-Mails mit Dateianhang
  12. 9. Die Microsoft Chart-Controls
    1. Allgemeine Chart-Features
      1. Serien/Reihen und Datenpunkte direkt erzeugen
      2. Den Diagrammtyp ändern
      3. 3D-Darstellung
      4. Farben für Serien und Datenpunkte
        1. Farbpalette auswählen
        2. Benutzerdefinierte Paletten
        3. Color-Eigenschaft
      5. Leere Datenpunkte
      6. Diagramm drucken
      7. Diagramm exportieren/abspeichern
    2. Einführung in die Chart-Datenbindung
      1. Manuelle Datenbindung mittels Points.AddXY-Methode
      2. Übersicht über die speziellen Datenbindungsmethoden
      3. Unterstützte Datenquellen
    3. Spezielle Chart-Datenbindungsmethoden
      1. Die DataBindTable-Methode
      2. DataBind-Methode/DataSource-Eigenschaft
      3. Die DataBindCrossTable-Methode
      4. Die Points.DataBind-Methode
      5. Die Points.DataBind(X)Y-Methoden
        1. Points.DataBindXY
        2. Points.DataBindY
    4. How-to-Beispiele
      1. 9.1 ... das Chart-Control zur Laufzeit mit Daten füllen?
        1. Dataset entwerfen
        2. Oberfläche
        3. Quelltext
        4. Test
      2. 9.2 ... das Chart mit einer LINQ to SQL-Abfrage verbinden?
        1. Oberfläche
        2. Quelltext
        3. Test
      3. 9.3 ... mit ASP.NET ein Diagramm anzeigen?
        1. Oberfläche
        2. Datenzugriff realisieren
        3. Quelltext
        4. Test
  13. 10. Reporting Services
    1. Übersicht
      1. Report Designer
      2. Report Viewer
        1. Eigenschaften
        2. Betriebsarten
    2. Einführungsbeispiele
      1. Der erste Bericht – so einfach geht das!
        1. Datenquelle erzeugen
        2. Report entwerfen
        3. Report mit ReportViewer verbinden
        4. Bemerkungen
      2. Ein zweiter Bericht – weg mit dem Assistenten!
        1. Vorbereitungen
        2. Bericht entwerfen
        3. ReportViewer anbinden
        4. Test
        5. Zusammenfassung und Bemerkungen
    3. Unsere Werkzeuge zum Berichtsentwurf
      1. Oberfläche des Report-Designers
        1. Textkörper
        2. Kopfzeile und Fußzeile
      2. Toolbox
        1. Beschreibung
        2. Hinweise zur Programmierung
      3. Bericht-Menü
        1. Berichtseigenschaften
        2. Kopf-/Fusszeile ein-/ausblenden
        3. Gruppierung
      4. Berichtsdaten-Fenster
        1. Integrierte Felder
        2. Berichtsparameter
        3. Eingebettete Bilder
        4. DataSet
      5. Programmieren mit Visual Basic
        1. Konstanten
        2. Integrierte Felder
        3. Parameter
        4. Felder und DataSets
        5. Variablen
        6. Operatoren
        7. Allgemeine Funktionen
    4. Sortieren, Gruppieren und Filtern von Datensätzen
      1. Allgemeines
      2. Sortieren
      3. Gruppieren
      4. Filtern
    5. Kreuztabellenberichte
      1. Einfache Matrix
      2. Zeilen- und Spaltensummen anzeigen
      3. Zusätzliche berechnete Spalten einfügen
      4. Matrix mit zwei Zeilengruppen
      5. Bilder anzeigen
      6. Ein Bild in den Bericht einbetten
      7. Bilder aus einer Datenbank
      8. Externe Bilder
      9. Hintergrundbilder
    6. Diagramme darstellen
      1. Diagrammtypen
      2. Säulendiagramm
      3. Weitere Gruppen hinzufügen
      4. Weitere Diagramme
    7. Parameter anwenden
      1. Parameterdefinition
        1. Allgemein
        2. Verfügbare Werte
        3. Standardwerte
      2. Einbau von Parametern in den Berichtsentwurf
        1. Parameter direkt eintragen
        2. Parameter mit Ausdruck-Editor zuweisen
      3. Parameterwerte an Bericht übergeben
        1. Allgemeine Syntax
        2. Parameterübergabe
    8. Berichtsvariablen
    9. Master-Detail-Reports
      1. Subreports
      2. Eingebettete Datenregionen
    10. Noch mehr Reporting
      1. Hyperlink realisieren
      2. Verwenden von ReportViewer-Ereignissen
        1. Drillthrough-Event
        2. Hyperlink-Event
    11. Hinzufügen von benutzerdefiniertem Code
      1. Variante 1: Eingebetteter Visual Basic-Code
      2. Variante 2: Benutzerdefinierte Assembly
    12. Ergänzungen zum ReportViewer
      1. Local Mode versus Server Mode
      2. RDL- versus RDLC-Format
      3. Übersicht Datenbindung
        1. Anbindung DataSet
        2. Anbindung Objekte (LINQ to SQL, Entity Framework, Webdienste)
    13. How-to-Beispiele
      1. 10.1 ... einen Bericht mit dem Berichtsassistenten erstellen?
        1. Vorbereitung
        2. Reportentwurf mit Assistent
        3. Anzeige per ReportViewer
      2. 10.2 ... einen Unterbericht verwenden?
        1. Datenquelle erstellen
        2. Unterbericht entwerfen
        3. Parameter und Filter zum Unterbericht hinzufügen
        4. Hauptbericht entwerfen
        5. ReportViewer anbinden
        6. Test
      3. 10.3 ... eine Rechnung anzeigen?
        1. Datenquelle erstellen
        2. Report entwerfen
        3. Test
        4. Bemerkungen
      4. 10.4 ... das Drillthrough-Event behandeln?
        1. Detail-Report vorbereiten
        2. Master-Report vorbereiten
        3. ReportViewer mit Master-Report verbinden
        4. Drillthrough-Event auswerten
        5. Test
      5. 10.5 ... auf eine benutzerdefinierte Assembly zugreifen?
        1. Datenbank und Datenquelle
        2. Assembly anfertigen
        3. Assemblyverweis einrichten
        4. Bericht entwerfen
        5. ReportViewer anbinden
        6. Besonderheiten
        7. Test
        8. Bemerkungen
      6. 10.6 ... das Messgerät zur Anzeige nutzen?
        1. Vorbereitung
        2. Reportentwurf
        3. Anzeige
  14. 11. Crystal Report
    1. Übersicht
      1. Installieren
        1. 1. Schritt: Installation der Runtime
        2. 2. Schritt: Installation von Crystal Report für Visual Studio
        3. 3. Schritt: Anpassen des Projekts
      2. Ein Einsteigerbeispiel
        1. Zuerst die Daten in das Projekt einbinden
        2. Wer sucht, der findet ...
        3. Verbindung zur Datenbank
        4. Feldauswahl
        5. Im Designer
        6. Erster Test
        7. Testen in der Druckvorschau
        8. Drucken/Exportieren
      3. Der Report-Designer
      4. Der Reportaufbau
        1. Kopfbereich des Berichts
        2. Seitenkopf
        3. Gruppenkopf
        4. Details
        5. Gruppenfuß
        6. Berichtsfuß
        7. Seitenfuß
      5. Die Druckvorschau-Komponente
    2. Wichtige Funktionen im Überblick
      1. Formelfelder
      2. Parameterfelder
      3. Gruppennamenfelder
      4. Spezialfelder
      5. SQL-Ausdrucksfelder
      6. Laufende Summe-Felder
      7. Unterberichte
      8. Diagramme und Bilder
      9. Weitere Komponenten
      10. Das Ereignis-Modell
    3. Reports entwerfen
      1. Verbindung zur Datenbank herstellen
        1. Ändern des Datenbankpfades zur Laufzeit
      2. Sortieren und Gruppieren
        1. Sortieren/Gruppieren mit Assistentenhilfe
        2. Sortieren/Gruppieren mit dem Designer
      3. Verwenden von Parameterfeldern
        1. Eigene Dialogfelder verwenden
      4. Berechnungen im Report
        1. Zeilensumme
      5. Gestalten mit bedingter Formatierung
        1. Farbliche Gestaltung
      6. Kreuztabellenberichte
        1. Auswahl der Daten
        2. Kreuztabellen-Assistent
      7. Unterberichte
        1. Hauptbericht entwerfen
        2. Unterbericht
    4. Programmieren der Druckvorschau
      1. Der CrystalReportViewer im Überblick
      2. Wichtige Eigenschaften, Methoden und Ereignisse
    5. Direkte Ausgabe auf dem Drucker
      1. Die Lizenz zum Drucken
      2. Druckerauswahl und Konfiguration
      3. Drucken mit Druckerdialog
    6. Exportieren von Reports
      1. Bestimmen des Exportformats
      2. Export als Datei
      3. Export als E-Mail
    7. Praxisbeispiel – Rechnung mit Crystal Report drucken
      1. Datenbasis anpassen
      2. Report erzeugen
      3. Festlegen der Datenquelle
      4. Berechnungen im Report durchführen
        1. Zeilensumme
        2. Nettosumme
      5. Auswahl der gewünschten Datensätze
      6. Reportentwurf
        1. Formatieren der Anzeigedaten
      7. Druckvorschaufenster entwerfen
      8. Zuweisen der Daten und Übergabe der Parameter
      9. Die fertige Rechnung
    8. How-to-Beispiele
      1. 11.1 ... ein Deckblatt erzeugen?
      2. 11.2 ... Seitenzahlen, Druckdatum etc. einblenden?
      3. 11.3 ... Spaltensatz oder Etiketten realisieren?
      4. 11.4 ... die Seitenränder festlegen?
      5. 11.5 ... mehrspaltige Reports erstellen?
      6. 11.6 ... einen Seitenumbruch erzwingen?
      7. 11.7 ... die Position und Größe der Druckvorschau vorgeben?
      8. 11.8 ... Reports in die Applikation einbetten?
      9. 11.9 ... Querdruck auswählen?
      10. 11.10 ... RTF-/HTML-Text ausgeben?
      11. 11.11 ... den Report zur Laufzeit auswählen?
      12. 11.12 ... Summen, Anzahlen, Mittelwerte etc. berechnen?
        1. Variante 1 (Berechnungen in Spalten)
        2. Variante 2 (Zeilensummen)
      13. 11.13 ... farbliche und optische Formatierungen realisieren?
      14. 11.14 ... den Datenbankpfad zur Laufzeit anpassen?
      15. 11.15 ... die Login-Informationen zur Laufzeit ändern?
      16. 11.16 ... Crystal Report unter LINQ to SQL nutzen?
  15. 12. Access-Datenbanken
    1. Ein erster Blick auf Microsoft Access-Datenbanken
      1. Warum Access?
      2. Access-Datentypen
      3. Beschränkungen
    2. Zugriff aus C#
      1. Warum nicht nur ADO.NET?
      2. Die ADOX-Library
        1. Die wichtigsten Objekte auf einen Blick
      3. Die JRO-Library
      4. ADO MD
      5. Einbinden von ADOX und JRO in C#
      6. Parameter für ADO.NET-Connectionstrings
      7. Access-Datenbankpasswort
      8. Access-Datenbanksicherheit (Benutzer-/Gruppenebene)
      9. Datenbankzugriff auf schreibgeschützte Medien (CD, DVD)
    3. Datenbanken erstellen
      1. Die Create-Methode
      2. Weitere Parameter
      3. Jet-spezifische Optionen
    4. Tabellen/Indizes erstellen/verwalten
      1. Tabellendefinition
      2. Indexdefinition
      3. Erstellen von Prozeduren und Sichten
      4. Tabellen verknüpfen (Relationen)
    5. Zugriffsschutz in Access-Datenbanken
      1. Grundlagen
      2. Sichern auf Datenbankebene
      3. Erstellen neuer Benutzer und Gruppen
      4. Vergabe von Rechten
      5. Verschlüsseln von Datenbanken
    6. Einbinden externer Tabellen
      1. Erstellen einer Verbindung
      2. Aktualisieren einer Verbindung
      3. Löschen einer Verbindung
    7. Replizieren von Datenbanken
      1. Begriffe
      2. Aufbau einer Replikatgruppe
      3. Probleme bei Replikationen
      4. Vorbereitungen zur praktischen Umsetzung
      5. Replikat erstellen
      6. Abgleich von Kopie und Original
    8. Datenbankanalyse
      1. Verwendung von GetSchema
        1. Welche Informationen können abgerufen werden?
        2. Welche Einschränkungen können verwendet werden?
      2. Datenbankeigenschaften mit ADOX ermitteln
      3. Tabellen mit ADOX bestimmen
      4. Sichten/Abfragen mit ADOX bestimmen
        1. Parameterabfragen (Procedures)
      5. Nutzer und Nutzergruppen auslesen
      6. Nutzer- und Gruppenberechtigungen ermitteln
    9. Weitere Aufgabenstellungen
      1. Access-Datenbanken reparieren/komprimieren
      2. Distribution von Access-Datenbanken
    10. Access 2007-Datenbanken
      1. Zugriff auf die Datenbanken
      2. Neuer Connectionstring
      3. Übersicht neue Datentypen
      4. Arbeiten mit den DAOs
      5. Memofeld mit Archiv-Funktion
        1. Erzeugen per Access-Editor
        2. Erzeugen per DAO-Code
        3. Zugriff auf das History-Feld
      6. Anlage-Feld
        1. Erzeugen per DAO-Code
        2. Dateien im Anlage-Feld speichern
        3. Informationen über die Anlagen abrufen
        4. SQL und Anlagefelder
      7. Rich-Text-Feld
        1. Erzeugen per DAO-Code
      8. Multivalue-Feld (MVF)
        1. Erzeugen per Access-Editor
        2. Bemerkungen
    11. Access 2010-Datenbanken
      1. Download/Installation Access 2010 Database Engine
      2. Berechnete Spalten
        1. Tabelle erzeugen
        2. Tabelle in C# verwenden
      3. Trigger/Datenmakros
        1. Trigger erzeugen
        2. Tabelle in C# verwenden
      4. Unterschiede Access 2007/2010
    12. How-to-Beispiele
      1. 12.1 ... ADO installieren?
      2. 12.2 ... Access-Datenbanken exklusiv öffnen?
      3. 12.3 ... die Zugriffsgeschwindigkeit auf Access-Datenbanken erhöhen?
      4. 12.4 ... Access-Datenbanken im Netzwerk verwenden?
      5. 12.5 ... alle aktiven Verbindungen zur Datenbank auflisten?
      6. 12.6 ... eine Spalte mit eindeutigen Zufallswerten erzeugen?
      7. 12.7 ... das Datenbank-Kennwort ändern?
        1. Datenbankpasswort
        2. Nutzerpasswort
      8. 12.8 ... Abfragen über mehrere Datenbanken realisieren?
      9. 12.9 ... die Beschreibung von Datenbankfeldern abrufen?
  16. 13. Microsoft SQL Server-Einstieg
    1. Übersicht
      1. SQL Server Express
      2. SQL Server Compact
      3. Unterschiede SQL Server/SQL Server Express/Jet-Engine
      4. Client- versus Fileserver-Programmierung
      5. Die wichtigsten Tools von SQL Server
        1. SQL Server Management Studio
        2. SQLCMD
        3. Query Analyzer (SQL Server Management Studio)
        4. SQL Server Profiler
        5. SQL Server Konfigurationsmanager
      6. Vordefinierte Datenbanken
      7. Einschränkungen
      8. Weitere SQL Server-Funktionen im Kurzüberblick
        1. SQL Server-Agent
        2. Volltextsuche
        3. Reporting Services
        4. Integration Services
        5. Analysis Services
    2. Datenzugriff aus C#
      1. Einrichten der Anbindung (Assistent)
      2. Einrichten der Verbindung (Quellcode)
    3. Transact-SQL
      1. Schreibweise
      2. Kommentare
      3. Zeichenketten
      4. Variablen deklarieren/verwenden
      5. Bedingungen mit IF/ELSE auswerten
      6. Verwenden von CASE
      7. Verwenden von WHILE ... BREAK/CONTINUE
      8. Datum und Uhrzeit in T-SQL
      9. Verwenden von GOTO
      10. Fehlerbehandlung
    4. Datenbanken mit DMO verwalten
      1. Einbindung
      2. Einführungsbeispiel
    5. SQL Server Management Objects (SMO)
      1. Einbindung
      2. Einführungsbeispiel
      3. Anmelden am Server
    6. Datensicherheit auf dem Microsoft SQL Server
      1. Überblick Sicherheitsmodell
        1. Rollen (Gruppen)
        2. Rechte
      2. Verwalten mit dem SQL Server Management Studio
        1. Erstellen von Usern
        2. Erstellen von Rollen
        3. Verwalten von Rechten
      3. Verwalten mit T-SQL
        1. Überblick
        2. Erstellen eines neuen Users
        3. Löschen eines Benutzers
        4. Erstellen einer neuen Rolle
        5. Hinzufügen von Usern zu einer Rolle
        6. Verwaltung von Rechten
    7. How-to-Beispiele
      1. 13.1 ... den Netzwerkzugriff auf den SQL Server Express aktivieren?
        1. SQL Server Browser aktivieren
        2. TCP/IP-Protokoll aktivieren
        3. Erlaubnis für Remotezugriff überprüfen
        4. Gemischte Anmeldung aktivieren
      2. 13.2 ... den SQL Server Express erkennen?
      3. 13.3 ... den SQL Server Express administrieren?
      4. 13.4 ... alle Nutzer einer Datenbank ermitteln?
      5. 13.5 ... alle registrierten Microsoft SQL Server ermitteln?
      6. 13.6 ... alle Datenbanken und deren Tabellen ermitteln?
      7. 13.7 ... eine Tabelle löschen?
      8. 13.8 ... eine Tabelle mit den SMO erzeugen?
      9. 13.9 ... die Anzahl der Datensätze beschränken?
        1. Variante 1 (TOP)
        2. Variante 2 (SET ROWCOUNT)
        3. Variante 3 (ROW_NUMBER)
      10. 13.10 ... Platzhalterzeichen in T-SQL verwenden?
      11. 13.11 ... Teilstrings erzeugen?
      12. 13.12 ... Leerzeichen entfernen?
      13. 13.13 ... mit DROP INDEX jeden Index löschen?
      14. 13.14 ... @@ERROR korrekt verarbeiten?
      15. 13.15 ... die Anzahl der Datensätze einer Abfrage bestimmen?
      16. 13.16 ... IFF ersetzen?
      17. 13.17 ... mit Bedingungen Feldinhalte formatieren?
      18. 13.18 ... Abfragen mit Platzhaltern beschleunigen?
      19. 13.19 ... die Groß-/Kleinschreibung berücksichtigen?
      20. 13.20 ... das Ergebnis einer Stored Procedure speichern?
      21. 13.21 ... eine Datenbank umbenennen?
      22. 13.22 ... eine Datenbank zwischen Servern verschieben?
      23. 13.23 ... eine Datenbankstruktur kopieren?
      24. 13.24 ... nach dem Löschen IDENTITY auf 0 setzen?
      25. 13.25 ... eine Tabellenspalte umbenennen?
      26. 13.26 ... Unterschiede zwischen temporären Tabellen erkennen?
      27. 13.27 ... Daten aus verschiedenen Datenbanken anzeigen?
      28. 13.28 ... die PRINT-Anweisung in C# anzeigen?
    8. Übersichten
      1. Datentypen
      2. Unterschiede Access- und SQL Server-Datentypen
  17. 14. Microsoft SQL Server-Programmierung
    1. Praktisches Arbeiten mit dem SQL Server
      1. Erstellen von SQL Server-Datenbanken
        1. Verwenden von SMO
        2. Verwenden von T-SQL
        3. Ergänzungen
      2. Erzeugen und Verwalten von Tabellen
        1. Visual Studio
        2. Indizes
        3. Tabellen erzeugen/verwalten mit T-SQL
        4. Temporäre Tabellen
        5. Tabellen mit SMO erzeugen
      3. Datenbankdiagramme
      4. Erzeugen und Verwenden von Sichten (Views)
        1. Verwenden von T-SQL
      5. Gespeicherte Prozeduren verwenden
        1. Verwenden von Parametern
        2. Resultsets als Rückgabewerte
        3. Output-Parameter
        4. Verwenden des Rückgabewertes
        5. Table Value Parameters (TVP)
      6. Programmierung/Verwendung von Triggern
        1. DDL-Trigger
        2. Trigger-Arten (DML-Trigger)
        3. Gezielte Datensatzauswertung
        4. Auswerten von Spaltenänderungen
      7. Volltextabfragen
        1. Allgemeine Voraussetzungen
        2. Erstellen mit T-SQL
        3. Abfragen von Daten
        4. Ergänzungen/Hinweise
      8. Die Verwendung von FileStream-Storage
        1. FileStream-Storage aktivieren
        2. CONTAINS FILEGROUP
        3. Tabellenlayout
        4. Und wie kommen die Daten in die Tabelle?
      9. Massenkopieren
      10. Datenbanken sichern und wiederherstellen
        1. Microsoft SQL Server Management Studio
        2. T-SQL
        3. Backup mit den SMO
        4. Restore mit den SMO
    2. Fehlerbehandlung
      1. Das Fehlermodell
      2. Verwenden von @@ERROR
      3. Verwenden von RAISEERROR
      4. Fehlerbehandlung mit TRY...CATCH
      5. Fehlerbehandlung mit ADO.NET
    3. Weitere Features des Datenzugriffs unter ADO.NET
      1. Alle verfügbaren SQL Server ermitteln
      2. Asynchrone Befehlsausführung
      3. Benachrichtigungen über Datenänderungen
      4. Multiple Active Resultsets (MARS)
    4. CLR-Integration im SQL Server
      1. Grundsätzlicher Ablauf
      2. CLR-Unterstützung aktivieren
      3. Assembly erstellen
        1. Ein erstes Beispiel
      4. Benutzerdefinierte Funktionen (UDF)
      5. Stored Procedures
        1. Parameter/Rückgabewerte
        2. Die aktuelle Verbindung für den Datenzugriff nutzen
        3. Eigenes Resultset erzeugen
      6. Aggregat-Funktionen
      7. Trigger in C# realisieren
      8. Mehr Sicherheit
      9. Fazit
    5. XML-Unterstützung
      1. Der XML-Datentyp
      2. XML-Daten mit SELECT erzeugen
        1. ROOT erzeugen
        2. PATH
        3. ELEMENTS
        4. Hierarchische Daten abfragen
        5. Schema erzeugen
      3. XML-Abfragen
        1. Query
        2. Exist
        3. Value
      4. Der Clientzugriff auf die XML-Daten
    6. How-to-Beispiele
      1. 14.1 ... Aktualisierungs- und Löschweitergaben realisieren?
      2. 14.2 ... Änderungen in Tabellen protokollieren?
      3. 14.3 ... SQL-Anweisungen debuggen?
        1. Debugging im Visual Studio 2010
        2. SQL Server Profiler
      4. 14.4 ... ein SqlConnection-Objekt konfigurieren?
        1. Oberfläche
        2. Variante 1: Connectionstring hart kodieren
        3. Variante 2: Connectionstring in Anwendungskonfigurationsdatei hinterlegen
        4. Variante 3: Eine Datenbankdatei (.mdf) verwenden
        5. Verbindung zum SQL Server herstellen
        6. Test
        7. Bemerkungen
      5. 14.5 ... eine gespeicherte Prozedur aufrufen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      6. 14.6 ... mit Table Value-Parametern arbeiten?
        1. Vorarbeiten auf dem SQL Server
        2. Oberfläche (Client)
        3. Quellcode
        4. Test
      7. 14.7 ... mit Stapel-Abfragen arbeiten?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkung
      8. 14.8 ... Query Notifications einrichten und auswerten?
        1. Prinzip
        2. Oberfläche
        3. Quellcode
        4. Test
        5. Ärger mit dem SQL Server Service Broker
        6. Hilfsclient zum Datenbank-Update
      9. 14.9 ... die MARS-Technologie kennen lernen?
        1. Oberfläche
        2. Quellcode (ohne MARS)
        3. Quellcode (mit MARS)
        4. Quellcode (für Kontrollanzeige)
        5. Test
        6. Bemerkungen
      10. 14.10 ... Row-Constructors verwenden?
  18. 15. SQL Server Compact
    1. Einsatzszenarien
      1. Einschränkungen
      2. Fähigkeiten/Vorteile
    2. Installation
    3. Datenbanken erstellen, verwalten und einbinden
      1. Visual Studio
      2. SQL Server Management Studio
      3. Codebasiert mit C#
        1. Zusätzliche Parameter im Connectionstring
      4. Tabellen und Referenzen erstellen
    4. Zusammenarbeit mit dem DataSet
    5. Datenzugriff mit SqlCeResultSet
      1. Datenbindung
      2. Das ResultSet konfigurieren
      3. Datensätze löschen
      4. Datensätze einfügen
      5. Datensätze bearbeiten
      6. Navigation zwischen den Datensätzen
    6. Zugriff mit LINQ to SQL
      1. Anbinden einer vorhandenen Datenbank
      2. Erstellen einer neue Datenbank
      3. Ergänzungen
    7. Zugriff per Entity Data Model
      1. Model First-Entwurf
      2. Database First-Entwurf
    8. Der Einsatz als Local Database Cache
      1. Beispiel Einweg-Synchronisation
        1. Starten des Synchronisierungsprozesses in einer Anwendung
      2. Bidirektionale Synchronisation
        1. Anzeige von Statusänderungen
    9. Tipps & Tricks
      1. Datenbank auf Remotelaufwerk nutzen
      2. Performance verbessern
      3. Datenbank von schreibgeschütztem Medium starten
      4. Datenbankinformationen abrufen
      5. Datenbank reparieren
      6. Datenbank komprimieren
        1. Compact
        2. Shrink/Autoshrink
      7. Datenbank nachträglich verschlüsseln
      8. Ein Datenbank-Backup realisieren
      9. Fehler in der Visual Studio-IDE vermeiden
      10. Daten vom SQL Server zum SQL Server Compact zu kopieren
      11. Distribution
        1. 1. Assembly-Referenz hinzufügen und konfigurieren
        2. 2. Hinzufügen der Assemblies
      12. Weitere Hilfe
  19. 16. SQLite – Ein Mini ganz groß
    1. Was ist eigentlich SQLite?
      1. Vorteile
      2. Nachteile
    2. Vorbereitungen
      1. Download/Installation
      2. Integration in Ihr Projekt
    3. Praktische Aufgabenstellungen
      1. Erzeugen neuer Datenbanken mit Visual Studio
      2. Alternative Möglichkeit zum Administrieren der Datenbank
      3. Datenbank/Datenbankobjekte per Code erstellen
      4. Mögliche Connectionstring-Parameter
      5. Datenbankzugriff per DataSet realisieren
      6. Besonderheit: InMemory-Datenbank
      7. Datenzugriff mit dem Entity Framework
      8. SOUNDEX verwenden
      9. Volltextabfragen realisieren
      10. Eigene skalare Funktionen in C# realisieren
      11. Eigene Aggregat-Funktionen in C# realisieren
    4. Tipps & Tricks
      1. Für Liebhaber der Kommandozeile – Sqlite3.exe
      2. Eine Beispieldatenbank herunterladen
      3. Eine Datenbank ver- und entschlüsseln
      4. Eine verschlüsselte Datenbank öffnen
      5. Testen, ob Tabelle vorhanden ist
      6. Die Datenbank defragmentieren
      7. Mehrere Datenbanken verknüpfen
  20. 17. LINQ to SQL
    1. Übersicht
      1. Das LINQ to SQL-Datenmodell
      2. Der DataContext
      3. Die Entitäts-Klassen
      4. Umstiegsbeispiel für den »ehemaligen« SQL-Programmierer
      5. Datenbank-Entwurfskonzepte
    2. Der schnelle Weg zu den SQL Server-Daten
      1. Der LINQ to SQL-Designer
      2. Die .DBML-Datei
      3. Die Designer.CS-Datei
      4. Ein erster Test und ein Blick unter die Motorhaube
      5. SQL-Debugging leicht gemacht
        1. Query Visualizer
        2. CommandText abrufen
    3. Der steinige Weg zur Persistenz
      1. Das Datenmodell entwickeln
      2. Erzeugen der Datenbank und Herstellen der Verbindung
      3. Ein paar Gedanken zum Erstellen neuer Datenbanken
    4. Datenauswahl/Datentypen
      1. Einfache Datentypen
      2. IQueryable<T>
      3. Datenauswahl basierend auf Detaildaten
      4. Bereichsauswahl (Paging)
      5. Probleme mit First()
    5. Datenbindung
      1. Datenquelle hinzufügen
      2. Anzeige von Detaildaten
      3. Listendarstellung mit anonymen Typen optimieren
      4. Lazy Loading/Prefetch/Delay Loaded
        1. DataLoadOptions
        2. Delay Loaded
      5. ObjectTracking ausschalten
    6. Bearbeiten und Aktualisieren
      1. Editieren
      2. Fehler beim Aktualisieren
      3. Konflikte beim Aktualisieren von Datensätzen
        1. KeepChanges
        2. KeepCurrentValues
        3. OverwriteCurrentValues
        4. MemberConflicts
        5. UpdateCheck
        6. Transaktionen
      4. Lokale Datenaktualisierung per DataContext
      5. Neue Datensätze erzeugen
        1. Einfaches Einfügen
        2. Abrufen eines Identity-Wertes nach dem Einfügen
        3. Neuer Datensatz in Master-Detail-Beziehung
      6. Löschen
        1. Einfache Datensätze
        2. Master-Detail-Datensätzen
    7. Eingabevalidierung
      1. Prüfung auf Feldebene (Eigenschaft)
      2. Prüfung auf Datensatzebene (Objekt)
      3. Überprüfung vor Update, Insert oder Delete
    8. Stored Procedures
      1. Allgemeine Verwendung
      2. Skalare Rückgabewerte
      3. Typisierte Rückgabewerte
      4. Insert/Update/Delete per Stored Procedure
    9. Weitere LINQ to SQL-Features
      1. Direkte SQL-Programmierung
      2. Verwendung der partiellen Klassen
    10. Schlussbemerkung
  21. 18. Arbeiten mit dem Entity Framework
    1. Das Grundkonzept
      1. Konzeptionelle Schicht
      2. Logische Schicht
      3. Zuordnungsschicht
      4. Wie erstelle ich die Schema-Dateien?
      5. Das Gesamtmodell im Überblick
      6. Wie kann mit dem EDM gearbeitet werden?
        1. EntityClient
        2. Objektdienste
      7. Entwurfsmöglichkeiten
        1. Database-First-Entwurf
        2. Model-First-Entwurf
        3. Code-Erzeugung
    2. Unsere Beispieldatenbank
      1. Das Datendiagramm
      2. Weitere Tabellen
        1. Tabelle TestTabelle
        2. Tabelle Fahrzeuge
    3. Der EDM-Entwurf
      1. Der EDM-Assistent
      2. Der EDM-Designer
        1. Zuordnungsdetails
        2. Eigenschaftenfenster
        3. Zuordnen von Stored Procedures
      3. Weitere Fenster des EDM-Designers
        1. Klassenansicht
        2. Modellbrowser
        3. Eigenschaften des späteren ObjectContext festlegen
      4. Stored Procedures importieren
      5. Komplexe Typen
      6. Die erzeugten Klassen/partielle Klassen
      7. Der Model-First-Entwurf
    4. Einsatz des EntityClient für die Datenabfrage
      1. Ein Überblick
      2. Einsatzbeispiel
      3. Connection aufbauen
      4. Parameterabfragen realisieren
      5. Wann sollten Sie diese Variante nutzen?
    5. Verwenden der Objektdienste
      1. Eine Übersicht
      2. Verwendung von eSQL
      3. Verwendung von LINQ to Entities
    6. Kurzeinführung in Entity SQL (eSQL)
      1. Für den Umsteiger: Unterschiede zu T-SQL
      2. Für den Einsteiger
        1. Kommentare
        2. Zeichenketten
        3. Datum-/Zeitangaben
        4. Zahlen
        5. Parameter
        6. Projektion
        7. Sortieren
        8. Gruppieren
        9. Filtern
        10. Beschränken
        11. Paging
        12. UNION
        13. Verwendung von Aggregat-Funktionen
        14. Zugriff auf Detaildaten
    7. Praktisches Arbeiten mit dem EDM
      1. Skalare Werte abfragen
      2. Abfragen mit Projektion
      3. Detaildaten/Verwendung der Navigationseigenschaften
      4. Lazy Loading
      5. Wie funktioniert das explizite Laden?
      6. Was passiert beim vorzeitigen Laden (Eager-Load)?
      7. Delay Loaded
      8. Zugriff mit Paging
      9. Abrufen einzelner Entitäten
        1. Single/First
        2. SingleOrDefault/FirstOrDefault
        3. GetObjectByKey
      10. Lokale Datenaktualisierung per ObjectContext
      11. Einfaches Einfügen von Datensätzen
      12. Abrufen eines Identity-Wertes nach dem Einfügen
      13. Einfügen von Datensätzen in 1:n/m:n-Beziehungen
      14. Bearbeiten von Entitäten
      15. Übernahme der Daten mit SaveChanges
      16. Löschen von Entitäten
      17. Verwendung von Stored Procedures
        1. Komplexe Typen
        2. Skalare Rückgabewerte
      18. Funktionsimporte
      19. Die Eigenschaft EntityState
      20. Verwendung des ObjectStateManagers
      21. Anhängen von Objekten
      22. Arbeiten mit Vererbung
        1. Arbeit mit dem Designer
        2. Verwendung der Vererbung
      23. POCO-Unterstützung
      24. Validierung
        1. Änderung der Eigenschaften überwachen
        2. ObjectStateManagerChanged-Ereignis
        3. SavingChanges-Ereignis
      25. Verwenden der partiellen Klassen
        1. OnContextCreated-Methode
        2. Entitäts-Konstruktoren überladen
        3. Die statischen Create-Methoden der Entität überladen
        4. Eigene Eigenschaften und Methoden realisieren
      26. Abschließender Hinweis
    8. How-to-Beispiele
      1. 18.1 ... den ConnectionString anpassen?
      2. 18.2 ... ChangeTracking deaktivieren?
      3. 18.3 ... LINQPad verwenden?
        1. Download/Installation
        2. Anbinden Ihres Objektmodells
        3. Beispiel eSQL
      4. 18.4 ... SQL-Anweisungen analysieren?
      5. 18.5 ... direkte SQL-Statements an den Server senden?
      6. 18.6 ... weitere Beispiele finden?
  22. 19. WCF – eine Einführung
    1. Die Programmierung verteilter Systeme
      1. Intranet oder Internet?
      2. Die Vorgänger
        1. DCOM
        2. MTS, COM+ und Enterprise Services
        3. MSMQ
        4. .NET-Remoting
        5. XML-Webdienste
      3. WCF – die neue Technologie
        1. Interoperabilität und Integration
        2. Weitere WCF-Features
        3. Fazit
    2. Allgemeiner Aufbau eines WCF-Systems
      1. WCF-Assemblies – die verfügbaren Bausteine
      2. Service, Host und Client
        1. WCF-Service
        2. WCF-Host
        3. WCF-Client
      3. Nachrichtenaustausch
    3. Das ABC der WCF-Endpunkte
      1. Verträge
      2. Bindungen
        1. HTTP-Bindings
        2. TCP-Bindings
        3. MSMQ-Bindings
      3. Adressen
    4. Programmierung eines WCF-Dienstes
      1. Quellcode als Klassenbibliothek
        1. Vorbereitungen
        2. Vertragsdefinition
        3. Vertragsimplementierung
      2. Das [ServiceContract]-Attribut
      3. Das [OperationContract]-Attribut
      4. Service Klassen ohne Vertrags-Interfaces
    5. Der WCF-Host
      1. Vorbereitungen
      2. Die App.config
      3. Die ServiceHost-Klasse
      4. Festlegen der Basisadressen
      5. Weitere Details der ServiceHost-Klasse
      6. Das <system.serviceModel>-Element
      7. Austausch der Metadaten (MEX)
        1. MEX
        2. Die fertige App.config
    6. Der WCF-Client
      1. Vorbereitungen
      2. Verwenden von SvcUtil.exe
        1. Quellcode Form1
        2. Test
        3. Ergänzungen
      3. Einsatz des Proxy-Generators von Visual Studio 2010
    7. Verbesserungen unter WCF 4.0
      1. Standard-Endpunkte
      2. Multiple Bindungen
      3. Standardmäßige MEX-Konfiguration
      4. Projektvorlage WCF-Dienstbibliothek
        1. Vorbereitungen
        2. Vertrag definieren
        3. Vertrag implementieren
        4. App.config
      5. Einsatz von WcfTestClient.exe
      6. App.config mit SvcConfigEditor bearbeiten
    8. How-to-Beispiele
      1. 19.1 ... einen WCF-Webdienst mit Datenzugriffsschicht entwickeln?
        1. Vorbereitungen
        2. Entwurf von Dienstvertrag und Datenvertrag
        3. Vertragsimplementierung
        4. Web.config
        5. Projektmappen-Explorer
        6. Bemerkungen
      2. 19.2 ... einen Client für einen WCF-Webdienst entwickeln?
        1. Oberfläche
        2. Quellcode
        3. Konfigurationsdatei
        4. Test
      3. 19.3 ... was tun, wenn der IIS nicht funktioniert?
        1. Fehlende IIS-Installation
  23. 20. Einführung WCF Data Services
    1. Einführung
      1. Warum WCF Data Services?
      2. Vor- und Nachteile
      3. Und was ist OData?
      4. Was ist neu in .NET 4.0?
      5. Übersicht der OData-Abfrageoptionen
    2. Praktisches Arbeiten mit den Data Services
      1. Ein erster Data Consumer
      2. Verwendung von CreateQuery<T>
      3. Verwendung von Execute<T>
      4. Asynchrone Verarbeitung
      5. Anzahl der Entitäten bestimmen
      6. Verwendung der DataServiceCollection
      7. Eigene Methoden über den Data Service bereitstellen
        1. Definieren der Methoden
        2. Freigabe der Methoden
        3. Einbinden und Aufruf der Methoden
        4. Voraussetzungen für Service Operations
      8. Freigabe der Schnittstelle regeln
      9. Verwendung von Fiddler
    3. How-to-Beispiele
      1. 20.1 ... einen einfachen WCF Data Service erstellen?
      2. 20.2 ... einen Silverlight-Client mit WCF Data Services anbinden?
        1. Einfügen der SQL Server-Datenbank
        2. Erstellen des Entity Data Models
        3. Erstellen des WCF Data Service
        4. Einbinden des WCF Data Service in das Silverlight-Projekt
        5. Konfigurieren der Silverlight-Oberfläche
        6. Abrufen der Daten
        7. Bearbeiten der Daten
        8. Arbeiten mit LINQ und Erweiterungsmethoden
  24. 21. Komplexbeispiel Webshop
    1. Grundkonzept
      1. Aufgabenstellung
      2. Unterschiedliche Frontends für Kunden und Verkäufer
    2. Die Datenbankstruktur
      1. Datenbankdiagramm
      2. Tabellen
        1. Tabelle Artikel
        2. Tabelle Nutzer
        3. Tabelle Artikelgruppen
        4. Tabelle Bestellungen und BestellungsDetails
        5. Steuersaetze
      3. Stored Procedures
        1. UserNeu
        2. CurrentUser
        3. BestellungNeu
        4. BestellungDetailsNeu
        5. Bestellliste
        6. BruttoPreisArtikel
      4. Ansichten/Views
        1. BruttoPreisArtikelgruppe
      5. Bemerkungen
    3. Entwurf Webshop-Projekt/Datenbank
    4. Stammdatenverwaltung mit Webdienst
      1. Das Interface
      2. Entwurf Webdienst
      3. Die Methoden im Einzelnen
        1. Methode Get_Stammdaten
        2. Methode Set_Stammdaten
        3. Methoden Get_Kunden/Set_Kunden
        4. Methode Get_Bestellungen
        5. Methode Get_BestellDetails
        6. Methode AdminCheck
    5. Windows-Verwaltungsfrontend
      1. Entwurf
      2. Verbindung zum Webdienst herstellen
      3. Oberflächengestaltung
        1. Tabseite 1
        2. Tabseite 2
        3. Tabseite 3
      4. Implementierung Stammdatenverwaltung
      5. Test Stammdatenverwaltung
      6. Typisiertes DataSet für den Report
      7. Reportentwurf
      8. Reporteinbindung
      9. Filtern der Artikelgruppen
      10. Kunden-Tabelle
    6. ASP.NET-Kundeninterface
      1. Übersicht
      2. Entwurf Default.aspx
        1. Oberfläche allgemein
        2. Kopf- und Navigationsbereich
        3. Detailbereich
        4. Quellcode
      3. Vorbereitung Benutzersteuerelemente
      4. Welcome.ascx
        1. Oberfläche
        2. Quellcode
      5. Shop.ascx
        1. Oberfläche
        2. Quellcode
      6. Warenkorb.ascx
        1. Oberfläche
        2. Quellcode
      7. Anmeldung.ascx
        1. Oberfläche
        2. Quellcode
      8. Bestellung.ascx
        1. Oberfläche
        2. Quellcode
      9. Danke.ascx
      10. Kundenkonto.ascx
        1. Oberfläche
      11. NeuerKunde.ascx
        1. Oberfläche
        2. Quellcode
    7. Abschlusstest und Bemerkungen
      1. Test
      2. Abschlussbemerkungen
  25. A. Glossar
  26. B. Wichtige Datei-Extensions
  27. C. Northwind versus Nordwind
  28. Stichwortverzeichnis
  29. Impressum