

Beschreibung
Alles für die Softwareentwicklung mit C# und .NETDer ideale Begleiter für Ihre tägliche Arbeit mit C# und .NET! Von den Sprachgrundlagen über LINQ und asynchrone Programmierung bis zur Erstellung komplexer GUI-Anwendungen mit XAML und der Anbindungen von Daten...Alles für die Softwareentwicklung mit C# und .NETDer ideale Begleiter für Ihre tägliche Arbeit mit C# und .NET! Von den Sprachgrundlagen über LINQ und asynchrone Programmierung bis zur Erstellung komplexer GUI-Anwendungen mit XAML und der Anbindungen von Datenbanken und KI ist alles dabei. Dieses umfassende Handbuch führt Sie professionell durch die Praxis!Aus dem Inhalt:Das erste Projekt aufsetzenSchleifen, Variablen, Methoden und mehr.NET kennenlernenAsynchron mit async/await und TPLLINQDatenbankanbindungCloud-Entwicklung mit AzureCross-Plattform mit XAML2D-GrafikEntity FrameworkEinführung in KI mit .NETUnit-Tests und Versionskontrolle
Für Desktop- und Web-GUIs , Datenbank-, Cloud- und KI-Anwendungen
Autorentext
Andreas Kühnel wohnt in Aachen und beschäftigt sich seit über 25 Jahren mit der Programmierung. Er ist seit 1995 als Microsoft Certified Trainer (MCT) zertifiziert. Seine "große Liebe" galt anfangs Visual Basic. Seit der ersten Vorstellung von .NET konzentriert er sich hauptsächlich auf die Sprachen VB.NET und natürlich C#. Zu seinen Schwerpunkten in der .NET-Welt gehören Datenbanken, Windows-Anwendungen mit WPF, ASP.NET und die WCF (Windows Communication Foundation). Heute ist Andreas Kühnel als freiberuflicher IT-Trainer und Berater deutschlandweit tätig, führt aber auch Schulungen in seinem eigenen Seminarraum in Aachen durch.
Inhalt
Materialien zum Buch ... 30
Über diese Auflage ... 31
1. Allgemeine Einführung in .NET ... 33
1.1 ... Warum .NET? ... 33
1.2 ... .NET unter die Lupe genommen ... 39
1.3 ... Assemblies ... 51
1.4 ... Die Entwicklungsumgebung ... 53
1.5 ... Git -- Versionskontrolle leicht gemacht ... 62
2. Grundlagen der Sprache C# ... 67
2.1 ... Konsolenanwendungen ... 67
2.2 ... Grundlagen der C#-Syntax ... 74
2.3 ... Variablen und Datentypen ... 79
2.4 ... Operatoren ... 105
2.5 ... Datenfelder (Arrays) ... 118
2.6 ... Kontrollstrukturen ... 127
2.7 ... Programmschleifen ... 138
3. Das Klassendesign ... 155
3.1 ... Einführung in die Objektorientierung ... 155
3.2 ... Die Klassendefinition ... 158
3.3 ... Referenz- und Wertetypen ... 166
3.4 ... Die Eigenschaften eines Objekts ... 167
3.5 ... Methoden eines Objekts ... 176
3.6 ... Konstruktoren ... 204
3.7 ... Der Destruktor ... 211
3.8 ... Konstanten in einer Klasse ... 212
3.9 ... Statische Klassenkomponenten ... 214
3.10 ... Namensräume (Namespaces) ... 221
3.11 ... Aktueller Stand der Klasse »Circle« ... 232
4. Vererbung, Polymorphie und Interfaces ... 235
4.1 ... Die Vererbung ... 235
4.2 ... Der Problemfall geerbter Methoden ... 244
4.3 ... Typkonvertierung und Typuntersuchung von Objektvariablen ... 251
4.4 ... Polymorphie ... 257
4.5 ... Weitere Gesichtspunkte der Vererbung ... 265
4.6 ... Das Projekt »GeometricObjectsSolution« ergänzen ... 268
4.7 ... Eingebettete Klassen ... 272
4.8 ... Interfaces (Schnittstellen) ... 272
4.9 ... Das Zerstören von Objekten -- der Garbage Collector ... 292
4.10 ... Die Ergänzungen in den Klassen »Circle« und »Rectangle« ... 299
5. Delegaten, Ereignisse und Lambda-Ausdrücke ... 301
5.1 ... Delegaten ... 301
5.2 ... Ereignisse eines Objekts ... 311
5.3 ... Lambda-Ausdrücke ... 328
5.4 ... Änderungen im Projekt »GeometricObjectsSolution« ... 334
6. Strukturen, Records und Enumerationen ... 339
6.1 ... Strukturen -- eine Sonderform der Klassen ... 339
6.2 ... Datensatztypen -- Klassen mit Standards ... 348
6.3 ... Klassen, Strukturen oder Records? ... 352
6.4 ... Enumerationen (Aufzählungen) ... 355
6.5 ... Boxing und Unboxing ... 357
7. Fehlerbehandlung und Debugging ... 359
7.1 ... Laufzeitfehler erkennen ... 360
7.2 ... Debuggen mit Programmcode ... 383
7.3 ... Fehlersuche mit Visual Studio ... 391
8. Auflistungsklassen (Collections) ... 399
8.1 ... Collections im Namespace »System.Collections« ... 399
8.2 ... Die Klasse »ArrayList« ... 403
8.3 ... Die Klasse »Hashtable« ... 415
8.4 ... Die Klassen »Queue« und »Stack« ... 421
8.5 ... Eigene Auflistungen mit »yield« durchlaufen ... 424
8.6 ... Collection Expressions ... 427
9. Generics -- generische Datentypen ... 429
9.1 ... Bereitstellen einer generischen Klasse ... 431
9.2 ... Bedingungen (Constraints) festlegen ... 434
9.3 ... Generische Methoden ... 438
9.4 ... Generische Attribute ... 439
9.5 ... Generics und Vererbung ... 441
9.6 ... Typkonvertierung von Generics ... 443
9.7 ... Generische Delegaten ... 444
9.8 ... »Nullable«-Typen ... 445
9.9 ... Generische Collections ... 447
9.10 ... Kovarianz und Kontravarianz generischer Typen ... 452
9.11 ... Generische Mathematik ... 457
9.12 ... Ergänzungen im Beispielprojekt »GeometricObjectsSolution« ... 459
10. Weitere C#-Sprachfeatures ... 461
10.1 ... Implizit typisierte Variablen ... 461
10.2 ... Anonyme Typen ... 462
10.3 ... Erweiterungsmethoden ... 463
10.4 ... Spezielle Methoden ... 467
10.5 ... Operatorüberladung ... 474
10.6 ... »Nullable«-Referenztypen ... 485
10.7 ... Die »with«-Anweisung ... 490
10.8 ... Indexer ... 491
10.9 ... Attribute ... 498
10.10 ... Der bedingte NULL-Operator ... 511
10.11 ... Der »nameof«-Operator ... 513
10.12 ... Dynamisches Binden ... 514
10.13 ... Tupel ... 518
10.14 ... Pattern Matching (Musterabgleich) ... 523
10.15 ... Rückgabewerte mit »ref« ... 529
10.16 ... Unsicherer (unsafe) Programmcode -- Zeigertechnik in C# ... 532
11. LINQ -- Language Integrated Query ... 539
11.1 ... Einstieg in LINQ ... 539
11.2 ... LINQ to Objects ... 545
11.3 ... Die Abfrageoperatoren ... 549
12. Arbeiten mit Dateien und Streams ... 575
12.1 ... Einführung ... 575
12.2 ... Namespaces der Ein- bzw. Ausgabe ... 576
12.3 ... Laufwerke, Verzeichnisse und Dateien ... 577
12.4 ... Die »Stream«-Klassen ... 594
12.5 ... Die Klassen »TextReader« und »TextWriter« ... 606
12.6 ... Die Klassen »BinaryReader« und »BinaryWriter« ... 612
12.7 ... Serialisierung ... 621
13. Multithreading ... 631
13.1 ... Einführung in das Multithreading ... 632
13.2 ... Threads -- allgemein betrachtet ... 633
13.3 ... Mit der Klasse »Thread« arbeiten ... 635
13.4 ... Der Threadpool ... 647
13.5 ... Synchronisation von Threads ... 648
13.6 ... Grundlagen asynchroner Methodenaufrufe ... 673
14. Die Task Parallel Library (TPL) und das Task-based Async Pattern (TAP) ... 687
14.1 ... Die wichtigsten Klassen der TPL ... 688
14.2 ... Die Klasse »Task« ... 688
14.3 ... Die Klasse »Parallel« ... 701
14.4 ... Asynchrone Programmierung mit »async« und »await« ... 708
15. Grundlegende .NET-Klassen ... 715
15.1 ... Die Klasse »Object« ... 715
15.2 ... Die Klasse »String« ... 721
15.3 ... Die Klasse »StringBuilder« ... 736
15.4 ... Der Typ »DateTime« ... 742
15.5 ... Die Klasse »TimeSpan« ... 747
15.6 ... Die Klassen »DateOnly« und »TimeOnly« ... 750
15.7 ... Ausgabeformatierung ... 751
16. Einführung in das Entity Framework Core ... 761
16.1 ... Was ist das Entity Framework Core? ... 761
16.2 ... Grundkonzepte und Projekt-Setup von EF Core ... 767
16.3 ... Unser erstes Projekt ... 772
16.4 ... Datenabfragen mit LINQ ... 783
16.5 ... Weitere Datenbankzugriffe ... 786
16.6 ... Eager, Lazy und Explicit Loading ... 791
16.7 ... Modellierung von Beziehungen ... 794
16.8 ... Die Arbeit mit Migrationen ... 802
16.9 ... Data Seeding und Datenbankinitialisierung ... 806
16.10 ... Modellierung von Vererbung …
