Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 6. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Das Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Strukturen und Enumerationen
7 Fehlerbehandlung und Debugging
8 Auflistungsklassen (Collections)
9 Generics – Generische Datentypen
10 Weitere C#-Sprachfeatures
11 LINQ
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 XML
15 Multithreading und die Task Parallel Library (TPL)
16 Einige wichtige .NET-Klassen
17 Projektmanagement und Visual Studio 2012
18 Einführung in die WPF und XAML
19 WPF-Layout-Container
20 Fenster in der WPF
21 WPF-Steuerelemente
22 Elementbindungen
23 Konzepte von WPF
24 Datenbindung
25 Weitere Möglichkeiten der Datenbindung
26 Dependency Properties
27 Ereignisse in der WPF
28 WPF-Commands
29 Benutzerdefinierte Controls
30 2D-Grafik
31 ADO.NET – Verbindungsorientierte Objekte
32 ADO.NET – Das Command-Objekt
33 ADO.NET – Der SqlDataAdapter
34 ADO.NET – Daten im lokalen Speicher
35 ADO.NET – Aktualisieren der Datenbank
36 Stark typisierte DataSets
37 Einführung in das ADO.NET Entity Framework
38 Datenabfragen des Entity Data Models (EDM)
39 Entitätsaktualisierung und Zustandsverwaltung
40 Konflikte behandeln
41 Plain Old CLR Objects (POCOs)
Stichwort

Download:
- Beispiele, ca. 62,4 MB

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Visual C# 2012 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2012

Visual C# 2012
Rheinwerk Computing
1402 S., 6., aktualisierte und erweiterte Auflage 2013, geb., mit DVD
49,90 Euro, ISBN 978-3-8362-1997-6
Wenn Sie ein Buch suchen, dass Ihnen bei allen Fragen der C#-Entwicklung zuverlässig mit Rat und Tat zur Seite steht, dann ist unser bewährtes Kompendium genau das Richtige für Sie. Mittlerweile in der 6. Auflage dient es ambitionierten Ein- und Umsteigern durch seine strukturierte Vorgehensweise und die zahlreichen Anwendungsbeispiele als praxisorientierte Einführung; Fortgeschrittene und Profis unterstützt es als Nachschlagewerk optimal bei ihrer täglichen Arbeit.

In den ersten Kapiteln werden zunächst die Grundlagen von C#, .NET und der objektorientierten Programmierung vermittelt. Es folgen Kapitel zur effizienten Entwicklung mit Visual Studio 2012, zur Fehlerbehandlung sowie zu fortgeschrittenen C#-Themen wie LINQ, Multithreading, Serialisierung u. v. m. Den größten Themenblock bildet die Entwicklung von grafischen Benutzeroberflächen. Neben einer fundierten Einführung in die WPF und XAML erfahren Sie hier alles Notwendige, um auch komplexe Anwendungen zu gestalten. Anschließend wird die Datenbankprogrammierung mit ADO.NET ausführlich behandelt und zu guter Letzt die Weitergabe von .NET-Anwendungen thematisiert. So sind Sie für Ihren Arbeitsalltag bestens gerüstet!

Nutzen Sie die HTML-Version zum Reinschnuppern oder als immer verfügbare Ergänzung zu Ihrem Buch.

Die gedruckte Version des Buches erhalten Sie in unserem Online-Shop - versandkostenfrei innerhalb Deutschlands und Österreichs.
Zum Online-Shop

Inhaltsverzeichnis

Vorwort zur 6. Auflage


Rheinwerk Computing - Zum Seitenanfang

1 Allgemeine Einführung in .NET

1.1 Warum .NET?

1.1.1 Ein paar Worte zu diesem Buch

1.1.2 Die Beispielprogramme

1.2 .NET unter die Lupe genommen

1.2.1 Das Entwicklerdilemma

1.2.2 .NET – Ein paar allgemeine Eigenschaften

1.2.3 Das Sprachenkonzept

1.2.4 Die »Common Language Specification« (CLS)

1.2.5 Das »Common Type System« (CTS)

1.2.6 Das .NET Framework

1.2.7 Die »Common Language Runtime« (CLR)

1.2.8 Die .NET-Klassenbibliothek

1.2.9 Das Konzept der Namespaces

1.3 Assemblys

1.3.1 Die Metadaten

1.3.2 Das Manifest

1.4 Die Entwicklungsumgebung

1.4.1 Editionen von Visual Studio 2012

1.4.2 Hard- und Softwareanforderungen

1.4.3 Die Installation

1.4.4 Die Entwicklungsumgebung von Visual Studio 2012


Rheinwerk Computing - Zum Seitenanfang

2 Grundlagen der Sprache C#

2.1 Konsolenanwendungen

2.1.1 Allgemeine Anmerkungen

2.1.2 Ein erstes Konsolenprogramm

2.2 Grundlagen der C#-Syntax

2.2.1 Kennzeichnen, dass eine Anweisung abgeschlossen ist

2.2.2 Anweisungs- und Gliederungsblöcke

2.2.3 Kommentare

2.2.4 Die Groß- und Kleinschreibung

2.2.5 Die Struktur einer Konsolenanwendung

2.3 Variablen und Datentypen

2.3.1 Variablendeklaration

2.3.2 Der Variablenbezeichner

2.3.3 Der Zugriff auf eine Variable

2.3.4 Ein- und Ausgabemethoden der Klasse »Console«

2.3.5 Die einfachen Datentypen

2.3.6 Typkonvertierung

2.4 Operatoren

2.4.1 Arithmetische Operatoren

2.4.2 Vergleichsoperatoren

2.4.3 Logische Operatoren

2.4.4 Bitweise Operatoren

2.4.5 Zuweisungsoperatoren

2.4.6 Stringverkettung

2.4.7 Sonstige Operatoren

2.4.8 Operator-Vorrangregeln

2.5 Datenfelder (Arrays)

2.5.1 Die Deklaration und Initialisierung eines Arrays

2.5.2 Der Zugriff auf die Array-Elemente

2.5.3 Mehrdimensionale Arrays

2.5.4 Festlegen der Array-Größe zur Laufzeit

2.5.5 Bestimmung der Array-Obergrenze

2.5.6 Die Gesamtanzahl der Array-Elemente

2.5.7 Verzweigte Arrays

2.6 Kontrollstrukturen

2.6.1 Die »if«-Anweisung

2.6.2 Das »switch«-Statement

2.7 Programmschleifen

2.7.1 Die »for«-Schleife

2.7.2 Die »foreach«-Schleife

2.7.3 Die »do«- und die »while«-Schleife


Rheinwerk Computing - Zum Seitenanfang

3 Das Klassendesign

3.1 Einführung in die Objektorientierung

3.2 Die Klassendefinition

3.2.1 Klassen im Visual Studio anlegen

3.2.2 Das Projekt »GeometricObjectsSolution«

