
Der 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:
Inhaltsverzeichnis
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 und Polymorphie . . . 809
16. 11 . . . Performance und Tuning . . . 813
16. 12 . . . EF Core und moderne . NET-Features . . . 815
17. Desktop- und Cross-Platform-Entwicklung . . . 819
17. 1 . . . WinForms, WPF und . NET MAUI -- ein Vergleich . . . 819
17. 2 . . . Und was ist mit der UWP und WinUI 3? . . . 821
17. 3 . . . XAML (Extended Application Markup Language) . . . 823
17. 4 . . . Grundkonzepte von Windows Forms (WinForms) . . . 840
18. Windows Presentation Foundation . . . 845
18. 1 . . . Eine WPF-Anwendung und ihre Dateien . . . 845
18. 2 . . . Fenster in der WPF . . . 847
18. 3 . . . Nachrichtenfenster mit »MessageBox« . . . 848
18. 4 . . . Standarddialoge in der WPF . . . 850
18. 5 . . . Die WPF-Layoutcontainer . . . 850
18. 6 . . . WPF-Steuerelemente . . . 857
18. 7 . . . Ereignisse in der WPF . . . 866
18. 8 . . . Die Ereignishandler . . . 870
18. 9 . . . WPF-Datenbindung und WPF-Commands . . . 873
18. 10 . . . Die Klasse »Binding« . . . 876
18. 11 . . . WPF-Commands . . . 887
18. 12 . . . »RoutedCommand«-Objekte und »CommandBindings« . . . 898
18. 13 . . . Das MVVM-Pattern . . . 902
19. Einführung in . NET MAUI . . . 911
19. 1 . . . Was ist . NET MAUI? . . . 911
19. 2 . . . Architektur von . NET MAUI im Kontext von . NET . . . 913
19. 3 . . . Struktur eines MAUI-Projekts . . . 914
19. 4 . . . Eine erste Anwendung . . . 921
19. 5 . . . Zentrale Konzepte . . . 925
19. 6 . . . Datenbindung und MVVM mit . NET MAUI . . . 932
19. 7 . . . Plattformunabhängigkeit und plattformspezifischer Code . . . 940
19. 8 . . . Debugging und Deployment . . . 942
20. 2D-Grafik in WPF und . NET MAUI . . . 945
20. 1 . . . Shapes . . . 945
20. 2 . . . »Path«-Elemente . . . 949
20. 3 . . . »Brush«-Objekte . . . 953
20. 4 . . . 2D-Grafik in . NET MAUI . . . 965
21. Komponententests (Unit-Tests) . . . 967
21. 1 . . . Was ist ein Unit-Test? . . . 967
21. 2 . . . Ein erster Komponententest . . . 970
21. 3 . . . Komponententest schreiben und ausführen . . . 977
21. 4 . . . Die Klasse »TestContext« . . . 995
21. 5 . . . Data-Driven Unit-Tests (datengetriebene Tests) . . . 998
21. 6 . . . Lebenszyklus-Attribute . . . 1011
21. 7 . . . Testen mit »Assert« . . . 1016
21. 8 . . . Test-Driven Development -- TDD . . . 1025
22. Einführung in ASP. NET Core . . . 1027
22. 1 . . . Was ist ASP. NET Core? . . . 1027
22. 2 . . . Web-API-Projektstruktur und erste Schritte . . . 1032
22. 3 . . . Minimal APIs vs. klassische Controller-Architektur . . . 1040
22. 4 . . . Routing und Middleware . . . 1047
22. 5 . . . Dependency Injection . . . 1054
22. 6 . . . Konfiguration und Umgebungen . . . 1057
22. 7 . . . Entity Framework Core Integration . . . 1061
22. 8 . . . Authentifizierung und Autorisierung . . . 1068
22. 9 . . . Fehlerbehandlung und Logging . . . 1072
22. 10 . . . OpenAPI/Swagger . . . 1076
22. 11 . . . Deployment und Hosting . . . 1081
22. 12 . . . Unit-Testing von ASP. NET-Core-Anwendungen . . . 1085
23. Einführung in Blazor . . . 1089
23. 1 . . . Was ist Blazor? . . . 1089
23. 2 . . . Wie funktioniert Blazor? . . . 1093
23. 3 . . . Projektstruktur und Build-System . . . 1096
23. 4 . . . Blazor-Komponenten im Detail . . . 1106
23. 5 . . . Routing und Navigation . . . 1110
23. 6 . . . Datenbindung und Formulare . . . 1114
23. 7 . . . State Management . . . 1118
23. 8 . . . Interop mit JavaScript . . . 1122
23. 9 . . . Zugriff auf APIs und Backend . . . 1125
23. 10 . . . Blazor Hybrid für den Desktop . . . 1129
23. 11 . . . Fortgeschrittene Themen . . . 1132
24. Cloud-Entwicklung mit Azure . . . 1135
24. 1 . . . Was ist Microsoft Azure? . . . 1135
24. 2 . . . Überblick über Cloud-Computing . . . 1136
24. 3 . . . Cloud-Service-Modelle: PaaS, IaaS, und SaaS . . . 1138
24. 4 . . . Vorteile der Cloud-Entwicklung mit Azure . . . 1141
24. 5 . . . Azure-Ressourcenmanagement und -Architektur . . . 1142
24. 6 . . . Schlüsseldienste: Azure Compute, Storage, Databases und KI . . . 1147
24. 7 . . . Azure CLI und Azure PowerShell . . . 1152
24. 8 . . . Azure SDKs für . NET . . . 1155
24. 9 . . . Nutzung des Azure-Portals . . . 1159
24. 10 . . . Azure SQL Database und Cosmos DB . . . 1159
24. 11 . . . Azure Blob Storage . . . 1164
24. 12 . . . Azure Functions und Logic Apps . . . 1167
24. 13 . . . Azure Monitor und Application Insights . . . 1172
24. 14 . . . Einrichten von Azure DevOps . . . 1176
25. Softwareentwicklung in Zeiten von KI . . . 1179
25. 1 . . . Warum KI in der Softwareentwicklung? . . . 1179
25. 2 . . . Grundlagen der künstlichen Intelligenz . . . 1180
25. 3 . . . KI-Plattformen und Tools von Microsoft . . . 1185
25. 4 . . . Machine Learning mit ML. NET . . . 1189
25. 5 . . . Azure AI Services und Azure OpenAI in C# nutzen . . . 1198
25. 6 . . . Generative KI nutzen . . . 1204
25. 7 . . . Microsoft. Extensions. AI und Microsoft. Extensions. VectorData . . . 1214
25. 8 . . . Einsatz von KI in der Softwareentwicklung selbst . . . 1218
25. 9 . . . Ethik, Datenschutz und Verantwortung in der KI-Entwicklung . . . 1227
25. 10 . . . Best Practices und typische Fallstricke . . . 1229
Index . . . 1233
Es wurden noch keine Bewertungen abgegeben. Schreiben Sie die erste Bewertung zu "C# mit .NET" und helfen Sie damit anderen bei der Kaufentscheidung.