C# und .NET 6: Grundlagen, Profiwissen und Rezepte
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
München
Hanser
[2022]
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXIII, 998 Seiten Illustrationen 25 cm |
ISBN: | 9783446469303 3446469303 |
Internformat
MARC
LEADER | 00000nam a22000008c 4500 | ||
---|---|---|---|
001 | BV047960363 | ||
003 | DE-604 | ||
005 | 20230531 | ||
007 | t | ||
008 | 220428s2022 gw a||| |||| 00||| ger d | ||
016 | 7 | |a 1247126404 |2 DE-101 | |
020 | |a 9783446469303 |c Pappeinband: EUR 49.99 (DE), EUR 51.40 (AT) |9 978-3-446-46930-3 | ||
020 | |a 3446469303 |9 3-446-46930-3 | ||
035 | |a (OCoLC)1288572262 | ||
035 | |a (DE-599)DNB1247126404 | ||
040 | |a DE-604 |b ger | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BY | ||
049 | |a DE-210 |a DE-12 |a DE-B768 |a DE-860 |a DE-1050 |a DE-20 |a DE-91 | ||
082 | 0 | |a 005.133 |2 23/ger | |
082 | 0 | |a 005.2768 |2 23/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |8 1\p |a 004 |2 23sdnb | ||
084 | |a DAT 358 |2 stub | ||
100 | 1 | |a Kotz, Jürgen |0 (DE-588)124099343 |4 aut | |
245 | 1 | 0 | |a C# und .NET 6 |b Grundlagen, Profiwissen und Rezepte |c Jürgen Kotz, Christian Wenz |
264 | 1 | |a München |b Hanser |c [2022] | |
264 | 4 | |c © 2022 | |
300 | |a XXIII, 998 Seiten |b Illustrationen |c 25 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Visual Studio 2022 |0 (DE-588)1254859004 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Microsoft dot net |0 (DE-588)4645646-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C sharp |0 (DE-588)4616843-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Visual C sharp.NET |0 (DE-588)4682222-7 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Microsoft dot net 6 |0 (DE-588)1257683020 |2 gnd |9 rswk-swf |
653 | |a .NET 6.0 | ||
653 | |a ADO.NET | ||
653 | |a Entity Framework | ||
653 | |a Grafikprogrammierung | ||
653 | |a LINQ | ||
653 | |a MAUI | ||
653 | |a Visual Studio 2021 | ||
653 | |a Windows Forms | ||
653 | |a FBITVISC: Visual C# | ||
653 | |a INF2022 | ||
655 | 7 | |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a C sharp |0 (DE-588)4616843-6 |D s |
689 | 0 | 1 | |a Microsoft dot net |0 (DE-588)4645646-6 |D s |
689 | 0 | 2 | |a Visual Studio 2022 |0 (DE-588)1254859004 |D s |
689 | 0 | 3 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a C sharp |0 (DE-588)4616843-6 |D s |
689 | 1 | 1 | |a Microsoft dot net 6 |0 (DE-588)1257683020 |D s |
689 | 1 | |5 DE-604 | |
689 | 2 | 0 | |a Visual Studio 2022 |0 (DE-588)1254859004 |D s |
689 | 2 | 1 | |a C sharp |0 (DE-588)4616843-6 |D s |
689 | 2 | 2 | |a Visual C sharp.NET |0 (DE-588)4682222-7 |D s |
689 | 2 | |5 DE-604 | |
700 | 1 | |a Wenz, Christian |d 1977- |0 (DE-588)122481720 |4 aut | |
776 | 0 | 8 | |i Erscheint auch als |n E-Book |z 978-3-446-47349-2 |
776 | 0 | 8 | |i Erscheint auch als |n E-Pub |z 978-3-446-47423-9 |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=033341568&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-033341568 | ||
883 | 1 | |8 1\p |a vlb |d 20211208 |q DE-101 |u https://d-nb.info/provenance/plan#vlb |
Datensatz im Suchindex
_version_ | 1804183649450459136 |
---|---|
adam_text | VORWORT
........................................................................................................
XXI
ZUSATZMATERIAL
ONLINE
......................................................................................................
XXIII
TEIL
I:
GRUNDLAGEN
......................................................................................
1
1
.NET
6
...................................................................................................
3
1.1
MICROSOFTS
.NET-TECHNOLOGIE
...................................................................................
4
1.1.1
ZURGESCHICHTEVON.NET
............................................................................
4
1.1.2
.NET-FEATURES
UND
BEGRIFFE
........................................................................
6
1.2
.NET
CORE
................................................................................................................
13
1.2.1
GESCHICHTE
VON
.NET
CORE
..........................................................................
13
1.2.2
LTS
-
LONG
TERM
SUPPORT
UND
ZUKUENFTIGE
VERSIONEN
..............................
15
1.2.3
.NET
STANDARD
.............................................................................................
15
1.3
FEATURES
VON
.NET
6
.................................................................................................
16
2
EINSTIEG
IN
VISUAL
STUDIO
2022
..........................................................
19
2.1
DIE
INSTALLATION
VON
VISUAL
STUDIO
2022
................................................................
19
2.1.1
UEBERBLICK
UEBER
DIE
PRODUKTPALETTE
............................................................
19
2.1.2
ANFORDERUNGEN
AN
HARD-UND
SOFTWARE
....................................................
20
2.2
UNSER
ALLERERSTES
C#-PROGRAMM
..............................................................................
21
2.2.1
VORBEREITUNGEN
...........................................................................................
21
2.2.2
QUELLCODE
SCHREIBEN
...................................................................................
24
2.2.3
PROGRAMM
KOMPILIEREN
UND
TESTEN
............................................................
24
2.2.4
EINIGE
ERLAEUTERUNGEN
ZUM
QUELLCODE
......................................................
25
2.2.5
KONSOLENANWENDUNGEN
SIND
OUT
................................................................
26
2.3
DIE
WINDOWS-PHILOSOPHIE
.......................................................................................
27
2.3.1
MENSCH-RECHNER-DIALOG
..............................................................................
27
2.3.2
OBJEKT
UND
EREIGNISORIENTIERTE
PROGRAMMIERUNG
...................................
27
2.3.3
PROGRAMMIEREN
MIT
VISUAL
STUDIO
2022 ............................................
29
2.4
DIE
ENTWICKLUNGSUMGEBUNG
VISUAL
STUDIO
2022
..................................................
30
2.4.1
NEUES
PROJEKT
.............................................................................................
30
2.4.2
DIE
WICHTIGSTEN
FENSTER
..............................................................................
33
2.4.3
PROJEKTVORLAGEN
IN
VISUAL
STUDIO
2022
-
MINIMAL
APIS
...........................
36
2.5
PRAXISBEISPIELE
..........................................................................................................
37
2.5.1
UNSERE
ERSTE
WINDOWS-FORMS-ANWENDUNG
...............................................
37
2.5.2
UMRECHNUNG
EURO-DOLLAR
..........................................................................
43
3
GRUNDLAGEN
DER
SPRACHE
C#
.................................................................
53
3.1
GRUNDBEGRIFFE
...........................................................................................................
53
3.1.1
ANWEISUNGEN
..............................................................................................
53
3.1.2
BEZEICHNER
.................................................................................................
54
3.1.3
SCHLUESSELWOERTER
..........................................................................................
55
3.1.4
KOMMENTARE
...............................................................................................
56
3.2
DATENTYPEN,
VARIABLEN
UND
KONSTANTEN
..................................................................
57
3.2.1
FUNDAMENTALE
TYPEN
..................................................................................
57
3.2.2
WERTETYPEN
VERSUS
VERWEISTYPEN
..............................................................
58
3.2.3
BENENNUNG
VON
VARIABLEN
..........................................................................
59
3.2.4
DEKLARATION
VON
VARIABLEN
........................................................................
59
3.2.5
TYPSUFFIXE
....................................................................................................
60
3.2.6
ZEICHEN
UND
ZEICHENKETTEN
........................................................................
61
3.2.7
OBJECT-DATENTYP
..........................................................................................
63
3.2.8
KONSTANTEN
DEKLARIEREN
..............................................................................
64
3.2.9
NULLABLE
TYPES
............................................................................................
64
3.2.10
TYPINFERENZ
.................................................................................................
66
3.2.11
GUELTIGKEITSBEREICHE
UND
SICHTBARKEIT
.........................................................
66
3.3
KONVERTIEREN
VON
DATENTYPEN
..................................................................................
67
3.3.1
IMPLIZITE
UND
EXPLIZITE
KONVERTIERUNG
.......................................................
67
3.3.2
WELCHER
DATENTYP
PASST
ZU
WELCHEM?
.......................................................
69
3.3.3
KONVERTIEREN
VON
STRING
..............................................................................
70
3.3.4
DIE
CONVERT-KLASSE
......................................................................................
71
3.3.5
DIE
PARSE-METHODE
......................................................................................
72
3.3.6
BOXING
UND
UNBOXING
................................................................................
73
3.4
OPERATOREN
...............................................................................................................
74
3.4.1
ARITHMETISCHE
OPERATOREN
..........................................................................
75
3.4.2
ZUWEISUNGSOPERATOREN
..............................................................................
77
3.4.3
LOGISCHE
OPERATOREN
..................................................................................
78
3.4.4
RANGFOLGE
DER
OPERATOREN
..........................................................................
81
3.5
KONTROLLSTRUKTUREN
...................................................................................................
82
3.5.1
VERZWEIGUNGSBEFEHLE
..................................................................................
82
3.5.2
SCHLEIFENANWEISUNGEN
................................................................................
87
3.6
BENUTZERDEFINIERTE
DATENTYPEN
................................................................................
89
3.6.1
ENUMERATIONEN
............................................................................................
90
3.6.2
STRUKTUREN
.................................................................................................
91
3.7
NUTZERDEFINIERTE
METHODEN
......................................................................................
93
3.7.1
METHODEN
MIT
RUECKGABEWERT
....................................................................
94
3.7.2
METHODEN
OHNE
RUECKGABEWERT
..................................................................
95
3.7.3
PARAMETERUEBERGABE
MIT
REF
........................................................................
97
3.7.4
PARAMETERUEBERGABE
MIT
OUT
........................................................................
98
3.7.5
METHODENUEBERLADUNG
..................................................................................
99
3.7.6
OPTIONALE
PARAMETER
..................................................................................
100
3.7.7
BENANNTE
PARAMETER
..................................................................................
101
3.8
PRAXISBEISPIELE
........................................................................................................
102
3.8.1
VOM
PAP
ZUR
KONSOLENANWENDUNG
..........................................................
102
3.8.2
EIN
KONSOLEN-IN
EIN
WINDOWS-PROGRAMM
VERWANDELN
...........................
105
3.8.3
SCHLEIFENANWEISUNGEN
VERSTEHEN
..............................................................
107
3.8.4
BENUTZERDEFINIERTE
METHODEN
UEBERLADEN
...................................................
110
3.8.5
ANWENDUNGEN
VON
VISUAL
BASIC
NACH
C#
PORTIEREN
.................................
113
4
OOP-KONZEPTE
........................................................................................
121
4.1
KLEINE
EINFUEHRUNG
IN
DIE
OOP
.........................................................................
121
4.1.1
HISTORISCHE
ENTWICKLUNG
............................................................................
122
4.1.2
GRUNDBEGRIFFE
DER
OOP
..............................................................................
123
4.1.3
SICHTBARKEIT
VON
KLASSEN
UND
IHREN
MITGLIEDERN
.....................................
125
4.1.4
ALLGEMEINER
AUFBAU
EINER
KLASSE
..............................................................
126
4.1.5
DAS
ERZEUGEN
EINES
OBJEKTS
......................................................................
128
4.1.6
EINFUEHRUNGSBEISPIEL
..................................................................................
131
4.2
EIGENSCHAFTEN
...........................................................................................................
137
4.2.1
EIGENSCHAFTEN
MIT
ZUGRIFFSMETHODEN
KAPSELN
.........................................
137
4.2.2
BERECHNETE
EIGENSCHAFTEN
..........................................................................
139
4.2.3
LESE-/SCHREIBSCHUTZ
...................................................................................
141
4.2.4
PROPERTY-ACCESSOREN
..................................................................................
142
4.2.5
STATISCHE
FELDER/EIGENSCHAFTEN
................................................................
143
4.2.6
EINFACHE
EIGENSCHAFTEN
AUTOMATISCH
IMPLEMENTIEREN
.............................
145
4.3
METHODEN
................................................................................................................
147
4.3.1
OEFFENTLICHE
UND
PRIVATE
METHODEN
............................................................
147
4.3.2
UEBERLADENE
METHODEN
...............................................................................
148
4.3.3
STATISCHE
METHODEN
...................................................................................
149
4.4
EREIGNISSE
................................................................................................................
150
4.4.1
EREIGNIS
HINZUFUEGEN
...................................................................................
151
4.4.2
EREIGNIS
VERWENDEN
...................................................................................
154
4.5
ARBEITEN
MIT
KONSTRUKTOR
UND
DESTRUKTOR
...............................................................
157
4.5.1
KONSTRUKTOR
UND
OBJEKTINITIALISIERER
........................................................
158
4.5.2
DESTRUKTOR
UND
GARBAGE
COLLECTOR
............................................................
161
4.5.3
MIT
USING
DEN
LEBENSZYKLUS
DES
OBJEKTS
KAPSELN
....................................
163
4.6
VERERBUNG
UND
POLYMORPHIE
...................................................................................
164
4.6.1
METHOD-OVERRIDING
.....................................................................................
164
4.6.2
KLASSEN
IMPLEMENTIEREN
...........................................................................
164
4.6.3
IMPLEMENTIEREN
DER
OBJEKTE
......................................................................
167
4.6.4
AUSBLENDEN
VON
MITGLIEDERN
DURCH
VERERBUNG
.......................................
169
4.6.5
ALLGEMEINE
HINWEISE
UND
REGELN
ZUR
VERERBUNG
.....................................
170
4.6.6
POLYMORPHES
VERHALTEN
..............................................................................
172
4.6.7
DIE
ROLLE
VON
SYSTEM.OBJECT
......................................................................
175
4.7 SPEZIELLE
KLASSEN
.....................................................................................................
176
4.7.1
ABSTRAKTE
KLASSEN
......................................................................................
176
4.7.2
VERSIEGELTE
KLASSEN
....................................................................................
177
4.7.3
PARTIELLE
KLASSEN
........................................................................................
178
4.7.4
STATISCHE
KLASSEN
........................................................................................
179
4.8
SCHNITTSTELLEN
(INTERFACES)
........................................................................................
180
4.8.1
DEFINITION
EINER
SCHNITTSTELLE
....................................................................
181
4.8.2
IMPLEMENTIEREN
EINER
SCHNITTSTELLE
...........................................................
181
4.8.3
ABFRAGEN,
OB
SCHNITTSTELLE
VORHANDEN
IST
...................................................
182
4.8.4
MEHRERE
SCHNITTSTELLEN
IMPLEMENTIEREN
...................................................
183
4.8.5
SCHNITTSTELLENPROGRAMMIERUNG
IST
EIN
WEITES
FELD
...................................
183
4.9
DATENSATZTYPEN
-
RECORDS
........................................................................................
183
4.9.1
DEFINITION
EINES
RECORD
..............................................................................
184
4.9.2
MUTABLE
PROPERTIES
....................................................................................
186
4.9.3
NICHT-DESTRUKTIVE
AENDERUNG
......................................................................
188
4.9.4
DEKONSTRUKTION
............................................................................................
189
4.10
PRAXISBEISPIELE
.........................................................................................................
190
4.10.1
EIGENSCHAFTENSINNVOLLKAPSELN
................................................................
190
4.10.2
EINE
STATISCHE
KLASSE
ANWENDEN
................................................................
193
4.10.3
VOM
FETTEN
ZUM
SCHLANKEN
CLIENT
..............................................................
194
4.10.4
SCHNITTSTELLENVERERBUNG
VERSTEHEN
............................................................
205
4.10.5
RECHNER
FUER
KOMPLEXE
ZAHLEN
....................................................................
210
4.10.6
SORTIEREN
MIT
ICOMPARABLE/ICOMPARER
.....................................................
218
4.10.7
EINEN
OBJEKTBAUM
IN
GENERISCHEN
LISTEN
ABSPEICHERN
...........................
223
4.10.8
OOP
BEIM
KARTENSPIEL
ERLERNEN
................................................................
228
4.10.9
EINE
KLASSE
ZUR
MATRIZENRECHNUNG
ENTWICKELN
.......................................
233
4.10.10
VERERBUNG
VON
RECORDS
..............................................................................
239
5
ARRAYS,
STRINGS,
FUNKTIONEN
.................................................................
241
5.1
DATENFELDER
(ARRAYS)
................................................................................................
241
5.1.1
ARRAY
DEKLARIEREN
........................................................................................
242
5.1.2
ARRAY
INSTANZIIEREN
....................................................................................
242
5.1.3
ARRAY
INITIALISIEREN
....................................................................................
243
5.1.4
ZUGRIFF
AUF
ARRAY-ELEMENTE
........................................................................
244
5.1.5
ZUGRIFF
MITTELS
SCHLEIFE
..............................................................................
245
5.1.6
MEHRDIMENSIONALE
ARRAYS
..........................................................................
246
5.1.7
ZUWEISEN
VON
ARRAYS
..................................................................................
248
5.1.8
ARRAYS
AUS
STRUKTURVARIABLEN
....................................................................
249
5.1.9
LOESCHEN
UND
UMDIMENSIONIEREN
VON
ARRAYS
...........................................
250
5.1.10
EIGENSCHAFTEN
UND
METHODEN
VON
ARRAYS
.................................................
252
5.1.11
UEBERGABE
VON
ARRAYS
..................................................................................
253
5.2
VERARBEITEN
VON
ZEICHENKETTEN
................................................................................
255
5.2.1
ZUWEISEN
VON
STRINGS
................................................................................
255
5.2.2
EIGENSCHAFTEN
UND
METHODEN
VON
STRING-VARIABLEN
.................................
256
5.2.3
WICHTIGE
METHODEN
DER
STRING-KLASSE
.......................................................
258
5.2.4
DIE
STRINGBUILDER-KLASSE
............................................................................
260
5.3
DATUMS
UND
ZEITBERECHNUNGEN
..............................................................................
263
5.3.1
DIE
DATETIME-STRUKTUR
..............................................................................
263
5.3.2
WICHTIGE
EIGENSCHAFTEN
VON
DATETIME-VARIABLEN
.....................................
264
5.3.3
WICHTIGE
METHODEN
VON
DATETIME-VARIABLEN
...........................................
265
5.3.4
WICHTIGE
MITGLIEDER
DER
DATETIME-STRUKTUR
.............................................
266
5.3.5
KONVERTIEREN
VON
DATUMSTRINGS
IN
DATETIME-WERTE
...............................
267
5.3.6
DIE
TIMESPAN-STRUKTUR
..............................................................................
267
5.3.7
DATEONLY
UND
TIMEONLY
............................................................................
269
5.4
MATHEMATISCHE
FUNKTIONEN
....................................................................................
270
5.4.1
UEBERBLICK
...................................................................................................
270
5.4.2
ZAHLEN
RUNDEN
...........................................................................................
270
5.4.3
WINKEL
UMRECHNEN
.....................................................................................
271
5.4.4
POTENZ
UND
WURZELOPERATIONEN
................................................................
271
5.4.5
LOGARITHMUS
UND
EXPONENTIALFUNKTIONEN
.................................................
271
5.4.6
ZUFALLSZAHLEN
ERZEUGEN
..............................................................................
272
5.4.7
KREISBERECHNUNG
.......................................................................................
273
5.5
ZAHLEN-UND
DATUMSFORMATIERUNGEN
......................................................................
273
5.5.1
ANWENDEN
DER
TOSTRING-METHODE
..............................................................
274
5.5.2
ANWENDEN
DER
FORMAT-METHODE
................................................................
275
5.5.3
STRINGINTERPOLATION
.....................................................................................
276
5.6
PRAXISBEISPIELE
.........................................................................................................
277
5.6.1
ZEICHENKETTEN
VERARBEITEN
..........................................................................
277
5.6.2
ZEICHENKETTEN
MIT
STRINGBUILDER
ADDIEREN
...............................................
280
5.6.3
METHODENAUFRUFE
MIT
ARRAY-PARAMETERN
...................................................
283
6
WEITERE
SPRACHFEATURES
.......................................................................
289
6.1
NAMESPACES
(NAMENSRAEUME)
..................................................................................
289
6.1.1
EIN
KLEINER
UEBERBLICK
...............................................................................
289
6.1.2
EINEN
EIGENEN
NAMESPACE
EINRICHTEN
........................................................
290
6.1.3
DIE
USING-ANWEISUNG
.................................................................................
292
6.1.4
NAMESPACE
ALIAS
.......................................................................................
293
6.1.5
GLOBALE
USING-ANWEISUNGEN
......................................................................
293
6.2
OPERATORENUEBERLADUNG
.............................................................................................
294
6.2.1
SYNTAXREGELN
...............................................................................................
294
6.2.2
PRAKTISCHE
ANWENDUNG
..............................................................................
295
6.3
COLLECTIONS
(AUFLISTUNGEN)
.......................................................................................
296
6.3.1
DIE
SCHNITTSTELLE
LENUMERABLE
..................................................................
296
6.3.2
ARRAYLIST
.....................................................................................................
299
6.3.3
HASHTABLE
...................................................................................................
300
6.3.4
INDEXER
.......................................................................................................
301
6.4
GENERICS
...................................................................................................................
303
6.4.1
GENERICS
BIETEN
TYPSICHERHEIT
..................................................................
304
6.4.2
GENERISCHE
METHODEN
................................................................................
305
6.4.3
YIELD
-
ITERATOREN
........................................................................................
306
6.5
GENERISCHE
COLLECTIONS
............................................................................................
306
6.5.1
LIST-COLLECTION
STATT
ARRAYLIST
....................................................................
306
6.5.2
VORTEILE
GENERISCHER
COLLECTIONS
................................................................
308
6.5.3
CONSTRAINTS
.................................................................................................
308
6.6
DAS
PRINZIP
DER
DELEGATES
........................................................................................
309
6.6.1
DELEGATES
SIND
METHODENZEIGER
................................................................
309
6.6.2
EINEN
DELEGATE-TYP
DEKLARIEREN
................................................................
310
6.6.3
EIN
DELEGATE-OBJEKT
ERZEUGEN
....................................................................
310
6.6.4
ANONYME
METHODEN
....................................................................................
312
6.6.5
LAMBDA-AUSDRUECKE
....................................................................................
313
6.6.6
LAMBDA-AUSDRUECKE
IN
DER
TASK
PARALLEL
LIBRARY
.....................................
316
6.6.7
ACTIONO
UND
FUNC
..................................................................................
317
6.7
DYNAMISCHE
PROGRAMMIERUNG
................................................................................
319
6.7.1
WOZU
DYNAMISCHE
PROGRAMMIERUNG?
..................................................
319
6.7.2
DAS
PRINZIP
DER
DYNAMISCHEN
PROGRAMMIERUNG
.....................................
320
6.7.3
OPTIONALE
PARAMETER
SIND
HILFREICH
...........................................................
322
6.7.4
KOVARIANZ
UND
KONTRAVARIANZ
....................................................................
323
6.8
WEITERE
DATENTYPEN
.................................................................................................
324
6.8.1
BIGLNTEGER
...................................................................................................
324
6.8.2
COMPLEX
.....................................................................................................
326
6.8.3
TUPLEO
.......................................................................................................
327
6.8.4
SORTEDSETO
.................................................................................................
328
6.9
PRAXISBEISPIELE
.........................................................................................................
329
6.9.1
ARRAYLIST
VERSUS
GENERISCHE
LIST
..............................................................
329
6.9.2
GENERISCHE
LENUMERABLE-INTERFACES
IMPLEMENTIEREN
...............................
332
6.9.3
DELEGATES,
FUNC,
ANONYME
METHODEN,
LAMBDA
EXPRESSIONS
.....................
336
7
EINFUEHRUNG
IN
LINQ
...............................................................................
341
7.1
LINQ-GRUNDLAGEN
.....................................................................................................
341
7.1.1
DIE
LINQ-ARCHITEKTUR
..................................................................................
341
7.1.2
ANONYME
TYPEN
..........................................................................................
343
7.1.3
ERWEITERUNGSMETHODEN
..............................................................................
344
7.2
ABFRAGEN
MIT
LINO
TO
OBJECTS
..................................................................................
345
7.2.1
GRUNDLEGENDES
ZUR
LINQ-SYNTAX
..............................................................
346
7.2.2
ZWEI
ALTERNATIVE
SCHREIBWEISEN
VON
LINQ-ABFRAGEN
...............................
347
7.2.3
UEBERSICHT
DER
WICHTIGSTEN
ABFRAGEOPERATOREN
.........................................
348
7.3
LINQ-ABFRAGEN
IM
DETAIL
.........................................................................................
349
7.3.1
DIE
PROJEKTIONSOPERATOREN
SELECT
UND
SELECTMANY
...................................
350
7.3.2
DER
RESTRIKTIONSOPERATOR
WHERE
................................................................
351
7.3.3
DIE
SORTIERUNGSOPERATOREN
ORDERBY
UND
THENBY
.....................................
352
7.3.4
DER
GRUPPIERUNGSOPERATOR
GROUPBY
........................................................
353
7.3.5
VERKNUEPFEN
MIT
JOIN
....................................................................................
356
7.3.6
AGGREGAT-OPERATOREN
..................................................................................
356
7.3.7
VERZOEGERTES
AUSFUEHREN
VON
LINQ-ABFRAGEN
.............................................
358
7.3.8
KONVERTIERUNGSMETHODEN
..........................................................................
359
7.3.9
ABFRAGEN
MIT
PLINQ....................................................................................
360
7.4
PRAXISBEISPIELE
.........................................................................................................
363
7.4.1
DIE
SYNTAX
VON
LINQ-ABFRAGEN
VERSTEHEN
.................................................
363
7.4.2
AGGREGAT-ABFRAGEN
MIT
LINQ
....................................................................
366
7.4.3
LINQ
IM
SCHNELLDURCHGANG
ERLERNEN
........................................................
369
7.4.4
STRINGS
MIT
LINQ
ABFRAGEN
UND
FILTERN
......................................................
371
7.4.5
DUPLIKATE
AUS
EINER
LISTE
ENTFERNEN
..........................................................
373
7.4.6
ARRAYS
MIT
LINQ
INITIALISIEREN
..................................................................
375
7.4.7
ARRAYS
PER
LINQ
MIT
ZUFALLSZAHLEN
FUELLEN
.................................................
377
7.4.8
EINEN
STRING
MIT
WIEDERHOLMUSTER
ERZEUGEN
...........................................
379
7.4.9
MIT
LINQ
ZAHLEN
UND
STRINGS
SORTIEREN
.....................................................
380
7.4.10
MIT
LINQ
COLLECTIONS
VON
OBJEKTEN
SORTIEREN
...........................................
382
7.4.11
WHERE
-
DEEP
DIVE
...................................................................................
384
8
NEUERUNGEN
VON
C#
IM
UEBERBLICK
......................................................
393
8.1
C#
4.0
-VISUAL
STUDIO
2010
...................................................................................
394
8.1.1
DATENTYP
DYNAMIC
.....................................................................................
394
8.1.2
BENANNTE
UND
OPTIONALE
PARAMETER
..........................................................
395
8.1.3
KOVARIANZ
UND
KONTRAVARIANZ
....................................................................
396
8.2
C#
5.0
-VISUAL
STUDIO
2012
...................................................................................
396
8.2.1
ASYNC
UND
AWAIT
.......................................................................................
397
8.2.2
CALLERLNFO
...................................................................................................
398
8.3
VISUAL
STUDIO
2013
...................................................................................................
399
8.4
C#
6.0
-VISUAL
STUDIO
2015
...................................................................................
399
8.4.1
STRING
INTERPOLATION
...................................................................................
399
8.4.2
SCHREIBGESCHUETZTE
AUTOPROPERTIES
............................................................
399
8.4.3
INITIALISIERER
FUER
AUTOPROPERTIES
................................................................
400
8.4.4
EXPRESSION
BODY
MEMBER
..........................................................................
400
8.4.5
USING
STATIC
.................................................................................................
400
8.4.6
BEDINGTER
NULLOPERATOR
..............................................................................
401
8.4.7
AUSNAHMENFILTER
.........................................................................................
402
8.4.8
NAMEOF-AUSDRUECKE
.....................................................................................
402
8.4.9
AWAIT
IN
CATCH
UND
FINALLY
..........................................................................
403
8.4.10
INDEXINITIALISIERER
.....................................................................................
403
8.5
C#
7.0
-VISUAL
STUDIO
2017
....................................................................................
403
8.5.1
OUT-VARIABLEN
..............................................................................................
403
8.5.2
TUPEL
...........................................................................................................
404
8.5.3
MUSTERVERGLEICH
..........................................................................................
405
8.5.4
DISCARDS
......................................................................................................
406
8.5.5
LOKALE
REF-VARIABLEN
UND
RUECKGABETYPEN
.................................................
407
8.5.6
LOKALE
FUNKTIONEN
......................................................................................
407
8.5.7
MEHR
EXPRESSION
BODY
MEMBER
................................................................
407
8.5.8
THROW-AUSDRUECKE
........................................................................................
408
8.5.9
VERBESSERUNG
DER
NUMERISCHEN
LITERALEN
SYNTAX
.....................................
408
8.6
C#
7.1
BIS
7.3
-VISUAL
STUDIO
2019
.........................................................................
408
8.6.1
C#7.1
.........................................................................................................
408
8.6.2
C#
7.2
.........................................................................................................
410
8.6.3
C#
7.3
.........................................................................................................
411
8.6.4
VISUAL
STUDIO
2019
-
LIVE
SHARE
...............................................................
411
8.7
C#
8.0
........................................................................................................................
414
8.7.1
STANDARDSCHNITTSTELLENMETHODEN
..............................................................
414
8.7.2
VEREINFACHUNG
VON
SWITCH-AUSDRUECKEN
.....................................................
416
8.7.3
EIGENSCHAFTENMUSTER
..................................................................................
417
8.7.4
VEREINFACHTE
USING-RESSOURCENSCHUTZBLOECKE
...........................................
417
8.7.5
NULL-COALESCING-ZUWEISUNGEN
..................................................................
418
8.7.6
NULLABLE
REFERENZTYPEN
..............................................................................
419
8.7.7
INDIZES
UND
BEREICHE
..................................................................................
420
8.7.8
WEITERE
SPRACHNEUERUNGEN
........................................................................
421
8.8
C#
9.0
........................................................................................................................
422
8.8.1
RECORDS
.......................................................................................................
422
8.8.2
INIT-ONLY
SETTER
............................................................................................
422
8.8.3
WEITERE
VERBESSERUNGEN
IN
MUSTERAUSDRUECKEN
.......................................
422
8.8.4
WEITERE
SPRACHNEUERUNGEN
........................................................................
423
8.9
C#
10
..........................................................................................................................
423
8.9.1
DATENSATZSTRUKTUREN
..................................................................................
423
8.9.2
GLOBALE
USING-ANWEISUNGEN
......................................................................
423
8.9.3
WEITERE
SPRACHNEUERUNGEN
........................................................................
424
TEIL
II:
DESKTOP-ANWENDUNGEN
...................................................................
425
9
EINFUEHRUNG
IN
WPF
.................................................................................
427
9.1
EINFUEHRUNG
...............................................................................................................
427
9.1.1
WAS
KANN
EINE
WPF-ANWENDUNG?
............................................................
428
9.1.2
DIE
EXTENSIBLE
APPLICATION
MARKUP
LANGUAGE
.........................................
430
9.1.3
UNSERE
ERSTE
XAML-ANWENDUNG
..............................................................
431
9.1.4
ZIELPLATTFORMEN
............................................................................................
437
9.1.5
APPLIKATIONSTYPEN
......................................................................................
437
9.1.6
VOR
UND
NACHTEILE
VON
WPF-ANWENDUNGEN
.............................................
438
9.1.7
WEITERE
DATEIEN
IM
UEBERBLICK
....................................................................
439
9.2
ALLES
BEGINNT
MIT
DEM
LAYOUT
..................................................................................
441
9.2.1
ALLGEMEINES
ZUM
LAYOUT
............................................................................
441
9.2.2
POSITIONIEREN
VON
STEUERELEMENTEN
...........................................................
443
9.2.3
CANVAS
.........................................................................................................
446
9.2.4
STACKPANEL
.................................................................................................
447
9.2.5
DOCKPANEL
...................................................................................................
449
9.2.6
WRAPPANEL
...................................................................................................
451
9.2.7
UNIFORMGRID
...............................................................................................
452
9.2.8
GRID
.............................................................................................................
453
9.2.9
VIEWBOX
.....................................................................................................
458
9.2.10
TEXTBLOCK
.....................................................................................................
459
9.3
DAS
WPF-PROGRAMM
.................................................................................................
463
9.3.1
DIE
APP-KLASSE
...........................................................................................
463
9.3.2
DAS
STARTOBJEKT
FESTLEGEN
............................................................................
463
9.3.3
KOMMANDOZEILENPARAMETER
VERARBEITEN
...................................................
465
9.3.4
DIE
ANWENDUNG
BEENDEN
..........................................................................
466
9.3.5
AUSWERTEN
VON
ANWENDUNGSEREIGNISSEN
.................................................
466
9.4
DIE
WINDOW-KLASSE
.................................................................................................
467
9.4.1
POSITION
UND
GROESSE
FESTLEGEN
....................................................................
468
9.4.2
RAHMEN
UND
BESCHRIFTUNG
........................................................................
468
9.4.3
DAS
FENSTER-ICON
AENDERN
............................................................................
468
9.4.4
ANZEIGE
WEITERER
FENSTER
............................................................................
469
9.4.5
TRANSPARENZ
...............................................................................................
469
9.4.6
ABSTAND
ZUM
INHALT
FESTLEGEN
....................................................................
470
9.4.7
FENSTER
OHNE
FOKUS
ANZEIGEN
....................................................................
470
9.4.8
EREIGNISFOLGE
BEI
FENSTERN
..........................................................................
471
9.4.9
EIN
PAAR
WORTE
ZUR
SCHRIFTDARSTELLUNG
......................................................
471
9.4.10
EIN
PAAR
WORTE
ZUR
DARSTELLUNG
VON
CONTROLS
............................................
474
9.4.11
WIRD
MEIN
FENSTER
KOMPLETT
MIT
WPF
GERENDERT?
....................................
475
10
UEBERSICHT
WPF-CONTROLS
......................................................................
477
10.1
ALLGEMEINGUELTIGE
EIGENSCHAFTEN
............................................................................
477
10.2
LABEL
......................................................................................................................
479
10.3
BUTTON,
REPEATBUTTON,
TOGGLEBUTTON
....................................................................
480
10.3.1
SCHALTFLAECHEN
FUER
MODALE
DIALOGE
..........................................................
480
10.3.2
SCHALTFLAECHEN
MIT
GRAFIK
..........................................................................
482
10.4
TEXTBOX,
PASSWORDBOX
...........................................................................................
483
10.4.1
TEXTBOX
.....................................................................................................
483
10.4.2
PASSWORDBOX
...........................................................................................
485
10.5
CHECKBOX
..............................................................................................................
486
10.6
RADIOBUTTON
...........................................................................................................
488
10.7
LISTBOX,
COMBOBOX.................................................................................................
489
10.7.1
LISTBOX
.....................................................................................................
489
10.7.2
COMBOBOX
................................................................................................
492
10.7.3
DEN
CONTENT
FORMATIEREN
........................................................................
494
10.8
IMAGE
.......................................................................................................................
496
10.8.1
GRAFIK
PER
XAML
ZUWEISEN
....................................................................
496
10.8.2
GRAFIK
ZUR
LAUFZEIT
ZUWEISEN
..................................................................
496
10.8.3
BILD
AUS
DATEI
LADEN
..........................................................................
498
10.8.4
DIE
GRAFIKSKALIERUNG
BEEINFLUSSEN
..........................................................
499
10.9
SLIDER,
SCROLLBAR
.....................................................................................................
500
10.9.1
SLIDER
.......................................................................................................
500
10.9.2
SCROLLBAR
...................................................................................................
502
10.10
SCROLLVIEWER
...........................................................................................................
502
10.11
MENU,
CONTEXTMENU
..............................................................................................
503
10.11.1
MENU
.......................................................................................................
504
10.11.2
TASTENKUERZEL
............................................................................................
505
10.11.3
GRAFIKEN
...................................................................................................
506
10.11.4
WEITERE
MOEGLICHKEITEN
............................................................................
507
10.11.5
CONTEXTMENU
............................................................................................
508
10.12
TOOLBAR
...................................................................................................................
509
10.13
STATUSBAR,
PROGRESSBAR
..........................................................................................
512
10.13.1
STATUSBAR
.................................................................................................
512
10.13.2
PROGRESSBAR
.............................................................................................
514
10.14
BORDER,
GROUPBOX,
BULLETDECORATOR
......................................................................
514
10.14.1
BORDER
.......................................................................................................
515
10.14.2
GROUPBOX
.................................................................................................
516
10.14.3
BULLETDECORATOR
........................................................................................
517
10.15
EXPANDER,
TABCONTROL
............................................................................................
519
10.15.1
EXPANDER
.................................................................................................
519
10.15.2
TABCONTROL
................................................................................................
521
10.16
POPUP
.......................................................................................................................
522
10.17
TREEVIEW
.................................................................................................................
525
10.18
LISTVIEW
...................................................................................................................
529
10.19
DATAGRID
.................................................................................................................
529
10.20
CALENDAR/DATEPICKER
.............................................................................................
530
10.21
ELLIPSE,
RECTANGLE,
LINE
UND
CO
...............................................................................
534
10.21.1
ELLIPSE
.......................................................................................................
534
10.21.2
RECTANGLE
.................................................................................................
535
10.21.3
LINE
...........................................................................................................
536
11
WICHTIGE
WPF-TECHNIKEN
...................................................................
537
11.1
EIGENSCHAFTEN
.........................................................................................................
537
11.1.1
ABHAENGIGE
EIGENSCHAFTEN
(DEPENDENCY
PROPERTIES)
.............................
537
11.1.2
ANGEHAENGTE
EIGENSCHAFTEN
(ATTACHED
PROPERTIES)
.................................
539
11.2
EINSATZ
VON
RESSOURCEN
.........................................................................................
539
11.2.1
WAS
SIND
EIGENTLICH
RESSOURCEN?
............................................................
539
11.2.2
WO
KOENNEN
RESSOURCEN
GESPEICHERT
WERDEN?
.......................................
540
11.2.3
WIE
DEFINIERE
ICH
EINE
RESSOURCE?
..........................................................
541
11.2.4
STATISCHE
UND
DYNAMISCHE
RESSOURCEN
..................................................
542
11.2.5
WIE
WERDEN
RESSOURCEN
ADRESSIERT?
.......................................................
544
11.2.6
SYSTEMRESSOURCENEINBINDEN
..................................................................
545
11.3
DAS
WPF-EREIGNISMODELL
........................................................................................
545
11.3.1
EINFUEHRUNG
...............................................................................................
545
11.3.2
ROUTED
EVENTS
.........................................................................................
546
11.3.3
DIREKTE
EVENTS
.........................................................................................
549
11.4
VERWENDUNG
VON
COMMANDS
................................................................................
549
11.4.1
EINFUEHRUNG
ZU
COMMANDS
......................................................................
549
11.4.2
VERWENDUNG
VORDEFINIERTER
COMMANDS
.................................................
550
11.4.3
DAS
ZIEL
DES
COMMANDS
..........................................................................
552
11.4.4
VORDEFINIERTE
COMMANDS
........................................................................
553
11.4.5
COMMANDS
AN
EREIGNISMETHODEN
BINDEN
...............................................
553
11.4.6
WIE
KANN
ICH
EIN
COMMAND
PER
CODE
AUSLOESEN?
...................................
554
11.4.7
COMMAND
AUSFUEHRUNG
VERHINDERN
........................................................
555
11.5
DAS
WPF-STYLE-SYSTEM
...........................................................................................
555
11.5.1
UEBERSICHT
.................................................................................................
555
11.5.2
BENANNTE
STYLES
.......................................................................................
556
11.5.3
TYP-STYLES
.................................................................................................
558
11.5.4
STYLES
ANPASSEN
UND
VERERBEN
................................................................
559
11.6
VERWENDEN
VON
TRIGGERN
.......................................................................................
561
11.6.1
EIGENSCHAFTEN-TRIGGER
(PROPERTY
TRIGGERS)
.............................................
562
11.6.2
EREIGNIS-TRIGGER
.......................................................................................
564
11.6.3
DATEN-TRIGGER
...........................................................................................
565
11.7
EINSATZ
VON
TEMPLATES
..........................................................................................
566
11.7.1
NEUES
TEMPLATE
ERSTELLEN
........................................................................
566
11.7.2
TEMPLATE
ABRUFEN
UND
VERAENDERN
..........................................................
570
11.8
TRANSFORMATIONEN,
ANIMATIONEN,
STORYBOARDS
......................................................
573
11.8.1
TRANSFORMATIONEN
...................................................................................
573
11.8.2
ANIMATIONEN
MIT
DEM
STORYBOARD
REALISIEREN
.......................................
578
TEIL
III:
TECHNOLOGIEN
....................................................................................
585
12
WPF-DATENBINDUNG
.............................................................................
587
12.1
GRUNDPRINZIP
........................................................................................................
587
12.1.1
BINDUNGSARTEN
.........................................................................................
588
12.1.2
WANN
EIGENTLICH
WIRD
DIE
QUELLE
AKTUALISIERT?
.......................................
590
12.1.3
GEHT
ES
AUCH
ETWAS
LANGSAMER?
..............................................................
591
12.1.4
BINDUNG
ZUR
LAUFZEIT
REALISIEREN
............................................................
592
12.2
BINDEN
AN
OBJEKTE
..................................................................................................
593
12.2.1
OBJEKTE
IM
XAML-CODE
INSTANZIIEREN
...................................................
594
12.2.2
VERWENDEN
DER
INSTANZ
IM
C#-QUELLCODE
...............................................
595
12.2.3
ANFORDERUNGEN
AN
DIE
QUELL-KLASSE
.......................................................
596
12.2.4
INSTANZIIEREN
VON
OBJEKTEN
PER
C#-CODE
...............................................
597
12.3
BINDEN
VON
COLLECTIONS
..........................................................................................
599
12.3.1
ANFORDERUNG
AN
DIE
COLLECTION
................................................................
599
12.3.2
EINFACHE
ANZEIGE
......................................................................................
600
12.3.3
NAVIGIEREN
ZWISCHEN
DEN
OBJEKTEN
.........................................................
601
12.3.4
EINFACHE
ANZEIGE
IN
EINER
LISTBOX
...........................................................
603
12.3.5
DATATEMPLATES
ZUR
ANZEIGEFORMATIERUNG
...............................................
604
12.3.6
MEHR
ZU
LIST
UND
COMBOBOX
..................................................................
605
12.3.7
VERWENDUNG
DER
LISTVIEW
......................................................................
607
12.4
NOCH
EINMAL
ZURUECK
ZU
DEN
DETAILS
......................................................................
610
12.4.1
NAVIGIEREN
IN
DEN
DATEN
..........................................................................
610
12.4.2
SORTIEREN
..................................................................................................
612
12.4.3
FILTERN
.......................................................................................................
612
12.4.4
LIVE
SHAPING
............................................................................................
613
12.5
ANZEIGE
VON
DATENBANKINHALTEN
............................................................................
615
12.5.1
INSTALLIEREN
DER
BENOETIGTEN
NUGET-PAKETE
...............................................
615
12.5.2
ANLEGEN
DER
ENTITAETSKLASSEN
..................................................................
616
12.5.3
DIE
PROGRAMMOBERFLAECHE
........................................................................
619
12.5.4
DER
ZUGRIFF
AUF
DIE
DATEN
........................................................................
620
12.6
FORMATIEREN
VON
WERTEN
........................................................................................
623
12.6.1
IVALUECONVERTER
........................................................................................
623
12.2.6
BINDINGBASE.STRINGFORMAT-EIGENSCHAFT
.................................................
625
12.7
DAS
DATAGRID
ALS
UNIVERSALWERKZEUG
....................................................................
626
12.7.1
GRUNDLAGEN
DER
ANZEIGE
..........................................................................
626
12.7.2
UL-VIRTUALISIERUNG
....................................................................................
628
12.7.3
SPALTEN
SELBST
DEFINIEREN
........................................................................
628
12.7.4
ZUSATZINFORMATIONEN
IN
DEN
ZEILEN
ANZEIGEN
.........................................
630
12.7.5
VOM
BETRACHTEN
ZUM
EDITIEREN
..............................................................
632
12.8
PRAXISBEISPIEL
-
COLLECTIONS
IN
HINTERGRUNDTHREADS
FUELLEN
.................................
632
13
.NET
MAUI
.............................................................................................
637
13.1
EINFUEHRUNG
.............................................................................................................
637
13.2
WAS
KANN
EINE
.NET-MAUI-ANWENDUNG?
..............................................................
639
13.3
DIE
ERSTE
.NET
MAUI
APP
......................................................................................
640
14
ASYNCHRONE
PROGRAMMIERUNG
............................................................
647
14.1
UEBERSICHT
................................................................................................................
648
14.1.1
MULTITASKING
VERSUS
MULTITHREADING
.......................................................
648
14.1.2
DEADLOCKS
.................................................................................................
649
14.1.3
RACING
.......................................................................................................
650
14.2
PROGRAMMIEREN
MIT
THREADS
..................................................................................
651
14.2.1
EINFUEHRUNGSBEISPIEL
................................................................................
651
14.2.2
WICHTIGE
THREAD-METHODEN
....................................................................
653
14.2.3
WICHTIGE
THREAD-EIGENSCHAFTEN
..............................................................
655
14.2.4
EINSATZ
DER
THREADPOOL-KLASSE
..............................................................
656
14.3
SPERRMECHANISMEN
...............................................................................................
657
14.3.1
THREADING
OHNE
LOCK
................................................................................
658
14.3.2
THREADING
MIT
LOCK
..................................................................................
659
14.3.3
DIE
MONITOR-KLASSE
..................................................................................
662
14.3.4
MUTEX
.......................................................................................................
666
14.3.5
METHODEN
FUER
DIE
PARALLELE
AUSFUEHRUNG
SPERREN
...................................
667
14.3.6
SEMAPHORE
...............................................................................................
668
14.4
INTERAKTION
MIT
DER
PROGRAMMOBERFLAECHE
............................................................
670
14.4.1
DIE
WERKZEUGE
.........................................................................................
671
14.4.2
EINZELNE
STEUERELEMENTE
MIT
INVOKE
AKTUALISIEREN
(WINDOWS
FORMS)
.
671
14.4.3
MEHRERE
STEUERELEMENTE
AKTUALISIEREN
...................................................
672
14.4.4
IST
EIN
INVOKE-AUFRUF
NOETIG?
....................................................................
673
14.4.5
UND
WAS
IST
MIT
WPF?
..............................................................................
673
14.5
TIMER-THREADS
.......................................................................................................
675
14.6
ASYNCHRONE
PROGRAMMIERENTWURFSMUSTER
..........................................................
677
14.6.1
KURZUEBERSICHT
.........................................................................................
677
14.6.2
POLLING
.....................................................................................................
678
14.6.3
CALLBACK
VERWENDEN
................................................................................
680
14.6.4
CALLBACK
MIT
PARAMETERUEBERGABE
VERWENDEN
.......................................
681
14.6.5
CALLBACK
MIT
ZUGRIFF
AUF
DIE
PROGRAMMOBERFLAECHE
...............................
682
14.7
ES
GEHT
AUCH
EINFACHER
-
ASYNC
UND
AWAIT
............................................................
684
14.7.1
DER
WEG
VON
SYNCHRON
ZU
ASYNCHRON
....................................................
684
14.7.2
ACHTUNG:
FEHLERQUELLEN!
..........................................................................
686
14.7.3
EIGENE
ASYNCHRONE
METHODEN
ENTWICKELN
.............................................
689
14.8
ASYNCHRONE
STREAMS
.............................................................................................
691
14.8.1
DATEI
ERSTELLEN
.........................................................................................
691
14.8.2
DATEI
LESEN
MIT
IASYNCENUMERABLE T
.................................................
693
14.9
PRAXISBEISPIELE
.......................................................................................................
694
14.9.1
PROZESS-UND
THREAD-INFORMATIONEN
GEWINNEN
.....................................
694
14.9.2
EIN
EXTERNES
PROGRAMM
STARTEN
..............................................................
697
15
DIE
TASK
PARALLEL
LIBRARY
.....................................................................
701
15.1
UEBERBLICK
..............................................................................................................
701
15.1.1
PARALLEL-PROGRAMMIERUNG
........................................................................
701
15.1.2
MOEGLICHKEITEN
DER
TPL
............................................................................
704
15.1.3
DER
CLR-THREADPOOL
...............................................................................
705
15.2
PARALLELE
VERARBEITUNG
MIT
PARALLEL.INVOKE
..........................................................
706
15.2.1
AUFRUFVARIANTEN
.......................................................................................
706
15.2.2
EINSCHRAENKUNGEN
...................................................................................
708
15.3
VERWENDUNG
VON
PARALLEL.FOR
................................................................................
709
15.3.1
ABBRECHEN
DER
VERARBEITUNG
..................................................................
710
15.3.2
AUSWERTEN
DES
VERARBEITUNGSSTATUS
.......................................................
712
15.3.3
UND
WAS
IST
MIT
ANDEREN
ITERATOR-SCHRITTWEITEN?
..................................
713
15.4
COLLECTIONS
MIT
PARALLEL.FOREACH
VERARBEITEN
.......................................................
713
15.5
DIE
TASK-KLASSE
.......................................................................................................
714
15.5.1
EINEN
TASK
ERZEUGEN
................................................................................
714
15.5.2
DEN
TASK
STARTEN
......................................................................................
715
15.5.3
DATENUEBERGABE
AN
DEN
TASK
....................................................................
717
15.5.4
WIE
WARTE
ICH
AUF
DAS
ENDE
DES
TASKS?
................................................
718
15.5.5
TASKS
MIT
RUECKGABEWERTEN
....................................................................
720
15.5.6
DIE
VERARBEITUNG
ABBRECHEN
..................................................................
723
15.5.7
FEHLERBEHANDLUNG
....................................................................................
728
15.5.8
WEITERE
EIGENSCHAFTEN
............................................................................
729
15.6
ZUGRIFF
AUF
DAS
USER
INTERFACE
................................................................................
730
15.6.1
TASK-ENDE
UND
ZUGRIFF
AUF
DIE
OBERFLAECHE
.............................................
730
15.6.2
ZUGRIFF
AUF
DAS
UI
AUS
DEM
TASK
HERAUS
.................................................
732
15.7
WEITERE
DATENSTRUKTUREN
IM
UEBERBLICK
................................................................
734
15.7.1
THREADSICHERE
COLLECTIONS
......................................................................
734
15.7.2
PRIMITIVE
FUER
DIE
THREADSYNCHRONISATION
...............................................
734
15.8
PARALLEL
LINQ
(PLINQ)
............................................................................................
735
15.9
PRAXISBEISPIELE
.......................................................................................................
735
15.9.1
BLOCKINGCOLLECTION
..................................................................................
735
15.9.2
PLINQ
.......................................................................................................
739
16
DEBUGGING,
FEHLERSUCHE
UND
FEHLERBEHANDLUNG
............................
741
16.1
DER
DEBUGGER
.........................................................................................................
741
16.1.1
ALLGEMEINE
BESCHREIBUNG
......................................................................
741
16.1.2
DIE
WICHTIGSTEN
FENSTER
..........................................................................
742
16.1.3
DEBUGGING-OPTIONEN
................................................................................
746
16.1.4
PRAKTISCHES
DEBUGGING
AM
BEISPIEL
.......................................................
749
16.2
ARBEITEN
MIT
DEBUG
UND
TRACE
..............................................................................
754
16.2.1
WICHTIGE
METHODEN
VON
DEBUG
UND
TRACE
.............................................
754
16.2.2
BESONDERHEITEN
DER
TRACE-KLASSE
..........................................................
758
16.2.3
TRACELISTENER-OBJEKTE
..............................................................................
758
16.3
CALLER
INFORMATION
.................................................................................................
760
16.3.1
ATTRIBUTE
...................................................................................................
761
16.3.2
ANWENDUNG
..............................................................................................
761
16.4
FEHLERBEHANDLUNG
.................................................................................................
762
16.4.1
ANWEISUNGEN
ZUR
FEHLERBEHANDLUNG
.....................................................
762
16.4.2
TRY-CATCH
...................................................................................................
763
16.4.3
TRY-FINALLY
.................................................................................................
767
16.4.4
DAS
STANDARDVERHALTEN
BEI
AUSNAHMEN
FESTLEGEN
.................................
769
16.4.5
DIE
EXCEPTION
-KLASSE
................................................................................
770
16.4.6
FEHLER/AUSNAHMEN
AUSLOESEN
..................................................................
771
16.4.7
EIGENE
FEHLERKLASSEN
..............................................................................
771
16.4.8
EXCEPTIONHANDLING
ZUR
DEBUGZEIT
..........................................................
773
17
ENTITY
FRAMEWORK
CORE
6.0
.................................................................
775
17.1
UEBERBLICK
...............................................................................................................
775
17.1.1
OBJEKTRELATIONALER
MAPPER
(ORM)
..........................................................
776
17.1.2
PROVIDER
...................................................................................................
778
17.1.3
RELATIONALE
BEZIEHUNGEN
........................................................................
779
17.1.4
BENOETIGTE
NUGET-PAKETE
..........................................................................
782
17.2
CODEFIRST
.................................................................................................................
783
17.2.1
CODEFIRST
AUS
MODEL
................................................................................
784
17.2.2
CODEFIRST
MITTELS
REVERSEENGINEERING
VON
BESTEHENDER
DATENBANK
...
793
17.3
MIGRATIONEN
...........................................................................................................
798
17.3.1
INITIALE
MIGRATION
BEI
REVERSEENGINEERING
...........................................
798
17.3.2
WEITERE
MIGRATIONEN
................................................................................
800
17.4
LESEN
UND
SCHREIBEN
VON
DATEN
MIT
EF
CORE
6
.....................................................
802
17.5
PRAXISBEISPIELE
.......................................................................................................
806
17.5.1
DATEN
MIT
EF
CORE
6
LADEN
UND
ALS
JSON
SPEICHERN
.............................
806
17.5.2
EINE
DATENBANK
MIT
EF
CORE
6
ANLEGEN
UND
TESTDATEN
GENERIEREN
UNDANZEIGEN
...........................................................................................
815
TEIL
IV:
WEBANWENDUNGEN
............................................................................
823
18
WEBANWENDUNGEN
MIT
ASP.NET
CORE
................................................
825
18.1
GRUNDLAGEN
............................................................................................................
826
18.2
RAZOR
PAGES
............................................................................................................
829
18.2.1
PROJEKTAUFBAU
.........................................................................................
829
18.2.2
RAZOR-SYNTAX
...........................................................................................
833
18.2.3
LAYOUT-VORLAGEN
.......................................................................................
838
18.2.4
MODELLE
FUER
RAZOR
PAGES
..........................................................................
842
18.2.5
MIT
FORMULAREN
ARBEITEN
........................................................................
843
18.3
MVC
........................................................................................................................
850
18.3.1
PROJEKTAUFBAU
.........................................................................................
851
18.3.2
ACTION-METHODEN
.....................................................................................
852
18.3.3
ZUSTANDSMANAGEMENT
............................................................................
864
18.4
PRAXISBEISPIELE
.......................................................................................................
869
18.4.1
CRUD
MIT
ENTITY
FRAMEWORK
..................................................................
869
18.4.2
AUTHENTIFIZIERUNG
UND
AUTORISIERUNG
....................................................
885
19
ASP.NET
WEB
API
.................................................................................
893
19.1
REST
......................................................................................................................
893
19.2
VORLAGEN
................................................................................................................
897
19.3
DATEN
LESEN
.............................................................................................................
903
19.4
DATEN
SCHREIBEN,
AKTUALISIEREN,
LOESCHEN
...............................................................
912
19.5
MINIMALE
APIS
.......................................................................................................
921
19.6
PRAXISBEISPIELE
.......................................................................................................
925
19.6.1
PAGINIERUNG
..............................................................................................
925
19.6.2
XML
STATT
JSON
........................................................................................
927
19.6.3
CORS
.........................................................................................................
928
20
BLAZOR
...................................................................................................
933
20.1
HOSTING-MODELLE
......................................................................................................
934
20.2
PROJEKTVORLAGEN
.....................................................................................................
937
20.3
BLAZOR-KOMPONENTEN
..............................................................................................
946
20.3.1
CODE
IN/FUER
KOMPONENTEN
......................................................................
946
20.3.2
EVENT-HANDLING
........................................................................................
949
20.3.3
DATENBINDUNG
..........................................................................................
953
20.4
SERVICES
UND
APIS
AUFRUFEN
..................................................................................
955
20.5
WEITERE
BLAZOR-FEATURES
..........................................................................................
961
20.5.1
ZUSTANDSMANAGEMENT
............................................................................
961
20.5.2
JAVASCRIPT-INTEROPERABILITAET
....................................................................
963
20.6
PRAXISBEISPIELE
.......................................................................................................
967
20.6.1
ONLINE-STATUS
ERMITTELN
..........................................................................
967
20.6.2
FILE-UPLOADS
..............................................................................................
972
20.6.3
FEHLERBEHANDLUNG
....................................................................................
974
ANHANG
A:
GLOSSAR
........................................................................................981
ANHANG
B:
WICHTIGE
DATEIENDUNGEN
............................................................
985
INDEX
...............................................................................................................
987
|
adam_txt |
VORWORT
.
XXI
ZUSATZMATERIAL
ONLINE
.
XXIII
TEIL
I:
GRUNDLAGEN
.
1
1
.NET
6
.
3
1.1
MICROSOFTS
.NET-TECHNOLOGIE
.
4
1.1.1
ZURGESCHICHTEVON.NET
.
4
1.1.2
.NET-FEATURES
UND
BEGRIFFE
.
6
1.2
.NET
CORE
.
13
1.2.1
GESCHICHTE
VON
.NET
CORE
.
13
1.2.2
LTS
-
LONG
TERM
SUPPORT
UND
ZUKUENFTIGE
VERSIONEN
.
15
1.2.3
.NET
STANDARD
.
15
1.3
FEATURES
VON
.NET
6
.
16
2
EINSTIEG
IN
VISUAL
STUDIO
2022
.
19
2.1
DIE
INSTALLATION
VON
VISUAL
STUDIO
2022
.
19
2.1.1
UEBERBLICK
UEBER
DIE
PRODUKTPALETTE
.
19
2.1.2
ANFORDERUNGEN
AN
HARD-UND
SOFTWARE
.
20
2.2
UNSER
ALLERERSTES
C#-PROGRAMM
.
21
2.2.1
VORBEREITUNGEN
.
21
2.2.2
QUELLCODE
SCHREIBEN
.
24
2.2.3
PROGRAMM
KOMPILIEREN
UND
TESTEN
.
24
2.2.4
EINIGE
ERLAEUTERUNGEN
ZUM
QUELLCODE
.
25
2.2.5
KONSOLENANWENDUNGEN
SIND
OUT
.
26
2.3
DIE
WINDOWS-PHILOSOPHIE
.
27
2.3.1
MENSCH-RECHNER-DIALOG
.
27
2.3.2
OBJEKT
UND
EREIGNISORIENTIERTE
PROGRAMMIERUNG
.
27
2.3.3
PROGRAMMIEREN
MIT
VISUAL
STUDIO
2022 .
29
2.4
DIE
ENTWICKLUNGSUMGEBUNG
VISUAL
STUDIO
2022
.
30
2.4.1
NEUES
PROJEKT
.
30
2.4.2
DIE
WICHTIGSTEN
FENSTER
.
33
2.4.3
PROJEKTVORLAGEN
IN
VISUAL
STUDIO
2022
-
MINIMAL
APIS
.
36
2.5
PRAXISBEISPIELE
.
37
2.5.1
UNSERE
ERSTE
WINDOWS-FORMS-ANWENDUNG
.
37
2.5.2
UMRECHNUNG
EURO-DOLLAR
.
43
3
GRUNDLAGEN
DER
SPRACHE
C#
.
53
3.1
GRUNDBEGRIFFE
.
53
3.1.1
ANWEISUNGEN
.
53
3.1.2
BEZEICHNER
.
54
3.1.3
SCHLUESSELWOERTER
.
55
3.1.4
KOMMENTARE
.
56
3.2
DATENTYPEN,
VARIABLEN
UND
KONSTANTEN
.
57
3.2.1
FUNDAMENTALE
TYPEN
.
57
3.2.2
WERTETYPEN
VERSUS
VERWEISTYPEN
.
58
3.2.3
BENENNUNG
VON
VARIABLEN
.
59
3.2.4
DEKLARATION
VON
VARIABLEN
.
59
3.2.5
TYPSUFFIXE
.
60
3.2.6
ZEICHEN
UND
ZEICHENKETTEN
.
61
3.2.7
OBJECT-DATENTYP
.
63
3.2.8
KONSTANTEN
DEKLARIEREN
.
64
3.2.9
NULLABLE
TYPES
.
64
3.2.10
TYPINFERENZ
.
66
3.2.11
GUELTIGKEITSBEREICHE
UND
SICHTBARKEIT
.
66
3.3
KONVERTIEREN
VON
DATENTYPEN
.
67
3.3.1
IMPLIZITE
UND
EXPLIZITE
KONVERTIERUNG
.
67
3.3.2
WELCHER
DATENTYP
PASST
ZU
WELCHEM?
.
69
3.3.3
KONVERTIEREN
VON
STRING
.
70
3.3.4
DIE
CONVERT-KLASSE
.
71
3.3.5
DIE
PARSE-METHODE
.
72
3.3.6
BOXING
UND
UNBOXING
.
73
3.4
OPERATOREN
.
74
3.4.1
ARITHMETISCHE
OPERATOREN
.
75
3.4.2
ZUWEISUNGSOPERATOREN
.
77
3.4.3
LOGISCHE
OPERATOREN
.
78
3.4.4
RANGFOLGE
DER
OPERATOREN
.
81
3.5
KONTROLLSTRUKTUREN
.
82
3.5.1
VERZWEIGUNGSBEFEHLE
.
82
3.5.2
SCHLEIFENANWEISUNGEN
.
87
3.6
BENUTZERDEFINIERTE
DATENTYPEN
.
89
3.6.1
ENUMERATIONEN
.
90
3.6.2
STRUKTUREN
.
91
3.7
NUTZERDEFINIERTE
METHODEN
.
93
3.7.1
METHODEN
MIT
RUECKGABEWERT
.
94
3.7.2
METHODEN
OHNE
RUECKGABEWERT
.
95
3.7.3
PARAMETERUEBERGABE
MIT
REF
.
97
3.7.4
PARAMETERUEBERGABE
MIT
OUT
.
98
3.7.5
METHODENUEBERLADUNG
.
99
3.7.6
OPTIONALE
PARAMETER
.
100
3.7.7
BENANNTE
PARAMETER
.
101
3.8
PRAXISBEISPIELE
.
102
3.8.1
VOM
PAP
ZUR
KONSOLENANWENDUNG
.
102
3.8.2
EIN
KONSOLEN-IN
EIN
WINDOWS-PROGRAMM
VERWANDELN
.
105
3.8.3
SCHLEIFENANWEISUNGEN
VERSTEHEN
.
107
3.8.4
BENUTZERDEFINIERTE
METHODEN
UEBERLADEN
.
110
3.8.5
ANWENDUNGEN
VON
VISUAL
BASIC
NACH
C#
PORTIEREN
.
113
4
OOP-KONZEPTE
.
121
4.1
KLEINE
EINFUEHRUNG
IN
DIE
OOP
.
121
4.1.1
HISTORISCHE
ENTWICKLUNG
.
122
4.1.2
GRUNDBEGRIFFE
DER
OOP
.
123
4.1.3
SICHTBARKEIT
VON
KLASSEN
UND
IHREN
MITGLIEDERN
.
125
4.1.4
ALLGEMEINER
AUFBAU
EINER
KLASSE
.
126
4.1.5
DAS
ERZEUGEN
EINES
OBJEKTS
.
128
4.1.6
EINFUEHRUNGSBEISPIEL
.
131
4.2
EIGENSCHAFTEN
.
137
4.2.1
EIGENSCHAFTEN
MIT
ZUGRIFFSMETHODEN
KAPSELN
.
137
4.2.2
BERECHNETE
EIGENSCHAFTEN
.
139
4.2.3
LESE-/SCHREIBSCHUTZ
.
141
4.2.4
PROPERTY-ACCESSOREN
.
142
4.2.5
STATISCHE
FELDER/EIGENSCHAFTEN
.
143
4.2.6
EINFACHE
EIGENSCHAFTEN
AUTOMATISCH
IMPLEMENTIEREN
.
145
4.3
METHODEN
.
147
4.3.1
OEFFENTLICHE
UND
PRIVATE
METHODEN
.
147
4.3.2
UEBERLADENE
METHODEN
.
148
4.3.3
STATISCHE
METHODEN
.
149
4.4
EREIGNISSE
.
150
4.4.1
EREIGNIS
HINZUFUEGEN
.
151
4.4.2
EREIGNIS
VERWENDEN
.
154
4.5
ARBEITEN
MIT
KONSTRUKTOR
UND
DESTRUKTOR
.
157
4.5.1
KONSTRUKTOR
UND
OBJEKTINITIALISIERER
.
158
4.5.2
DESTRUKTOR
UND
GARBAGE
COLLECTOR
.
161
4.5.3
MIT
USING
DEN
LEBENSZYKLUS
DES
OBJEKTS
KAPSELN
.
163
4.6
VERERBUNG
UND
POLYMORPHIE
.
164
4.6.1
METHOD-OVERRIDING
.
164
4.6.2
KLASSEN
IMPLEMENTIEREN
.
164
4.6.3
IMPLEMENTIEREN
DER
OBJEKTE
.
167
4.6.4
AUSBLENDEN
VON
MITGLIEDERN
DURCH
VERERBUNG
.
169
4.6.5
ALLGEMEINE
HINWEISE
UND
REGELN
ZUR
VERERBUNG
.
170
4.6.6
POLYMORPHES
VERHALTEN
.
172
4.6.7
DIE
ROLLE
VON
SYSTEM.OBJECT
.
175
4.7 SPEZIELLE
KLASSEN
.
176
4.7.1
ABSTRAKTE
KLASSEN
.
176
4.7.2
VERSIEGELTE
KLASSEN
.
177
4.7.3
PARTIELLE
KLASSEN
.
178
4.7.4
STATISCHE
KLASSEN
.
179
4.8
SCHNITTSTELLEN
(INTERFACES)
.
180
4.8.1
DEFINITION
EINER
SCHNITTSTELLE
.
181
4.8.2
IMPLEMENTIEREN
EINER
SCHNITTSTELLE
.
181
4.8.3
ABFRAGEN,
OB
SCHNITTSTELLE
VORHANDEN
IST
.
182
4.8.4
MEHRERE
SCHNITTSTELLEN
IMPLEMENTIEREN
.
183
4.8.5
SCHNITTSTELLENPROGRAMMIERUNG
IST
EIN
WEITES
FELD
.
183
4.9
DATENSATZTYPEN
-
RECORDS
.
183
4.9.1
DEFINITION
EINES
RECORD
.
184
4.9.2
MUTABLE
PROPERTIES
.
186
4.9.3
NICHT-DESTRUKTIVE
AENDERUNG
.
188
4.9.4
DEKONSTRUKTION
.
189
4.10
PRAXISBEISPIELE
.
190
4.10.1
EIGENSCHAFTENSINNVOLLKAPSELN
.
190
4.10.2
EINE
STATISCHE
KLASSE
ANWENDEN
.
193
4.10.3
VOM
FETTEN
ZUM
SCHLANKEN
CLIENT
.
194
4.10.4
SCHNITTSTELLENVERERBUNG
VERSTEHEN
.
205
4.10.5
RECHNER
FUER
KOMPLEXE
ZAHLEN
.
210
4.10.6
SORTIEREN
MIT
ICOMPARABLE/ICOMPARER
.
218
4.10.7
EINEN
OBJEKTBAUM
IN
GENERISCHEN
LISTEN
ABSPEICHERN
.
223
4.10.8
OOP
BEIM
KARTENSPIEL
ERLERNEN
.
228
4.10.9
EINE
KLASSE
ZUR
MATRIZENRECHNUNG
ENTWICKELN
.
233
4.10.10
VERERBUNG
VON
RECORDS
.
239
5
ARRAYS,
STRINGS,
FUNKTIONEN
.
241
5.1
DATENFELDER
(ARRAYS)
.
241
5.1.1
ARRAY
DEKLARIEREN
.
242
5.1.2
ARRAY
INSTANZIIEREN
.
242
5.1.3
ARRAY
INITIALISIEREN
.
243
5.1.4
ZUGRIFF
AUF
ARRAY-ELEMENTE
.
244
5.1.5
ZUGRIFF
MITTELS
SCHLEIFE
.
245
5.1.6
MEHRDIMENSIONALE
ARRAYS
.
246
5.1.7
ZUWEISEN
VON
ARRAYS
.
248
5.1.8
ARRAYS
AUS
STRUKTURVARIABLEN
.
249
5.1.9
LOESCHEN
UND
UMDIMENSIONIEREN
VON
ARRAYS
.
250
5.1.10
EIGENSCHAFTEN
UND
METHODEN
VON
ARRAYS
.
252
5.1.11
UEBERGABE
VON
ARRAYS
.
253
5.2
VERARBEITEN
VON
ZEICHENKETTEN
.
255
5.2.1
ZUWEISEN
VON
STRINGS
.
255
5.2.2
EIGENSCHAFTEN
UND
METHODEN
VON
STRING-VARIABLEN
.
256
5.2.3
WICHTIGE
METHODEN
DER
STRING-KLASSE
.
258
5.2.4
DIE
STRINGBUILDER-KLASSE
.
260
5.3
DATUMS
UND
ZEITBERECHNUNGEN
.
263
5.3.1
DIE
DATETIME-STRUKTUR
.
263
5.3.2
WICHTIGE
EIGENSCHAFTEN
VON
DATETIME-VARIABLEN
.
264
5.3.3
WICHTIGE
METHODEN
VON
DATETIME-VARIABLEN
.
265
5.3.4
WICHTIGE
MITGLIEDER
DER
DATETIME-STRUKTUR
.
266
5.3.5
KONVERTIEREN
VON
DATUMSTRINGS
IN
DATETIME-WERTE
.
267
5.3.6
DIE
TIMESPAN-STRUKTUR
.
267
5.3.7
DATEONLY
UND
TIMEONLY
.
269
5.4
MATHEMATISCHE
FUNKTIONEN
.
270
5.4.1
UEBERBLICK
.
270
5.4.2
ZAHLEN
RUNDEN
.
270
5.4.3
WINKEL
UMRECHNEN
.
271
5.4.4
POTENZ
UND
WURZELOPERATIONEN
.
271
5.4.5
LOGARITHMUS
UND
EXPONENTIALFUNKTIONEN
.
271
5.4.6
ZUFALLSZAHLEN
ERZEUGEN
.
272
5.4.7
KREISBERECHNUNG
.
273
5.5
ZAHLEN-UND
DATUMSFORMATIERUNGEN
.
273
5.5.1
ANWENDEN
DER
TOSTRING-METHODE
.
274
5.5.2
ANWENDEN
DER
FORMAT-METHODE
.
275
5.5.3
STRINGINTERPOLATION
.
276
5.6
PRAXISBEISPIELE
.
277
5.6.1
ZEICHENKETTEN
VERARBEITEN
.
277
5.6.2
ZEICHENKETTEN
MIT
STRINGBUILDER
ADDIEREN
.
280
5.6.3
METHODENAUFRUFE
MIT
ARRAY-PARAMETERN
.
283
6
WEITERE
SPRACHFEATURES
.
289
6.1
NAMESPACES
(NAMENSRAEUME)
.
289
6.1.1
EIN
KLEINER
UEBERBLICK
.
289
6.1.2
EINEN
EIGENEN
NAMESPACE
EINRICHTEN
.
290
6.1.3
DIE
USING-ANWEISUNG
.
292
6.1.4
NAMESPACE
ALIAS
.
293
6.1.5
GLOBALE
USING-ANWEISUNGEN
.
293
6.2
OPERATORENUEBERLADUNG
.
294
6.2.1
SYNTAXREGELN
.
294
6.2.2
PRAKTISCHE
ANWENDUNG
.
295
6.3
COLLECTIONS
(AUFLISTUNGEN)
.
296
6.3.1
DIE
SCHNITTSTELLE
LENUMERABLE
.
296
6.3.2
ARRAYLIST
.
299
6.3.3
HASHTABLE
.
300
6.3.4
INDEXER
.
301
6.4
GENERICS
.
303
6.4.1
GENERICS
BIETEN
TYPSICHERHEIT
.
304
6.4.2
GENERISCHE
METHODEN
.
305
6.4.3
YIELD
-
ITERATOREN
.
306
6.5
GENERISCHE
COLLECTIONS
.
306
6.5.1
LIST-COLLECTION
STATT
ARRAYLIST
.
306
6.5.2
VORTEILE
GENERISCHER
COLLECTIONS
.
308
6.5.3
CONSTRAINTS
.
308
6.6
DAS
PRINZIP
DER
DELEGATES
.
309
6.6.1
DELEGATES
SIND
METHODENZEIGER
.
309
6.6.2
EINEN
DELEGATE-TYP
DEKLARIEREN
.
310
6.6.3
EIN
DELEGATE-OBJEKT
ERZEUGEN
.
310
6.6.4
ANONYME
METHODEN
.
312
6.6.5
LAMBDA-AUSDRUECKE
.
313
6.6.6
LAMBDA-AUSDRUECKE
IN
DER
TASK
PARALLEL
LIBRARY
.
316
6.6.7
ACTIONO
UND
FUNC
.
317
6.7
DYNAMISCHE
PROGRAMMIERUNG
.
319
6.7.1
WOZU
DYNAMISCHE
PROGRAMMIERUNG?
.
319
6.7.2
DAS
PRINZIP
DER
DYNAMISCHEN
PROGRAMMIERUNG
.
320
6.7.3
OPTIONALE
PARAMETER
SIND
HILFREICH
.
322
6.7.4
KOVARIANZ
UND
KONTRAVARIANZ
.
323
6.8
WEITERE
DATENTYPEN
.
324
6.8.1
BIGLNTEGER
.
324
6.8.2
COMPLEX
.
326
6.8.3
TUPLEO
.
327
6.8.4
SORTEDSETO
.
328
6.9
PRAXISBEISPIELE
.
329
6.9.1
ARRAYLIST
VERSUS
GENERISCHE
LIST
.
329
6.9.2
GENERISCHE
LENUMERABLE-INTERFACES
IMPLEMENTIEREN
.
332
6.9.3
DELEGATES,
FUNC,
ANONYME
METHODEN,
LAMBDA
EXPRESSIONS
.
336
7
EINFUEHRUNG
IN
LINQ
.
341
7.1
LINQ-GRUNDLAGEN
.
341
7.1.1
DIE
LINQ-ARCHITEKTUR
.
341
7.1.2
ANONYME
TYPEN
.
343
7.1.3
ERWEITERUNGSMETHODEN
.
344
7.2
ABFRAGEN
MIT
LINO
TO
OBJECTS
.
345
7.2.1
GRUNDLEGENDES
ZUR
LINQ-SYNTAX
.
346
7.2.2
ZWEI
ALTERNATIVE
SCHREIBWEISEN
VON
LINQ-ABFRAGEN
.
347
7.2.3
UEBERSICHT
DER
WICHTIGSTEN
ABFRAGEOPERATOREN
.
348
7.3
LINQ-ABFRAGEN
IM
DETAIL
.
349
7.3.1
DIE
PROJEKTIONSOPERATOREN
SELECT
UND
SELECTMANY
.
350
7.3.2
DER
RESTRIKTIONSOPERATOR
WHERE
.
351
7.3.3
DIE
SORTIERUNGSOPERATOREN
ORDERBY
UND
THENBY
.
352
7.3.4
DER
GRUPPIERUNGSOPERATOR
GROUPBY
.
353
7.3.5
VERKNUEPFEN
MIT
JOIN
.
356
7.3.6
AGGREGAT-OPERATOREN
.
356
7.3.7
VERZOEGERTES
AUSFUEHREN
VON
LINQ-ABFRAGEN
.
358
7.3.8
KONVERTIERUNGSMETHODEN
.
359
7.3.9
ABFRAGEN
MIT
PLINQ.
360
7.4
PRAXISBEISPIELE
.
363
7.4.1
DIE
SYNTAX
VON
LINQ-ABFRAGEN
VERSTEHEN
.
363
7.4.2
AGGREGAT-ABFRAGEN
MIT
LINQ
.
366
7.4.3
LINQ
IM
SCHNELLDURCHGANG
ERLERNEN
.
369
7.4.4
STRINGS
MIT
LINQ
ABFRAGEN
UND
FILTERN
.
371
7.4.5
DUPLIKATE
AUS
EINER
LISTE
ENTFERNEN
.
373
7.4.6
ARRAYS
MIT
LINQ
INITIALISIEREN
.
375
7.4.7
ARRAYS
PER
LINQ
MIT
ZUFALLSZAHLEN
FUELLEN
.
377
7.4.8
EINEN
STRING
MIT
WIEDERHOLMUSTER
ERZEUGEN
.
379
7.4.9
MIT
LINQ
ZAHLEN
UND
STRINGS
SORTIEREN
.
380
7.4.10
MIT
LINQ
COLLECTIONS
VON
OBJEKTEN
SORTIEREN
.
382
7.4.11
WHERE
-
DEEP
DIVE
.
384
8
NEUERUNGEN
VON
C#
IM
UEBERBLICK
.
393
8.1
C#
4.0
-VISUAL
STUDIO
2010
.
394
8.1.1
DATENTYP
DYNAMIC
.
394
8.1.2
BENANNTE
UND
OPTIONALE
PARAMETER
.
395
8.1.3
KOVARIANZ
UND
KONTRAVARIANZ
.
396
8.2
C#
5.0
-VISUAL
STUDIO
2012
.
396
8.2.1
ASYNC
UND
AWAIT
.
397
8.2.2
CALLERLNFO
.
398
8.3
VISUAL
STUDIO
2013
.
399
8.4
C#
6.0
-VISUAL
STUDIO
2015
.
399
8.4.1
STRING
INTERPOLATION
.
399
8.4.2
SCHREIBGESCHUETZTE
AUTOPROPERTIES
.
399
8.4.3
INITIALISIERER
FUER
AUTOPROPERTIES
.
400
8.4.4
EXPRESSION
BODY
MEMBER
.
400
8.4.5
USING
STATIC
.
400
8.4.6
BEDINGTER
NULLOPERATOR
.
401
8.4.7
AUSNAHMENFILTER
.
402
8.4.8
NAMEOF-AUSDRUECKE
.
402
8.4.9
AWAIT
IN
CATCH
UND
FINALLY
.
403
8.4.10
INDEXINITIALISIERER
.
403
8.5
C#
7.0
-VISUAL
STUDIO
2017
.
403
8.5.1
OUT-VARIABLEN
.
403
8.5.2
TUPEL
.
404
8.5.3
MUSTERVERGLEICH
.
405
8.5.4
DISCARDS
.
406
8.5.5
LOKALE
REF-VARIABLEN
UND
RUECKGABETYPEN
.
407
8.5.6
LOKALE
FUNKTIONEN
.
407
8.5.7
MEHR
EXPRESSION
BODY
MEMBER
.
407
8.5.8
THROW-AUSDRUECKE
.
408
8.5.9
VERBESSERUNG
DER
NUMERISCHEN
LITERALEN
SYNTAX
.
408
8.6
C#
7.1
BIS
7.3
-VISUAL
STUDIO
2019
.
408
8.6.1
C#7.1
.
408
8.6.2
C#
7.2
.
410
8.6.3
C#
7.3
.
411
8.6.4
VISUAL
STUDIO
2019
-
LIVE
SHARE
.
411
8.7
C#
8.0
.
414
8.7.1
STANDARDSCHNITTSTELLENMETHODEN
.
414
8.7.2
VEREINFACHUNG
VON
SWITCH-AUSDRUECKEN
.
416
8.7.3
EIGENSCHAFTENMUSTER
.
417
8.7.4
VEREINFACHTE
USING-RESSOURCENSCHUTZBLOECKE
.
417
8.7.5
NULL-COALESCING-ZUWEISUNGEN
.
418
8.7.6
NULLABLE
REFERENZTYPEN
.
419
8.7.7
INDIZES
UND
BEREICHE
.
420
8.7.8
WEITERE
SPRACHNEUERUNGEN
.
421
8.8
C#
9.0
.
422
8.8.1
RECORDS
.
422
8.8.2
INIT-ONLY
SETTER
.
422
8.8.3
WEITERE
VERBESSERUNGEN
IN
MUSTERAUSDRUECKEN
.
422
8.8.4
WEITERE
SPRACHNEUERUNGEN
.
423
8.9
C#
10
.
423
8.9.1
DATENSATZSTRUKTUREN
.
423
8.9.2
GLOBALE
USING-ANWEISUNGEN
.
423
8.9.3
WEITERE
SPRACHNEUERUNGEN
.
424
TEIL
II:
DESKTOP-ANWENDUNGEN
.
425
9
EINFUEHRUNG
IN
WPF
.
427
9.1
EINFUEHRUNG
.
427
9.1.1
WAS
KANN
EINE
WPF-ANWENDUNG?
.
428
9.1.2
DIE
EXTENSIBLE
APPLICATION
MARKUP
LANGUAGE
.
430
9.1.3
UNSERE
ERSTE
XAML-ANWENDUNG
.
431
9.1.4
ZIELPLATTFORMEN
.
437
9.1.5
APPLIKATIONSTYPEN
.
437
9.1.6
VOR
UND
NACHTEILE
VON
WPF-ANWENDUNGEN
.
438
9.1.7
WEITERE
DATEIEN
IM
UEBERBLICK
.
439
9.2
ALLES
BEGINNT
MIT
DEM
LAYOUT
.
441
9.2.1
ALLGEMEINES
ZUM
LAYOUT
.
441
9.2.2
POSITIONIEREN
VON
STEUERELEMENTEN
.
443
9.2.3
CANVAS
.
446
9.2.4
STACKPANEL
.
447
9.2.5
DOCKPANEL
.
449
9.2.6
WRAPPANEL
.
451
9.2.7
UNIFORMGRID
.
452
9.2.8
GRID
.
453
9.2.9
VIEWBOX
.
458
9.2.10
TEXTBLOCK
.
459
9.3
DAS
WPF-PROGRAMM
.
463
9.3.1
DIE
APP-KLASSE
.
463
9.3.2
DAS
STARTOBJEKT
FESTLEGEN
.
463
9.3.3
KOMMANDOZEILENPARAMETER
VERARBEITEN
.
465
9.3.4
DIE
ANWENDUNG
BEENDEN
.
466
9.3.5
AUSWERTEN
VON
ANWENDUNGSEREIGNISSEN
.
466
9.4
DIE
WINDOW-KLASSE
.
467
9.4.1
POSITION
UND
GROESSE
FESTLEGEN
.
468
9.4.2
RAHMEN
UND
BESCHRIFTUNG
.
468
9.4.3
DAS
FENSTER-ICON
AENDERN
.
468
9.4.4
ANZEIGE
WEITERER
FENSTER
.
469
9.4.5
TRANSPARENZ
.
469
9.4.6
ABSTAND
ZUM
INHALT
FESTLEGEN
.
470
9.4.7
FENSTER
OHNE
FOKUS
ANZEIGEN
.
470
9.4.8
EREIGNISFOLGE
BEI
FENSTERN
.
471
9.4.9
EIN
PAAR
WORTE
ZUR
SCHRIFTDARSTELLUNG
.
471
9.4.10
EIN
PAAR
WORTE
ZUR
DARSTELLUNG
VON
CONTROLS
.
474
9.4.11
WIRD
MEIN
FENSTER
KOMPLETT
MIT
WPF
GERENDERT?
.
475
10
UEBERSICHT
WPF-CONTROLS
.
477
10.1
ALLGEMEINGUELTIGE
EIGENSCHAFTEN
.
477
10.2
LABEL
.
479
10.3
BUTTON,
REPEATBUTTON,
TOGGLEBUTTON
.
480
10.3.1
SCHALTFLAECHEN
FUER
MODALE
DIALOGE
.
480
10.3.2
SCHALTFLAECHEN
MIT
GRAFIK
.
482
10.4
TEXTBOX,
PASSWORDBOX
.
483
10.4.1
TEXTBOX
.
483
10.4.2
PASSWORDBOX
.
485
10.5
CHECKBOX
.
486
10.6
RADIOBUTTON
.
488
10.7
LISTBOX,
COMBOBOX.
489
10.7.1
LISTBOX
.
489
10.7.2
COMBOBOX
.
492
10.7.3
DEN
CONTENT
FORMATIEREN
.
494
10.8
IMAGE
.
496
10.8.1
GRAFIK
PER
XAML
ZUWEISEN
.
496
10.8.2
GRAFIK
ZUR
LAUFZEIT
ZUWEISEN
.
496
10.8.3
BILD
AUS
DATEI
LADEN
.
498
10.8.4
DIE
GRAFIKSKALIERUNG
BEEINFLUSSEN
.
499
10.9
SLIDER,
SCROLLBAR
.
500
10.9.1
SLIDER
.
500
10.9.2
SCROLLBAR
.
502
10.10
SCROLLVIEWER
.
502
10.11
MENU,
CONTEXTMENU
.
503
10.11.1
MENU
.
504
10.11.2
TASTENKUERZEL
.
505
10.11.3
GRAFIKEN
.
506
10.11.4
WEITERE
MOEGLICHKEITEN
.
507
10.11.5
CONTEXTMENU
.
508
10.12
TOOLBAR
.
509
10.13
STATUSBAR,
PROGRESSBAR
.
512
10.13.1
STATUSBAR
.
512
10.13.2
PROGRESSBAR
.
514
10.14
BORDER,
GROUPBOX,
BULLETDECORATOR
.
514
10.14.1
BORDER
.
515
10.14.2
GROUPBOX
.
516
10.14.3
BULLETDECORATOR
.
517
10.15
EXPANDER,
TABCONTROL
.
519
10.15.1
EXPANDER
.
519
10.15.2
TABCONTROL
.
521
10.16
POPUP
.
522
10.17
TREEVIEW
.
525
10.18
LISTVIEW
.
529
10.19
DATAGRID
.
529
10.20
CALENDAR/DATEPICKER
.
530
10.21
ELLIPSE,
RECTANGLE,
LINE
UND
CO
.
534
10.21.1
ELLIPSE
.
534
10.21.2
RECTANGLE
.
535
10.21.3
LINE
.
536
11
WICHTIGE
WPF-TECHNIKEN
.
537
11.1
EIGENSCHAFTEN
.
537
11.1.1
ABHAENGIGE
EIGENSCHAFTEN
(DEPENDENCY
PROPERTIES)
.
537
11.1.2
ANGEHAENGTE
EIGENSCHAFTEN
(ATTACHED
PROPERTIES)
.
539
11.2
EINSATZ
VON
RESSOURCEN
.
539
11.2.1
WAS
SIND
EIGENTLICH
RESSOURCEN?
.
539
11.2.2
WO
KOENNEN
RESSOURCEN
GESPEICHERT
WERDEN?
.
540
11.2.3
WIE
DEFINIERE
ICH
EINE
RESSOURCE?
.
541
11.2.4
STATISCHE
UND
DYNAMISCHE
RESSOURCEN
.
542
11.2.5
WIE
WERDEN
RESSOURCEN
ADRESSIERT?
.
544
11.2.6
SYSTEMRESSOURCENEINBINDEN
.
545
11.3
DAS
WPF-EREIGNISMODELL
.
545
11.3.1
EINFUEHRUNG
.
545
11.3.2
ROUTED
EVENTS
.
546
11.3.3
DIREKTE
EVENTS
.
549
11.4
VERWENDUNG
VON
COMMANDS
.
549
11.4.1
EINFUEHRUNG
ZU
COMMANDS
.
549
11.4.2
VERWENDUNG
VORDEFINIERTER
COMMANDS
.
550
11.4.3
DAS
ZIEL
DES
COMMANDS
.
552
11.4.4
VORDEFINIERTE
COMMANDS
.
553
11.4.5
COMMANDS
AN
EREIGNISMETHODEN
BINDEN
.
553
11.4.6
WIE
KANN
ICH
EIN
COMMAND
PER
CODE
AUSLOESEN?
.
554
11.4.7
COMMAND
AUSFUEHRUNG
VERHINDERN
.
555
11.5
DAS
WPF-STYLE-SYSTEM
.
555
11.5.1
UEBERSICHT
.
555
11.5.2
BENANNTE
STYLES
.
556
11.5.3
TYP-STYLES
.
558
11.5.4
STYLES
ANPASSEN
UND
VERERBEN
.
559
11.6
VERWENDEN
VON
TRIGGERN
.
561
11.6.1
EIGENSCHAFTEN-TRIGGER
(PROPERTY
TRIGGERS)
.
562
11.6.2
EREIGNIS-TRIGGER
.
564
11.6.3
DATEN-TRIGGER
.
565
11.7
EINSATZ
VON
TEMPLATES
.
566
11.7.1
NEUES
TEMPLATE
ERSTELLEN
.
566
11.7.2
TEMPLATE
ABRUFEN
UND
VERAENDERN
.
570
11.8
TRANSFORMATIONEN,
ANIMATIONEN,
STORYBOARDS
.
573
11.8.1
TRANSFORMATIONEN
.
573
11.8.2
ANIMATIONEN
MIT
DEM
STORYBOARD
REALISIEREN
.
578
TEIL
III:
TECHNOLOGIEN
.
585
12
WPF-DATENBINDUNG
.
587
12.1
GRUNDPRINZIP
.
587
12.1.1
BINDUNGSARTEN
.
588
12.1.2
WANN
EIGENTLICH
WIRD
DIE
QUELLE
AKTUALISIERT?
.
590
12.1.3
GEHT
ES
AUCH
ETWAS
LANGSAMER?
.
591
12.1.4
BINDUNG
ZUR
LAUFZEIT
REALISIEREN
.
592
12.2
BINDEN
AN
OBJEKTE
.
593
12.2.1
OBJEKTE
IM
XAML-CODE
INSTANZIIEREN
.
594
12.2.2
VERWENDEN
DER
INSTANZ
IM
C#-QUELLCODE
.
595
12.2.3
ANFORDERUNGEN
AN
DIE
QUELL-KLASSE
.
596
12.2.4
INSTANZIIEREN
VON
OBJEKTEN
PER
C#-CODE
.
597
12.3
BINDEN
VON
COLLECTIONS
.
599
12.3.1
ANFORDERUNG
AN
DIE
COLLECTION
.
599
12.3.2
EINFACHE
ANZEIGE
.
600
12.3.3
NAVIGIEREN
ZWISCHEN
DEN
OBJEKTEN
.
601
12.3.4
EINFACHE
ANZEIGE
IN
EINER
LISTBOX
.
603
12.3.5
DATATEMPLATES
ZUR
ANZEIGEFORMATIERUNG
.
604
12.3.6
MEHR
ZU
LIST
UND
COMBOBOX
.
605
12.3.7
VERWENDUNG
DER
LISTVIEW
.
607
12.4
NOCH
EINMAL
ZURUECK
ZU
DEN
DETAILS
.
610
12.4.1
NAVIGIEREN
IN
DEN
DATEN
.
610
12.4.2
SORTIEREN
.
612
12.4.3
FILTERN
.
612
12.4.4
LIVE
SHAPING
.
613
12.5
ANZEIGE
VON
DATENBANKINHALTEN
.
615
12.5.1
INSTALLIEREN
DER
BENOETIGTEN
NUGET-PAKETE
.
615
12.5.2
ANLEGEN
DER
ENTITAETSKLASSEN
.
616
12.5.3
DIE
PROGRAMMOBERFLAECHE
.
619
12.5.4
DER
ZUGRIFF
AUF
DIE
DATEN
.
620
12.6
FORMATIEREN
VON
WERTEN
.
623
12.6.1
IVALUECONVERTER
.
623
12.2.6
BINDINGBASE.STRINGFORMAT-EIGENSCHAFT
.
625
12.7
DAS
DATAGRID
ALS
UNIVERSALWERKZEUG
.
626
12.7.1
GRUNDLAGEN
DER
ANZEIGE
.
626
12.7.2
UL-VIRTUALISIERUNG
.
628
12.7.3
SPALTEN
SELBST
DEFINIEREN
.
628
12.7.4
ZUSATZINFORMATIONEN
IN
DEN
ZEILEN
ANZEIGEN
.
630
12.7.5
VOM
BETRACHTEN
ZUM
EDITIEREN
.
632
12.8
PRAXISBEISPIEL
-
COLLECTIONS
IN
HINTERGRUNDTHREADS
FUELLEN
.
632
13
.NET
MAUI
.
637
13.1
EINFUEHRUNG
.
637
13.2
WAS
KANN
EINE
.NET-MAUI-ANWENDUNG?
.
639
13.3
DIE
ERSTE
.NET
MAUI
APP
.
640
14
ASYNCHRONE
PROGRAMMIERUNG
.
647
14.1
UEBERSICHT
.
648
14.1.1
MULTITASKING
VERSUS
MULTITHREADING
.
648
14.1.2
DEADLOCKS
.
649
14.1.3
RACING
.
650
14.2
PROGRAMMIEREN
MIT
THREADS
.
651
14.2.1
EINFUEHRUNGSBEISPIEL
.
651
14.2.2
WICHTIGE
THREAD-METHODEN
.
653
14.2.3
WICHTIGE
THREAD-EIGENSCHAFTEN
.
655
14.2.4
EINSATZ
DER
THREADPOOL-KLASSE
.
656
14.3
SPERRMECHANISMEN
.
657
14.3.1
THREADING
OHNE
LOCK
.
658
14.3.2
THREADING
MIT
LOCK
.
659
14.3.3
DIE
MONITOR-KLASSE
.
662
14.3.4
MUTEX
.
666
14.3.5
METHODEN
FUER
DIE
PARALLELE
AUSFUEHRUNG
SPERREN
.
667
14.3.6
SEMAPHORE
.
668
14.4
INTERAKTION
MIT
DER
PROGRAMMOBERFLAECHE
.
670
14.4.1
DIE
WERKZEUGE
.
671
14.4.2
EINZELNE
STEUERELEMENTE
MIT
INVOKE
AKTUALISIEREN
(WINDOWS
FORMS)
.
671
14.4.3
MEHRERE
STEUERELEMENTE
AKTUALISIEREN
.
672
14.4.4
IST
EIN
INVOKE-AUFRUF
NOETIG?
.
673
14.4.5
UND
WAS
IST
MIT
WPF?
.
673
14.5
TIMER-THREADS
.
675
14.6
ASYNCHRONE
PROGRAMMIERENTWURFSMUSTER
.
677
14.6.1
KURZUEBERSICHT
.
677
14.6.2
POLLING
.
678
14.6.3
CALLBACK
VERWENDEN
.
680
14.6.4
CALLBACK
MIT
PARAMETERUEBERGABE
VERWENDEN
.
681
14.6.5
CALLBACK
MIT
ZUGRIFF
AUF
DIE
PROGRAMMOBERFLAECHE
.
682
14.7
ES
GEHT
AUCH
EINFACHER
-
ASYNC
UND
AWAIT
.
684
14.7.1
DER
WEG
VON
SYNCHRON
ZU
ASYNCHRON
.
684
14.7.2
ACHTUNG:
FEHLERQUELLEN!
.
686
14.7.3
EIGENE
ASYNCHRONE
METHODEN
ENTWICKELN
.
689
14.8
ASYNCHRONE
STREAMS
.
691
14.8.1
DATEI
ERSTELLEN
.
691
14.8.2
DATEI
LESEN
MIT
IASYNCENUMERABLE T
.
693
14.9
PRAXISBEISPIELE
.
694
14.9.1
PROZESS-UND
THREAD-INFORMATIONEN
GEWINNEN
.
694
14.9.2
EIN
EXTERNES
PROGRAMM
STARTEN
.
697
15
DIE
TASK
PARALLEL
LIBRARY
.
701
15.1
UEBERBLICK
.
701
15.1.1
PARALLEL-PROGRAMMIERUNG
.
701
15.1.2
MOEGLICHKEITEN
DER
TPL
.
704
15.1.3
DER
CLR-THREADPOOL
.
705
15.2
PARALLELE
VERARBEITUNG
MIT
PARALLEL.INVOKE
.
706
15.2.1
AUFRUFVARIANTEN
.
706
15.2.2
EINSCHRAENKUNGEN
.
708
15.3
VERWENDUNG
VON
PARALLEL.FOR
.
709
15.3.1
ABBRECHEN
DER
VERARBEITUNG
.
710
15.3.2
AUSWERTEN
DES
VERARBEITUNGSSTATUS
.
712
15.3.3
UND
WAS
IST
MIT
ANDEREN
ITERATOR-SCHRITTWEITEN?
.
713
15.4
COLLECTIONS
MIT
PARALLEL.FOREACH
VERARBEITEN
.
713
15.5
DIE
TASK-KLASSE
.
714
15.5.1
EINEN
TASK
ERZEUGEN
.
714
15.5.2
DEN
TASK
STARTEN
.
715
15.5.3
DATENUEBERGABE
AN
DEN
TASK
.
717
15.5.4
WIE
WARTE
ICH
AUF
DAS
ENDE
DES
TASKS?
.
718
15.5.5
TASKS
MIT
RUECKGABEWERTEN
.
720
15.5.6
DIE
VERARBEITUNG
ABBRECHEN
.
723
15.5.7
FEHLERBEHANDLUNG
.
728
15.5.8
WEITERE
EIGENSCHAFTEN
.
729
15.6
ZUGRIFF
AUF
DAS
USER
INTERFACE
.
730
15.6.1
TASK-ENDE
UND
ZUGRIFF
AUF
DIE
OBERFLAECHE
.
730
15.6.2
ZUGRIFF
AUF
DAS
UI
AUS
DEM
TASK
HERAUS
.
732
15.7
WEITERE
DATENSTRUKTUREN
IM
UEBERBLICK
.
734
15.7.1
THREADSICHERE
COLLECTIONS
.
734
15.7.2
PRIMITIVE
FUER
DIE
THREADSYNCHRONISATION
.
734
15.8
PARALLEL
LINQ
(PLINQ)
.
735
15.9
PRAXISBEISPIELE
.
735
15.9.1
BLOCKINGCOLLECTION
.
735
15.9.2
PLINQ
.
739
16
DEBUGGING,
FEHLERSUCHE
UND
FEHLERBEHANDLUNG
.
741
16.1
DER
DEBUGGER
.
741
16.1.1
ALLGEMEINE
BESCHREIBUNG
.
741
16.1.2
DIE
WICHTIGSTEN
FENSTER
.
742
16.1.3
DEBUGGING-OPTIONEN
.
746
16.1.4
PRAKTISCHES
DEBUGGING
AM
BEISPIEL
.
749
16.2
ARBEITEN
MIT
DEBUG
UND
TRACE
.
754
16.2.1
WICHTIGE
METHODEN
VON
DEBUG
UND
TRACE
.
754
16.2.2
BESONDERHEITEN
DER
TRACE-KLASSE
.
758
16.2.3
TRACELISTENER-OBJEKTE
.
758
16.3
CALLER
INFORMATION
.
760
16.3.1
ATTRIBUTE
.
761
16.3.2
ANWENDUNG
.
761
16.4
FEHLERBEHANDLUNG
.
762
16.4.1
ANWEISUNGEN
ZUR
FEHLERBEHANDLUNG
.
762
16.4.2
TRY-CATCH
.
763
16.4.3
TRY-FINALLY
.
767
16.4.4
DAS
STANDARDVERHALTEN
BEI
AUSNAHMEN
FESTLEGEN
.
769
16.4.5
DIE
EXCEPTION
-KLASSE
.
770
16.4.6
FEHLER/AUSNAHMEN
AUSLOESEN
.
771
16.4.7
EIGENE
FEHLERKLASSEN
.
771
16.4.8
EXCEPTIONHANDLING
ZUR
DEBUGZEIT
.
773
17
ENTITY
FRAMEWORK
CORE
6.0
.
775
17.1
UEBERBLICK
.
775
17.1.1
OBJEKTRELATIONALER
MAPPER
(ORM)
.
776
17.1.2
PROVIDER
.
778
17.1.3
RELATIONALE
BEZIEHUNGEN
.
779
17.1.4
BENOETIGTE
NUGET-PAKETE
.
782
17.2
CODEFIRST
.
783
17.2.1
CODEFIRST
AUS
MODEL
.
784
17.2.2
CODEFIRST
MITTELS
REVERSEENGINEERING
VON
BESTEHENDER
DATENBANK
.
793
17.3
MIGRATIONEN
.
798
17.3.1
INITIALE
MIGRATION
BEI
REVERSEENGINEERING
.
798
17.3.2
WEITERE
MIGRATIONEN
.
800
17.4
LESEN
UND
SCHREIBEN
VON
DATEN
MIT
EF
CORE
6
.
802
17.5
PRAXISBEISPIELE
.
806
17.5.1
DATEN
MIT
EF
CORE
6
LADEN
UND
ALS
JSON
SPEICHERN
.
806
17.5.2
EINE
DATENBANK
MIT
EF
CORE
6
ANLEGEN
UND
TESTDATEN
GENERIEREN
UNDANZEIGEN
.
815
TEIL
IV:
WEBANWENDUNGEN
.
823
18
WEBANWENDUNGEN
MIT
ASP.NET
CORE
.
825
18.1
GRUNDLAGEN
.
826
18.2
RAZOR
PAGES
.
829
18.2.1
PROJEKTAUFBAU
.
829
18.2.2
RAZOR-SYNTAX
.
833
18.2.3
LAYOUT-VORLAGEN
.
838
18.2.4
MODELLE
FUER
RAZOR
PAGES
.
842
18.2.5
MIT
FORMULAREN
ARBEITEN
.
843
18.3
MVC
.
850
18.3.1
PROJEKTAUFBAU
.
851
18.3.2
ACTION-METHODEN
.
852
18.3.3
ZUSTANDSMANAGEMENT
.
864
18.4
PRAXISBEISPIELE
.
869
18.4.1
CRUD
MIT
ENTITY
FRAMEWORK
.
869
18.4.2
AUTHENTIFIZIERUNG
UND
AUTORISIERUNG
.
885
19
ASP.NET
WEB
API
.
893
19.1
REST
.
893
19.2
VORLAGEN
.
897
19.3
DATEN
LESEN
.
903
19.4
DATEN
SCHREIBEN,
AKTUALISIEREN,
LOESCHEN
.
912
19.5
MINIMALE
APIS
.
921
19.6
PRAXISBEISPIELE
.
925
19.6.1
PAGINIERUNG
.
925
19.6.2
XML
STATT
JSON
.
927
19.6.3
CORS
.
928
20
BLAZOR
.
933
20.1
HOSTING-MODELLE
.
934
20.2
PROJEKTVORLAGEN
.
937
20.3
BLAZOR-KOMPONENTEN
.
946
20.3.1
CODE
IN/FUER
KOMPONENTEN
.
946
20.3.2
EVENT-HANDLING
.
949
20.3.3
DATENBINDUNG
.
953
20.4
SERVICES
UND
APIS
AUFRUFEN
.
955
20.5
WEITERE
BLAZOR-FEATURES
.
961
20.5.1
ZUSTANDSMANAGEMENT
.
961
20.5.2
JAVASCRIPT-INTEROPERABILITAET
.
963
20.6
PRAXISBEISPIELE
.
967
20.6.1
ONLINE-STATUS
ERMITTELN
.
967
20.6.2
FILE-UPLOADS
.
972
20.6.3
FEHLERBEHANDLUNG
.
974
ANHANG
A:
GLOSSAR
.981
ANHANG
B:
WICHTIGE
DATEIENDUNGEN
.
985
INDEX
.
987 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Kotz, Jürgen Wenz, Christian 1977- |
author_GND | (DE-588)124099343 (DE-588)122481720 |
author_facet | Kotz, Jürgen Wenz, Christian 1977- |
author_role | aut aut |
author_sort | Kotz, Jürgen |
author_variant | j k jk c w cw |
building | Verbundindex |
bvnumber | BV047960363 |
classification_rvk | ST 250 |
classification_tum | DAT 358 |
ctrlnum | (OCoLC)1288572262 (DE-599)DNB1247126404 |
dewey-full | 005.133 005.2768 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 005.2768 |
dewey-search | 005.133 005.2768 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02950nam a22007698c 4500</leader><controlfield tag="001">BV047960363</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20230531 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">220428s2022 gw a||| |||| 00||| ger d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1247126404</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783446469303</subfield><subfield code="c">Pappeinband: EUR 49.99 (DE), EUR 51.40 (AT)</subfield><subfield code="9">978-3-446-46930-3</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3446469303</subfield><subfield code="9">3-446-46930-3</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1288572262</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1247126404</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BY</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-210</subfield><subfield code="a">DE-12</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-91</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">23/ger</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.2768</subfield><subfield code="2">23/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="8">1\p</subfield><subfield code="a">004</subfield><subfield code="2">23sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 358</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Kotz, Jürgen</subfield><subfield code="0">(DE-588)124099343</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">C# und .NET 6</subfield><subfield code="b">Grundlagen, Profiwissen und Rezepte</subfield><subfield code="c">Jürgen Kotz, Christian Wenz</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">München</subfield><subfield code="b">Hanser</subfield><subfield code="c">[2022]</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">© 2022</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXIII, 998 Seiten</subfield><subfield code="b">Illustrationen</subfield><subfield code="c">25 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Visual Studio 2022</subfield><subfield code="0">(DE-588)1254859004</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Visual C sharp.NET</subfield><subfield code="0">(DE-588)4682222-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Microsoft dot net 6</subfield><subfield code="0">(DE-588)1257683020</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">.NET 6.0</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">ADO.NET</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Entity Framework</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Grafikprogrammierung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">LINQ</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">MAUI</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Visual Studio 2021</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Windows Forms</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">FBITVISC: Visual C#</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">INF2022</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Visual Studio 2022</subfield><subfield code="0">(DE-588)1254859004</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="3"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Microsoft dot net 6</subfield><subfield code="0">(DE-588)1257683020</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Visual Studio 2022</subfield><subfield code="0">(DE-588)1254859004</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="1"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="2"><subfield code="a">Visual C sharp.NET</subfield><subfield code="0">(DE-588)4682222-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Wenz, Christian</subfield><subfield code="d">1977-</subfield><subfield code="0">(DE-588)122481720</subfield><subfield code="4">aut</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">E-Book</subfield><subfield code="z">978-3-446-47349-2</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">E-Pub</subfield><subfield code="z">978-3-446-47423-9</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=033341568&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-033341568</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">vlb</subfield><subfield code="d">20211208</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#vlb</subfield></datafield></record></collection> |
genre | (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
id | DE-604.BV047960363 |
illustrated | Illustrated |
index_date | 2024-07-03T19:40:19Z |
indexdate | 2024-07-10T09:26:48Z |
institution | BVB |
isbn | 9783446469303 3446469303 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-033341568 |
oclc_num | 1288572262 |
open_access_boolean | |
owner | DE-210 DE-12 DE-B768 DE-860 DE-1050 DE-20 DE-91 DE-BY-TUM |
owner_facet | DE-210 DE-12 DE-B768 DE-860 DE-1050 DE-20 DE-91 DE-BY-TUM |
physical | XXIII, 998 Seiten Illustrationen 25 cm |
publishDate | 2022 |
publishDateSearch | 2022 |
publishDateSort | 2022 |
publisher | Hanser |
record_format | marc |
spelling | Kotz, Jürgen (DE-588)124099343 aut C# und .NET 6 Grundlagen, Profiwissen und Rezepte Jürgen Kotz, Christian Wenz München Hanser [2022] © 2022 XXIII, 998 Seiten Illustrationen 25 cm txt rdacontent n rdamedia nc rdacarrier Programmierung (DE-588)4076370-5 gnd rswk-swf Visual Studio 2022 (DE-588)1254859004 gnd rswk-swf Microsoft dot net (DE-588)4645646-6 gnd rswk-swf C sharp (DE-588)4616843-6 gnd rswk-swf Visual C sharp.NET (DE-588)4682222-7 gnd rswk-swf Microsoft dot net 6 (DE-588)1257683020 gnd rswk-swf .NET 6.0 ADO.NET Entity Framework Grafikprogrammierung LINQ MAUI Visual Studio 2021 Windows Forms FBITVISC: Visual C# INF2022 (DE-588)4123623-3 Lehrbuch gnd-content C sharp (DE-588)4616843-6 s Microsoft dot net (DE-588)4645646-6 s Visual Studio 2022 (DE-588)1254859004 s Programmierung (DE-588)4076370-5 s DE-604 Microsoft dot net 6 (DE-588)1257683020 s Visual C sharp.NET (DE-588)4682222-7 s Wenz, Christian 1977- (DE-588)122481720 aut Erscheint auch als E-Book 978-3-446-47349-2 Erscheint auch als E-Pub 978-3-446-47423-9 DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=033341568&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p vlb 20211208 DE-101 https://d-nb.info/provenance/plan#vlb |
spellingShingle | Kotz, Jürgen Wenz, Christian 1977- C# und .NET 6 Grundlagen, Profiwissen und Rezepte Programmierung (DE-588)4076370-5 gnd Visual Studio 2022 (DE-588)1254859004 gnd Microsoft dot net (DE-588)4645646-6 gnd C sharp (DE-588)4616843-6 gnd Visual C sharp.NET (DE-588)4682222-7 gnd Microsoft dot net 6 (DE-588)1257683020 gnd |
subject_GND | (DE-588)4076370-5 (DE-588)1254859004 (DE-588)4645646-6 (DE-588)4616843-6 (DE-588)4682222-7 (DE-588)1257683020 (DE-588)4123623-3 |
title | C# und .NET 6 Grundlagen, Profiwissen und Rezepte |
title_auth | C# und .NET 6 Grundlagen, Profiwissen und Rezepte |
title_exact_search | C# und .NET 6 Grundlagen, Profiwissen und Rezepte |
title_exact_search_txtP | C# und .NET 6 Grundlagen, Profiwissen und Rezepte |
title_full | C# und .NET 6 Grundlagen, Profiwissen und Rezepte Jürgen Kotz, Christian Wenz |
title_fullStr | C# und .NET 6 Grundlagen, Profiwissen und Rezepte Jürgen Kotz, Christian Wenz |
title_full_unstemmed | C# und .NET 6 Grundlagen, Profiwissen und Rezepte Jürgen Kotz, Christian Wenz |
title_short | C# und .NET 6 |
title_sort | c und net 6 grundlagen profiwissen und rezepte |
title_sub | Grundlagen, Profiwissen und Rezepte |
topic | Programmierung (DE-588)4076370-5 gnd Visual Studio 2022 (DE-588)1254859004 gnd Microsoft dot net (DE-588)4645646-6 gnd C sharp (DE-588)4616843-6 gnd Visual C sharp.NET (DE-588)4682222-7 gnd Microsoft dot net 6 (DE-588)1257683020 gnd |
topic_facet | Programmierung Visual Studio 2022 Microsoft dot net C sharp Visual C sharp.NET Microsoft dot net 6 Lehrbuch |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=033341568&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT kotzjurgen cundnet6grundlagenprofiwissenundrezepte AT wenzchristian cundnet6grundlagenprofiwissenundrezepte |