3.2.3 Die Deklaration von Objektvariablen

3.2.4 Zugriffsmodifizierer einer Klasse

3.2.5 Splitten einer Klassendefinition mit »partial«

3.2.6 Arbeiten mit Objektreferenzen

3.3 Referenz- und Wertetypen

3.3.1 Werte- und Referenztypen nutzen

3.4 Die Eigenschaften eines Objekts

3.4.1 Öffentliche Felder

3.4.2 Datenkapselung mit Eigenschaftsmethoden sicherstellen

3.4.3 Die Ergänzung der Klasse »Circle«

3.4.4 Lese- und schreibgeschützte Eigenschaften

3.4.5 Sichtbarkeit der Accessoren »get« und »set«

3.4.6 Unterstützung von Visual Studio 2012

3.4.7 Automatisch implementierte Eigenschaften

3.5 Methoden eines Objekts

3.5.1 Methoden mit Rückgabewert

3.5.2 Methoden ohne Rückgabewert

3.5.3 Methoden mit Parameterliste

3.5.4 Methodenüberladung

3.5.5 Variablen innerhalb einer Methode (lokale Variablen)

3.5.6 Referenz- und Wertparameter

3.5.7 Besondere Aspekte einer Parameterliste

3.5.8 Zugriff auf private Daten

3.5.9 Die Trennung von Daten und Code

3.5.10 Namenskonflikte mit »this« lösen

3.5.11 Methode oder Eigenschaft?

3.5.12 Umbenennen von Methoden und Eigenschaften

3.6 Konstruktoren

3.6.1 Konstruktoren bereitstellen

3.6.2 Die Konstruktoraufrufe

3.6.3 Definition von Konstruktoren

3.6.4 »public«- und »internal«-Konstruktoren

3.6.5 »private«-Konstruktoren

3.6.6 Konstruktorenaufrufe umleiten

3.6.7 Vereinfachte Objektinitialisierung

3.7 Der Destruktor

3.8 Konstanten in einer Klasse

3.8.1 Konstanten mit dem Schlüsselwort »const«

3.8.2 Schreibgeschützte Felder mit »readonly«

3.9 Statische Klassenkomponenten

3.9.1 Statische Eigenschaften

3.9.2 Statische Methoden

3.9.3 Statische Klasseninitialisierer

3.9.4 Statische Klassen

3.9.5 Statische Klasse oder Singleton-Pattern?

3.10 Namensräume (Namespaces)

3.10.1 Zugriff auf Namespaces

3.10.2 Die »using«-Direktive

3.10.3 Globaler Namespace

3.10.4 Vermeiden von Mehrdeutigkeiten

3.10.5 Namespaces festlegen

3.10.6 Der »::«-Operator

3.10.7 Unterstützung von Visual Studio 2012 bei den Namespaces

3.11 Stand der Klasse »Circle«


Rheinwerk Computing - Zum Seitenanfang

4 Vererbung, Polymorphie und Interfaces

4.1 Die Vererbung

4.1.1 Basisklassen und abgeleitete Klassen

4.1.2 Die Ableitung einer Klasse

4.1.3 Klassen, die nicht abgeleitet werden können

4.1.4 Konstruktoren in abgeleiteten Klassen

4.1.5 Der Zugriffsmodifizierer »protected«

4.1.6 Die Konstruktorverkettung in der Vererbung

4.2 Der Problemfall geerbter Methoden

4.2.1 Geerbte Methoden mit »new« verdecken

4.2.2 Abstrakte Methoden

4.2.3 Virtuelle Methoden

4.3 Typumwandlung und Typuntersuchung von Objektvariablen

4.3.1 Die implizite Typumwandlung von Objektreferenzen

4.3.2 Die explizite Typumwandlung von Objektreferenzen

4.3.3 Typuntersuchung mit dem »is«-Operator

4.3.4 Typumwandlung mit dem »as«-Operator

4.4 Polymorphie

4.4.1 Die »klassische« Methodenimplementierung

4.4.2 Abstrakte Methoden

4.4.3 Virtuelle Methoden

4.5 Weitere Gesichtspunkte der Vererbung

4.5.1 Versiegelte Methoden

4.5.2 Überladen einer Basisklassenmethode

4.5.3 Statische Member und Vererbung

4.5.4 Geerbte Methoden ausblenden?

4.6 Das Projekt »GeometricObjectsSolution« ergänzen

4.6.1 Die Klasse »GeometricObject«

4.7 Eingebettete Klassen (Nested Classes)

4.8 Interfaces (Schnittstellen)

4.8.1 Einführung in die Schnittstellen

4.8.2 Die Schnittstellendefinition

4.8.3 Die Schnittstellenimplementierung

4.8.4 Die Interpretation der Schnittstellen

4.8.5 Änderungen am Projekt »GeometricObjects«

4.9 Das Zerstören von Objekten – der »Garbage Collector«

4.9.1 Die Arbeitsweise des Garbage Collectors

4.9.2 Expliziter Aufruf des Garbage Collectors

4.9.3 Der Destruktor

4.9.4 Die »IDisposable«-Schnittstelle

4.9.5 Die Ergänzungen in den Klassen »Circle« und »Rectangle«


Rheinwerk Computing - Zum Seitenanfang

5 Delegates und Ereignisse

5.1 Delegates

5.1.1 Einführung in das Prinzip der Delegates

5.1.2 Verwendung von Delegates

5.1.3 Vereinfachter Delegatenaufruf

5.1.4 Multicast-Delegates

5.1.5 Anonyme Methoden

5.1.6 Kovarianz und Kontravarianz mit Delegaten

5.2 Ereignisse eines Objekts

5.2.1 Ereignisse bereitstellen

5.2.2 Die Reaktion auf ein ausgelöstes Ereignis

5.2.3 Allgemeine Betrachtungen der Ereignishandler-Registrierung

5.2.4 Wenn der Ereignisempfänger ein Ereignis nicht behandelt

5.2.5 Ereignisse mit Übergabeparameter

5.2.6 Ereignisse in der Vererbung

5.2.7 Hinter die Kulissen des Schlüsselworts »event« geblickt

5.2.8 Die Schnittstelle »INotifyPropertyChanged«

5.3 Änderungen im Projekt »GeometricObjects«

5.3.1 Überarbeitung des Events »InvalidMeasure«

5.3.2 Weitere Ereignisse


Rheinwerk Computing - Zum Seitenanfang

6 Strukturen und Enumerationen

6.1 Strukturen – eine Sonderform der Klassen

6.1.1 Die Definition einer Struktur

6.1.2 Initialisieren einer Strukturvariablen

6.1.3 Konstruktoren in Strukturen

6.1.4 Änderung im Projekt »GeometricObjects«

6.2 Enumerationen (Aufzählungen)

6.2.1 Wertzuweisung an enum-Mitglieder

6.2.2 Alle Mitglieder einer Aufzählung durchlaufen

6.3 Boxing und Unboxing


Rheinwerk Computing - Zum Seitenanfang

7 Fehlerbehandlung und Debugging

7.1 Laufzeitfehler behandeln

7.1.1 Laufzeitfehler erkennen

7.1.2 Die »try...catch«-Anweisung

7.1.3 Behandlung mehrerer Exceptions

7.1.4 Die Reihenfolge der »catch«-Zweige

7.1.5 Ausnahmen in einer Methodenaufrufkette

7.1.6 Ausnahmen werfen oder weiterleiten

7.1.7 Die »finally«-Anweisung

7.1.8 Die Klasse »Exception«

7.1.9 Benutzerdefinierte Ausnahmen

7.2 Debuggen mit Programmcode

7.2.1 Einführung

7.2.2 Die Klasse »Debug«

7.2.3 Die Klasse »Trace«

7.2.4 Bedingte Kompilierung

7.3 Fehlersuche mit Visual Studio 2012

7.3.1 Debuggen im Haltemodus

7.3.2 Das »Direktfenster«

7.3.3 Weitere Alternativen, um Variableninhalte zu prüfen


Rheinwerk Computing - Zum Seitenanfang

8 Auflistungsklassen (Collections)

8.1 Grundlagen

8.2 Collections im Namespace »System.Collections«

8.2.1 Die elementaren Schnittstellen der Auflistungsklassen

8.3 Die Klasse »ArrayList«

8.3.1 Einträge hinzufügen

8.3.2 Datenaustausch zwischen einem Array und einer »ArrayList«

8.3.3 Die Elemente einer »ArrayList« sortieren

8.3.4 Sortieren von Arrays mit »ArrayList.Adapter«

8.4 Die Klasse »Hashtable«

8.4.1 Methoden und Eigenschaften der Schnittstelle »IDictionary«

8.4.2 Beispielprogramm zur Klasse »Hashtable«

8.5 Die Klassen »Queue« und »Stack«

8.5.1 Die Klasse »Stack«

8.5.2 Die Klasse »Queue«

8.6 Eigene Auflistungen mit »yield« durchlaufen


Rheinwerk Computing - Zum Seitenanfang

9 Generics – Generische Datentypen

9.1 Problembeschreibung

9.2 Bereitstellen einer generischen Klasse

9.2.1 Mehrere generische Typparameter

9.2.2 Vorteile der Generics

9.3 Bedingungen (Constraints) festlegen

9.3.1 Constraints mit der »where«-Klausel

9.3.2 Typparameter auf Klassen oder Strukturen beschränken

9.3.3 Mehrere Constraints definieren

9.3.4 Der Konstruktor-Constraint »new()«

9.3.5 Das Schlüsselwort »default«

9.4 Generische Methoden

9.4.1 Methoden und Constraints

9.5 Generics und Vererbung

9.5.1 Virtuelle generische Methoden

9.6 Konvertierung von Generics

9.7 Generische Delegates

9.7.1 Generische Delegates und Constraints

9.7.2 Anpassung des Beispiels »GeometricObjects«

9.8 Nullable-Typen

9.8.1 Konvertierungen mit Nullable-Typen

9.9 Generische Collections

9.9.1 Die Interfaces der generischen Auflistungsklassen

9.9.2 Die generische Auflistungsklasse »List<T>«

9.9.3 Vergleiche mit Hilfe des Delegaten »Comparison<T>«

9.10 Kovarianz und Kontravarianz generischer Typen

9.10.1 Kovarianz mit Interfaces

9.10.2 Kontravarianz mit Interfaces

9.10.3 Zusammenfassung

9.10.4 Generische Delegaten mit varianten Typparametern


Rheinwerk Computing - Zum Seitenanfang

10 Weitere C#-Sprachfeatures

10.1 Implizit typisierte Variablen

10.2 Anonyme Typen

10.3 Lambda-Ausdrücke

10.3.1 Projektion und Prädikat

10.4 Erweiterungsmethoden

10.5 Partielle Methoden

10.5.1 Wo partielle Methoden eingesetzt werden

10.6 Operatorüberladung

10.6.1 Einführung

10.6.2 Die Syntax der Operatorüberladung

10.6.3 Die Operatorüberladungen im Projekt »GeometricObjectsSolution«

10.6.4 Die Operatoren »true« und »false« überladen

10.6.5 Benutzerdefinierte Konvertierungen

10.7 Indexer

10.7.1 Überladen von Indexern

10.7.2 Parameterbehaftete Eigenschaften

10.8 Attribute

10.8.1 Das »Flags«-Attribut

10.8.2 Benutzerdefinierte Attribute

10.8.3 Attribute auswerten

10.8.4 Festlegen der Assembly-Eigenschaften in »Assembly-Info.cs«

10.9 Dynamisches Binden

10.9.1 Eine kurze Analyse

10.9.2 Dynamische Objekte

10.10 Unsicherer (unsafe) Programmcode – Zeigertechnik in C#

10.10.1 Einführung

10.10.2 Das Schlüsselwort »unsafe«

10.10.3 Die Deklaration von Zeigern

10.10.4 Die »fixed«-Anweisung

10.10.5 Zeigerarithmetik

10.10.6 Der Operator »->«


Rheinwerk Computing - Zum Seitenanfang

11 LINQ

11.1 Was ist LINQ?

11.1.1 Verzögerte Ausführung

11.1.2 LINQ-Erweiterungsmethoden an einem Beispiel

11.2 LINQ to Objects

11.2.1 Musterdaten

11.2.2 Die allgemeine LINQ-Syntax

11.3 Die Abfrageoperatoren

11.3.1 Übersicht der Abfrageoperatoren

11.3.2 Die »from«-Klausel

11.3.3 Mit »where« filtern

11.3.4 Die Projektionsoperatoren

11.3.5 Die Sortieroperatoren

11.3.6 Gruppieren mit »GroupBy«

11.3.7 Verknüpfungen mit »Join«

11.3.8 Die Set-Operatoren-Familie

11.3.9 Die Familie der Aggregatoperatoren

11.3.10 Quantifizierungsoperatoren

11.3.11 Aufteilungsoperatoren

11.3.12 Die Elementoperatoren

11.3.13 Die Konvertierungsoperatoren


Rheinwerk Computing - Zum Seitenanfang

12 Arbeiten mit Dateien und Streams

12.1 Einführung

12.2 Namespaces der Ein- bzw. Ausgabe

12.2.1 Das Behandeln von Ausnahmen bei E/A-Operationen

12.3 Laufwerke, Verzeichnisse und Dateien

12.3.1 Die Klasse »File«

12.3.2 Die Klasse »FileInfo«

12.3.3 Die Klassen »Directory« und »DirectoryInfo«

12.3.4 Die Klasse »Path«

12.3.5 Die Klasse »DriveInfo«

12.4 Die »Stream«-Klassen

12.4.1 Die abstrakte Klasse »Stream«

12.4.2 Die von »Stream« abgeleiteten Klassen im Überblick

12.4.3 Die Klasse »FileStream«

12.5 Die Klassen »TextReader« und »TextWriter«

12.5.1 Die Klasse »StreamWriter«

12.5.2 Die Klasse »StreamReader«

12.6 Die Klassen »BinaryReader« und »BinaryWriter«

12.6.1 Komplexe binäre Dateien


Rheinwerk Computing - Zum Seitenanfang

13 Binäre Serialisierung

13.1 Einführung in die Serialisierung

13.1.1 Serialisierungsverfahren

13.2 Serialisierung mit »BinaryFormatter«

13.2.1 Die Deserialisierung

13.2.2 Serialisierung mehrerer Objekte


Rheinwerk Computing - Zum Seitenanfang

14 XML

14.1 Grundlagen

14.2 XML-Dokumente

14.2.1 Wohlgeformte und gültige XML-Dokumente

14.2.2 Die Regeln eines wohlgeformten XML-Codes

14.2.3 Kommentare

14.2.4 Verarbeitungsanweisungen

14.2.5 Reservierte Zeichen in XML

14.2.6 CDATA-Abschnitte

14.2.7 Namensräume (Namespaces)

14.3 Die Gültigkeit eines XML-Dokuments

14.3.1 XML Schema Definition (XSD)

14.3.2 Ein XML-Dokument mit einem XML-Schema verknüpfen

14.3.3 Die Struktur eines XML-Schemas

14.4 Die Klasse »XmlReader«

14.4.1 XML-Dokumente mit einem »XmlReader«-Objekt lesen

14.4.2 Validieren eines XML-Dokuments

14.5 Eigenschaften und Methoden der Klasse »XmlReader«

14.6 Die Klasse »XmlWriter«

14.6.1 Die Methoden der Klasse »XmlWriter«

14.7 Navigation durch XML (XPath)

14.7.1 Die Klasse »XPathNavigator«

14.7.2 XPath-Ausdrücke

14.7.3 Der Kontextknoten

14.7.4 Beispiele mit XPath-Ausdrücken

14.7.5 Knotenmengen mit der »Select«-Methode

14.7.6 Auswerten von XPath-Ausdrücken

14.8 Das Document Object Model (DOM)

14.8.1 Allgemeines

14.8.2 Arbeiten mit »XmlDocument«

14.8.3 »XmlDocument« und »XPathNavigator«

14.8.4 Die Klasse »XmlNode« (Operationen mit Knoten)

14.8.5 Manipulieren einer XML-Struktur

14.8.6 Ändern eines Knotens

14.8.7 Löschen in einem XML-Dokument

14.9 Serialisierung mit »XmlSerializer«

14.9.1 XML-Serialisierung mit Attributen steuern

14.10 LINQ to XML

14.10.1 Allgemeines

14.10.2 Die Klassenhierarchie von LINQ to XML

14.10.3 Die Klasse »XElement«

14.10.4 Die Klasse »XDocument«

14.10.5 Navigation im XML-Dokument

14.10.6 Änderungen am XML-Dokument vornehmen


Rheinwerk Computing - Zum Seitenanfang

15 Multithreading und die Task Parallel Library (TPL)

15.1 Überblick

15.2 Multithreading mit der Klasse »Thread«

15.2.1 Einführung in das Multithreading

15.2.2 Threadzustände und Prioritäten

15.2.3 Zusammenspiel mehrerer Threads

15.2.4 Die Entwicklung einer einfachen Multithreading-Anwendung

15.2.5 Die Klasse »Thread«

15.2.6 Threadpools nutzen

15.2.7 Die Synchronisation von Threads

15.2.8 Der »Monitor« zur Synchronisation

15.2.9 Das Attribut »MethodImpl«

15.2.10 Das Synchronisationsobjekt »Mutex«

15.2.11 Grundlagen asynchroner Methodenaufrufe

15.2.12 Asynchroner Methodenaufruf

15.2.13 Asynchroner Aufruf mit Rückgabewerten

15.2.14 Eine Klasse mit asynchronen Methodenaufrufen

15.3 Die TPL (Task Parallel Library)

15.3.1 Allgemeines zur Parallelisierung mit der TPL

15.3.2 Die Klasse »Parallel«

15.3.3 Die Klasse »Task«

15.4 Asynchrone Programmierung mit »async« und »await«


Rheinwerk Computing - Zum Seitenanfang

16 Einige wichtige .NET-Klassen

16.1 Die Klasse »Object«

16.1.1 Referenzvergleiche mit »Equals« und »ReferenceEquals«

16.1.2 »ToString« und »GetType«

16.1.3 Die Methode »MemberwiseClone« und das Problem des Klonens

16.2 Die Klasse »String«

16.2.1 Das Erzeugen eines Strings

16.2.2 Die Eigenschaften von »String«

16.2.3 Die Methoden der Klasse »String«

16.2.4 Zusammenfassung der Klasse »String«

16.3 Die Klasse »StringBuilder«

16.3.1 Allgemeines

16.3.2 Die Kapazität eines »StringBuilder«-Objekts

16.3.3 Die Konstruktoren der Klasse »StringBuilder«

16.3.4 Die Eigenschaften der Klasse »StringBuilder«

16.3.5 Die Methoden der Klasse »StringBuilder«

16.3.6 Allgemeine Anmerkungen

16.4 Der Typ »DateTime«

16.4.1 Die Zeitspanne »Tick«

16.4.2 Die Konstruktoren von »DateTime«

16.4.3 Die Eigenschaften von »DateTime«

16.4.4 Die Methoden der Klasse »DateTime«

16.5 Die Klasse »TimeSpan«

16.6 Ausgabeformatierung

16.6.1 Formatierung mit der Methode »String.Format«

16.6.2 Formatierung mit der Methode »ToString«

16.6.3 Benutzerdefinierte Formatierung


Rheinwerk Computing - Zum Seitenanfang

17 Projektmanagement und Visual Studio 2012

17.1 Der Projekttyp »Klassenbibliothek«

17.1.1 Mehrere Projekte in einer Projektmappe verwalten

17.1.2 Die Zugriffsmodifizierer »public« und »internal«

17.1.3 Friend Assemblys

17.1.4 Einbinden einer Klassenbibliothek

17.2 Assemblys

17.2.1 Ein Überblick über das Konzept der Assemblys

17.2.2 Allgemeine Beschreibung privater und globaler Assemblys

17.2.3 Die Struktur einer Assembly

17.2.4 Globale Assemblys

17.3 Konfigurationsdateien

17.3.1 Die verschiedenen Konfigurationsdateien

17.3.2 Die Struktur einer Anwendungskonfigurationsdatei

17.3.3 Eine Anwendungskonfigurationsdatei mit Visual Studio 2012 bereitstellen

17.3.4 Einträge der Anwendungskonfigurationsdatei auswerten

17.3.5 Editierbare, anwendungsbezogene Einträge mit <appSettings>

17.4 Versionsumleitung in einer Konfigurationsdatei

17.4.1 Die Herausgeberrichtliniendatei

17.5 XML-Dokumentation

17.5.1 Das Prinzip der XML-Dokumentation

17.5.2 Die XML-Kommentartags

17.5.3 Generieren der XML-Dokumentationsdatei

17.6 Der Klassendesigner (Class Designer)

17.6.1 Ein typisches Klassendiagramm

17.6.2 Hinzufügen und Ansicht von Klassendiagrammen

17.6.3 Die Toolbox des Klassendesigners

17.6.4 Das Fenster »Klassendetails«

17.6.5 Klassendiagramme als Bilder exportieren

17.7 Refactoring

17.7.1 Methode extrahieren

17.7.2 Bezeichner umbenennen

17.7.3 Felder einkapseln

17.8 Code-Snippets (Codeausschnitte)

17.8.1 Codeausschnitte einfügen

17.8.2 Die Anatomie eines Codeausschnitts

17.9 »ClickOnce«-Verteilung

17.9.1 Allgemeine Beschreibung

17.9.2 Erstellen einer ClickOnce-Anwendung

17.9.3 Die Installation einer ClickOnce-Anwendung


Rheinwerk Computing - Zum Seitenanfang

18 Einführung in die WPF und XAML

18.1 Die Merkmale einer WPF-Anwendung

18.1.1 Anwendungstypen

18.1.2 Eine WPF-Anwendung und deren Dateien

18.1.3 Ein erstes WPF-Beispiel

18.1.4 Wichtige WPF-Features

18.1.5 Der logische und der visuelle Elementbaum

18.2 XAML (Extended Application Markup Language)

18.2.1 Die Struktur einer XAML-Datei

18.2.2 Eigenschaften eines XAML-Elements in Attributschreibweise festlegen

18.2.3 Eigenschaften im Eigenschaftsfenster festlegen

18.2.4 Die Eigenschaft-Element-Syntax

18.2.5 Inhaltseigenschaften

18.2.6 Typkonvertierung

18.2.7 Markup-Erweiterungen (Markup Extensions)

18.2.8 XML-Namespaces

18.2.9 XAML-Spracherweiterungen


Rheinwerk Computing - Zum Seitenanfang

19 WPF-Layout-Container

19.1 Die Container-Steuerelemente

19.1.1 Gemeinsame Eigenschaften der Layout-Container

19.1.2 Das »Canvas«

19.1.3 Das »StackPanel«

19.1.4 Das »WrapPanel«

19.1.5 Das »DockPanel«

19.1.6 Das »Grid«-Steuerelement

19.1.7 Das »UniformGrid«

19.2 Verschachteln der Layout-Container


Rheinwerk Computing - Zum Seitenanfang

20 Fenster in der WPF

20.1 Hosts der WPF

20.2 Fenster vom Typ »Window«

20.2.1 Mehrere Fenster in einer Anwendung

20.3 Fenster vom Typ »NavigationWindow«

20.3.1 Das »Page«-Element

20.4 Hosts vom Typ »Frame«

20.5 Navigation zwischen den Seiten

20.5.1 Navigation mit »HyperLink«

20.5.2 Der Verlauf der Navigation – das Journal

20.5.3 Navigation mit »NavigationService«

20.5.4 Navigation im Internet

20.5.5 Navigieren mit dem Ereignis »RequestNavigate« des »HyperLink«-Elements

20.6 Datenübergabe zwischen den Seiten

20.6.1 Datenübergabe mit der Methode »Navigate«

20.7 Nachrichtenfenster mit »MessageBox«

20.7.1 Die Methode »MessageBox.Show«


Rheinwerk Computing - Zum Seitenanfang

21 WPF-Steuerelemente

21.1 Die Hierarchie der WPF-Komponenten

21.2 Allgemeine Eigenschaften der WPF-Steuerelemente

21.2.1 Den Außenrand mit der Eigenschaft »Margin« festlegen

21.2.2 Den Innenrand mit der Eigenschaft »Padding« festlegen

21.2.3 Die Eigenschaft »Content«

21.2.4 Die Größe einer Komponente

21.2.5 Die Ausrichtung einer Komponente

21.2.6 Die Sichtbarkeit eines Steuerelements

21.2.7 Die Farbeinstellungen

21.2.8 Die Schriften

21.3 Die unterschiedlichen Schaltflächen

21.3.1 Die Basisklasse »ButtonBase«

21.3.2 Das Steuerelement »Button«

21.3.3 Das Steuerelement »ToggleButton«

21.3.4 Das Steuerelement »RepeatButton«

21.3.5 Das Steuerelement »Checkbox«

21.3.6 Das Steuerelement »RadioButton«

21.4 Einfache Eingabesteuerelemente

21.4.1 Das Steuerelement »Label«

21.4.2 Das Steuerelement »TextBox«

21.4.3 Das Steuerelement »PasswordBox«

21.4.4 Das Steuerelement »TextBlock«

21.5 WPF-Listenelemente

21.5.1 Das Steuerelement »ListBox«

21.5.2 Die »ComboBox«

21.5.3 Das Steuerelement »ListView«

21.5.4 Das Steuerelement »TreeView«

21.5.5 Das Steuerelement »TabControl«

21.5.6 Die Menüleiste

21.5.7 Das Kontextmenü

21.5.8 Symbolleisten

21.5.9 Die Statusleiste

21.6 Weitere Steuerelemente

21.6.1 Das Steuerelement »ToolTip«

21.6.2 Die »Progressbar«

21.6.3 Das Steuerelement »Slider«

21.6.4 Das »GroupBox«-Steuerelement

21.6.5 Das Steuerelement »ScrollViewer«

21.6.6 Das Steuerelement »Expander«

21.6.7 Das Steuerelement »Border«

21.6.8 Die »Image«-Komponente

21.6.9 »Calendar« und »DatePicker« zur Datumsangabe

21.6.10 Das Steuerelement »InkCanvas«

21.7 Das »Ribbon«-Steuerelement

21.7.1 Voraussetzungen für den Zugriff auf das »Ribbon«-Control

21.7.2 Ein kurzer Überblick

21.7.3 Der XAML-Code

21.8 FlowDocuments

21.8.1 Allgemeine Beschreibung eines FlowDocuments

21.8.2 Eigenschaften eines »FlowDocuments«

21.8.3 Die Blöcke eines »FlowDocuments«

21.8.4 Inline-Elemente

21.8.5 »FlowDocuments« mit Code erzeugen

21.8.6 Speichern und Laden eines »FlowDocuments«

21.9 Das Element »FlowDocumentViewer«

21.9.1 Das Anzeigeelement »FlowDocumentScrollViewer«

21.9.2 Das Anzeigeelement »FlowDocumentPageViewer«

21.9.3 Das Anzeigeelement »FlowDocumentReader«

21.10 XPS-Dokumente mit »DocumentViewer«

21.10.1 Allgemeines zum XPS-Format

21.10.2 Beispielprogramm

21.11 Das Steuerelement »RichTextBox«


Rheinwerk Computing - Zum Seitenanfang

22 Elementbindungen

22.1 Einführung in die Bindungstechnik

22.1.1 Ein einfaches Bindungsbeispiel

22.2 Die Klasse »Binding«

22.2.1 Die Bindungsrichtung festlegen

22.2.2 Aktualisierung der Bindung

22.2.3 Die Ereignisse »SourceUpdated« und »TargetUpdated«

22.2.4 Beenden einer Bindung

22.3 Bindungsalternativen

22.3.1 Die Eigenschaft »Source«

22.3.2 Anbindung an relative Datenquellen

22.3.3 Die Bindung an »DataContext«


Rheinwerk Computing - Zum Seitenanfang

23 Konzepte von WPF

23.1 Anwendungsspezifische Ressourcen

23.2 Anwendungsübergreifende Ressourcen

23.2.1 Mehrere Ressourcenwörterbücher

23.2.2 Die Suche nach einer Ressource

23.3 Logische Ressourcen

23.3.1 Statische Ressourcen

23.3.2 Dynamische Ressourcen

23.3.3 Ressourcen mit C#-Code bearbeiten

23.3.4 Abrufen von Systemressourcen

23.4 Styles

23.4.1 Einfache Styles

23.4.2 Typisierte Styles

23.4.3 Erweitern von Styles

23.4.4 EventSetter

23.5 Trigger

23.5.1 Eigenschaftstrigger

23.5.2 Datentrigger

23.5.3 Ereignistrigger

23.6 Templates

23.6.1 Allgemeines zu »ControlTemplates«

23.6.2 Definition innerhalb eines Styles

23.7 Ermitteln des visuellen Elementbaums

23.7.1 Das Tool »Expression Blend«

23.7.2 Standard-Template mit Code abfragen


Rheinwerk Computing - Zum Seitenanfang

24 Datenbindung

24.1 Bindung benutzerdefinierter Objekte

24.1.1 Ein Objekt mit XAML-Code erzeugen und binden

24.1.2 Ein Objekt mit C#-Code erzeugen und binden

24.1.3 Aktualisieren benutzerdefinierter Objekte

24.2 Auflistungen binden

24.2.1 Allgemeine Gesichtspunkte

24.2.2 Anbindung an eine »ListBox«

24.2.3 Änderungen der Collection an die bindenden Elemente weiterleiten

24.3 Validieren von Bindungen

24.3.1 Die Validierung im Datenobjekt

24.3.2 Eine benutzerdefinierte »ValidationRule«

24.3.3 Validierung mit der Schnittstelle »IDataErrorInfo«

24.3.4 Fehlerhinweise individuell anzeigen

24.3.5 Ereignisauslösung bei einem Validierungsfehler

24.4 Daten konvertieren

24.4.1 Mehrfachbindungen und Konverterklassen

24.5 Datenbindung an ADO.NET- und LINQ-Datenquellen

24.5.1 Das Binden an ADO.NET-Objekte

24.5.2 Das Binden an LINQ-Ausdrücke


Rheinwerk Computing - Zum Seitenanfang

25 Weitere Möglichkeiten der Datenbindung

25.1 »ItemsControl«-Steuerelemente anpassen

25.1.1 Den Style eines »ListBoxItem«-Elements ändern

25.1.2 DataTemplates festlegen

25.1.3 »DataTemplates« mit Trigger

25.2 Alternative Datenbindungen

25.2.1 Die Klasse »ObjectDataProvider«

25.3 Navigieren, Filtern, Sortieren und Gruppieren

25.3.1 Navigieren

25.3.2 Sortieren

25.3.3 Filtern

25.3.4 Gruppieren

25.4 Das Steuerelement »DataGrid«

25.4.1 Elementare Eigenschaften des »DataGrid«

25.4.2 Spalten definieren

25.4.3 Details einer Zeile anzeigen


Rheinwerk Computing - Zum Seitenanfang

26 Dependency Properties

26.1 Die Charakteristik von Abhängigkeitseigenschaften

26.2 Den Wert einer Abhängigkeitseigenschaft bilden

26.3 Definition einer Dependency Property

26.3.1 Registrieren einer Abhängigkeitseigenschaft

26.3.2 Der Eigenschaftswrapper

26.3.3 Die Eigenschaftsmetadaten

26.3.4 Freigabe des spezifischen Eigenschaftswertes

26.3.5 Vererbung von Abhängigkeitseigenschaften

26.4 Validieren einer Abhängigkeitseigenschaft

26.4.1 Validieren mit »ValidateValueCallback«

26.4.2 Validieren mit »CoerceValueCallback«

26.5 Angehängte Eigenschaften (Attached Property)

26.5.1 Angehängte Eigenschaften zur Laufzeit ändern


Rheinwerk Computing - Zum Seitenanfang

27 Ereignisse in der WPF

27.1 Ereignishandler bereitstellen

27.2 Routing-Strategien

27.2.1 Der durchlaufene Elementbaum

27.2.2 Beispielanwendung

27.2.3 Sonderfall der Mausereignisse

27.3 Der Ereignishandler

27.3.1 Die Klasse »RoutedEventArgs«

27.3.2 Die Quelle des Routing-Prozesses

27.3.3 Die Eigenschaft »Handled«

27.3.4 Registrieren und Deregistrieren eines Ereignishandlers mit Code

27.4 Definition eines Routed Events

27.4.1 Ereignisauslösung

27.4.2 Das Ereignis als Attached Event verwenden

27.4.3 Unterdrückte Ereignisse

27.5 Mausereignisse in der WPF

27.5.1 Ziehen der Maus

27.5.2 Auswerten der Mausklicks

27.5.3 Capturing


Rheinwerk Computing - Zum Seitenanfang

28 WPF-Commands

28.1 Allgemeine Beschreibung

28.1.1 Ein einführendes Beispiel

28.2 Vordefinierte WPF-Commands

28.3 Commands verwenden

28.3.1 Command-Bindungen einrichten

28.3.2 Lokalität der Befehlsbindung

28.3.3 Befehlsbindung mit Programmcode

28.3.4 Das Befehlsziel mit »CommandTarget« angeben

28.3.5 Zusätzliche Daten bereitstellen

28.3.6 Befehle mit Maus oder Tastatur aufrufen

28.4 Die Anatomie eines »Command«-Objekts

28.4.1 Das Interface »ICommand«

28.4.2 Die Klassen »RoutedCommand« und »RoutedUICommand«

28.4.3 Das Interface »ICommandSource«

28.5 Das MVVM-Pattern

28.5.1 Ein simples Beispielprogramm


Rheinwerk Computing - Zum Seitenanfang

29 Benutzerdefinierte Controls

29.1 Erstellen eines benutzerdefinierten Steuerelements

29.2 Der XAML-Code

29.3 Die Programmlogik des Steuerelements

29.3.1 Die Eigenschaften

29.3.2 Ein Ereignis bereitstellen

29.3.3 Das Steuerelement um einen »Command« ergänzen

29.4 Testanwendung


Rheinwerk Computing - Zum Seitenanfang

30 2D-Grafik

30.1 Shapes

30.1.1 Allgemeine Beschreibung

30.1.2 Line-Elemente

30.1.3 Ellipse- und Rectangle-Elemente

30.1.4 Polygon- und Polyline-Elemente

30.1.5 Darstellung der Linien

30.2 Path-Elemente

30.2.1 GeometryGroup

30.2.2 CombinedGeometry

30.2.3 PathGeometry

30.3 Brush-Objekte

30.3.1 SolidColorBrush

30.3.2 LinearGradientBrush

30.3.3 RadialGradientBrush

30.3.4 TileBrush

30.3.5 ImageBrush

30.3.6 VisualBrush

30.3.7 DrawingBrush


Rheinwerk Computing - Zum Seitenanfang

31 ADO.NET – Verbindungsorientierte Objekte

31.1 Allgemeines

31.2 Die Datenprovider

31.3 Die Verbindung zu einer Datenbank herstellen

31.3.1 Das Connection-Objekt

31.3.2 Die Verbindungszeichenfolge

31.3.3 Die Verbindung mit einer SQL Server-Instanz aufbauen

31.3.4 Öffnen und Schließen einer Verbindung

31.3.5 Das Verbindungspooling

31.3.6 Die Ereignisse eines »Connection«-Objekts

31.3.7 Verbindungszeichenfolgen aus einer Konfigurationsdatei abrufen

31.3.8 Verbindungen mit dem OleDb-Datenprovider


Rheinwerk Computing - Zum Seitenanfang

32 ADO.NET – Das Command-Objekt

32.1 Die Datenbankabfrage

32.2 Das SqlCommand-Objekt

32.2.1 Erzeugen eines SqlCommand-Objekts

32.2.2 Die Methode »CreateCommand« des Connection-Objekts

32.2.3 Ausführen des SqlCommand-Objekts

32.2.4 Die Eigenschaft »CommandTimeout« des SqlCommand-Objekts

32.3 Aktionsabfragen absetzen

32.3.1 Datensätze hinzufügen

32.3.2 Datensätze löschen

32.3.3 Datensätze ändern

32.3.4 Abfragen, die genau ein Ergebnis liefern

32.4 Das SqlDataReader-Objekt

32.4.1 Datensätze einlesen

32.4.2 Schließen des SqlDataReader-Objekts

32.4.3 MARS (Multiple Active Resultsets)

32.4.4 Batchabfragen mit »NextResult« durchlaufen

32.4.5 Das Schema eines SqlDataReader-Objekts untersuchen

32.5 Parametrisierte Abfragen

32.5.1 Parametrisierte Abfragen mit dem SqlClient-Datenprovider

32.5.2 Die Klasse »SqlParameter«

32.5.3 Asynchrone Abfragen

32.5.4 Gespeicherte Prozeduren (Stored Procedures)


Rheinwerk Computing - Zum Seitenanfang

33 ADO.NET – Der SqlDataAdapter

33.1 Was ist ein DataAdapter?

33.2 Die Konstruktoren der Klasse DataAdapter

33.3 Arbeiten mit dem SqlDataAdapter

33.3.1 Die Eigenschaft »SelectCommand«

33.3.2 Den lokalen Datenspeicher mit »Fill« füllen

33.3.3 Öffnen und Schließen von Verbindungen

33.3.4 Doppelter Aufruf der Fill-Methode

33.3.5 Mehrere DataAdapter-Objekte aufrufen

33.3.6 Die Spalten- und der Tabellenbezeichner einer DataTable

33.3.7 Paging mit der Fill-Methode

33.4 Tabellenzuordnung mit der Klasse »TableMappings«

33.4.1 Spaltenzuordnungen in einem DataSet

33.4.2 Spaltenzuordnungen einer DataTable

33.4.3 Die Eigenschaft »MissingMappingAction« des DataAdapters

33.5 Das Ereignis »FillError« des SqlDataAdapters


Rheinwerk Computing - Zum Seitenanfang

34 ADO.NET – Daten im lokalen Speicher

34.1 Allgemeines

34.2 Verwenden des DataSet-Objekts

34.2.1 Ein DataSet-Objekt erzeugen

34.2.2 Die Anatomie einer DataTable

34.2.3 Der Zugriff auf eine Tabelle im DataSet

34.2.4 Der Zugriff auf die Ergebnisliste

34.2.5 Dateninformationen in eine XML-Datei schreiben

34.3 Gültigkeitsprüfung im DataSet

34.3.1 Dem DataSet Schemainformationen übergeben

34.3.2 Eigenschaften einer DataColumn, die der Gültigkeitsprüfung dienen

34.3.3 Die Constraints-Klassen einer »DataTable«

34.3.4 Das Schema mit Programmcode erzeugen

34.3.5 Schemainformationen mit SqlDataAdapter abrufen

34.4 Änderungen in einer DataTable vornehmen

34.4.1 Editieren einer DataRow

34.4.2 Löschen einer Datenzeile

34.4.3 Eine neue Datenzeile hinzufügen

34.4.4 Der Sonderfall: Autoinkrementspalten

34.4.5 Was bei einer Änderung einer Datenzeile passiert

34.4.6 Manuelles Steuern der Eigenschaft »DataRowState«

34.5 Mit mehreren Tabellen arbeiten

34.5.1 Der Weg über JOIN-Abfragen

34.5.2 Mehrere Tabellen in einem DataSet

34.5.3 Eine DataRelation erzeugen

34.5.4 DataRelations und Einschränkungen

34.5.5 In Beziehung stehende Daten suchen

34.5.6 Ergänzung zum Speichern von Schemainformationen in einer XML-Schemadatei

34.6 Filtern und suchen in einer DataTable

34.6.1 Die Methode »Find«

34.6.2 Die Methode »Select«

34.7 Objekte vom Typ »DataView«

34.7.1 Einen »DataView« erzeugen

34.7.2 Auf die Datenzeilen in einem »DataView« zugreifen

34.7.3 Die Eigenschaft »Sort« und die Methode »Find«

34.7.4 Die Methode »FindRows«

34.7.5 Die Eigenschaft »RowFilter«

34.7.6 Die Eigenschaft »RowStateFilter«

34.7.7 Änderungen an einem »DataView«-Objekt

34.7.8 Aus einem »DataView« eine »DataTable« erzeugen


Rheinwerk Computing - Zum Seitenanfang

35 ADO.NET – Aktualisieren der Datenbank

35.1 Aktualisieren mit dem »CommandBuilder«

35.1.1 Die von »SqlCommandBuilder« generierten Aktualisierungsstatements

35.1.2 Konfliktsteuerung in einer Mehrbenutzerumgebung

35.1.3 Die Eigenschaft »ConflictOption« des »SqlCommandBuilders«

35.1.4 Die Eigenschaft »SetAllValues«

35.2 Manuell gesteuerte Aktualisierung

35.2.1 Eigene Aktualisierungslogik

35.2.2 Das Beispielprogramm

35.3 Konfliktanalyse

35.3.1 Den Benutzer über fehlgeschlagene Aktualisierungen informieren

35.3.2 Konfliktverursachende Datenzeilen bei der Datenbank abfragen

35.4 Neue Autoinkrementwerte abrufen


Rheinwerk Computing - Zum Seitenanfang

36 Stark typisierte DataSets

36.1 Ein stark typisiertes DataSet erzeugen

36.1.1 Typisierte DataSets mit dem Visual Studio Designer erstellen

36.1.2 Das Kommandozeilentool XSD.exe

36.2 Die Anatomie eines typisierten DataSets

36.2.1 Die Datenzeilen einer Tabelle ausgeben

36.2.2 Datenzeilen hinzufügen

36.2.3 Datenzeilen bearbeiten

36.2.4 Datenzeilen suchen

36.2.5 NULL-Werte im typisierten DataSet

36.2.6 Die Daten in einem hierarchischen DataSet

36.3 Typisierte DataSets manuell im Designer erzeugen

36.3.1 Eine »DataTable« manuell erzeugen

36.3.2 Der »DataTable« Spalten hinzufügen

36.3.3 Beziehungen zwischen den Tabellen erstellen

36.4 Weiter gehende Betrachtungen

36.5 Der »TableAdapter«

36.5.1 Einen »TableAdapter« mit Visual Studio erzeugen

36.5.2 Die Methode »Fill« des »TableAdapters«

36.5.3 Die Methode »GetData«

36.5.4 Die Methode »Update«

36.5.5 Aktualisieren mit den DBDirect-Methoden

36.5.6 TableAdapter mit mehreren Abfragen

36.5.7 Änderungen an einem »TableAdapter« vornehmen

36.6 Fazit: Typisierte oder nicht typisierte DataSets?


Rheinwerk Computing - Zum Seitenanfang

37 Einführung in das ADO.NET Entity Framework

37.1 Kritische Betrachtung von ADO.NET

37.2 Ein erstes Entity Data Model (EDM) erstellen

37.3 Das Entity Data Model im Designer

37.3.1 Die übergeordneten Eigenschaften einer Entität

37.3.2 Eigenschaften eines Entitätsobjekts

37.3.3 Assoziationen im Entity Data Model

37.3.4 Der Kontext der Entitäten

37.4 Der Aufbau des Entity Data Models

37.5 Die Klassen des Entity Data Models (EDM)

37.5.1 Die Entitätsklassen

37.5.2 Der ObjectContext

37.6 Die Architektur des Entity Frameworks

37.6.1 Object Services

37.6.2 Die Schichten des Entity Frameworks


Rheinwerk Computing - Zum Seitenanfang

38 Datenabfragen des Entity Data Models (EDM)

38.1 Abfragen mit LINQ to Entities

38.1.1 Allgemeine Begriffe in LINQ

38.1.2 Einfache Abfragen

38.1.3 Navigieren in Abfragen

38.1.4 Aggregatmethoden

38.1.5 Joins in LINQ definieren

38.1.6 In Beziehung stehende Daten laden

38.2 Abfragen mit Entity SQL

38.2.1 Ein erstes Beispiel mit Entity SQL

38.2.2 Die fundamentalen Regeln der Entity-SQL-Syntax

38.2.3 Filtern mit Entity SQL

38.2.4 Parametrisierte Abfragen

38.3 Der EntityClient-Provider

38.3.1 Verbindungen mit »EntityConnection«

38.3.2 Die Klasse »EntityCommand«

38.4 Abfrage-Generator-Methoden (QueryBuilder-Methoden)

38.5 SQL-Direktabfragen


Rheinwerk Computing - Zum Seitenanfang

39 Entitätsaktualisierung und Zustandsverwaltung

39.1 Aktualisieren von Entitäten

39.1.1 Entitäten ändern

39.1.2 Hinzufügen neuer Entitäten

39.1.3 Löschen einer Entität

39.2 Der Lebenszyklus einer Entität im Objektkontext

39.2.1 Der Zustand einer Entität

39.2.2 Das Team der Objekte im Überblick

39.2.3 Neue Entitäten im Objektkontext

39.2.4 Die Zustände einer Entität

39.2.5 Zusätzliche Entitäten in den Datencache laden

39.2.6 Die Zustandsverfolgung mit »MergeOption« steuern

39.3 Das »ObjectStateEntry«-Objekt

39.3.1 Die Current- und Originalwerte abrufen

39.3.2 Die Methode »TryGetObjectStateEntry«

39.3.3 Abrufen bestimmter Gruppen

39.3.4 Die Methode »GetModifiedProperties«

39.4 Die Klasse »EntityKey«

39.4.1 Die Methoden »GetObjectByKey« und »TryGetObjectByKey«

39.5 Komplexere Szenarien

39.5.1 Die Methode »ChangeState«

39.5.2 Die Methoden »ApplyCurrentChanges« und »ApplyOriginalChanges«


Rheinwerk Computing - Zum Seitenanfang

40 Konflikte behandeln

40.1 Allgemeine Betrachtungen

40.1.1 Das pessimistische Sperren

40.1.2 Das optimistische Sperren

40.2 Konkurrierende Zugriffe mit dem Entity Framework

40.2.1 Das Standardverhalten des Entity Frameworks

40.2.2 Das Aktualisierungsverhalten mit »Fixed« beeinflussen

40.2.3 Auf die Ausnahme »OptimisticConcurrencyException« reagieren

40.2.4 Das »ClientWins«-Szenario

40.2.5 Das »StoreWins«-Szenario


Rheinwerk Computing - Zum Seitenanfang

41 Plain Old CLR Objects (POCOs)

41.1 Ein erstes Projekt mit POCO-Klassen

41.1.1 Erstellen einfacher POCO-Klassen

41.1.2 Erstellen des Objektkontextes

41.2 Datenabfrage mit Hilfe der POCOs

41.2.1 In Beziehung stehende Daten laden

41.3 Änderungen verfolgen

41.3.1 Die Methode »DetectChanges«

41.3.2 In Beziehung stehende POCOs aktualisieren


Rheinwerk Computing - Zum Seitenanfang

Stichwortverzeichnis



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual C# 2012

Visual C# 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: C/C++






 C/C++


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern