E-Book, Deutsch, 1250 Seiten
Reihe: Rheinwerk Computing
Kühnel / Deitelhoff C# mit .NET
9. Auflage 2025
ISBN: 978-3-367-10321-8
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection
Das umfassende Handbuch
E-Book, Deutsch, 1250 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-367-10321-8
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection
Alles für die Softwareentwicklung mit C# und .NET
Der ideale Begleiter für Ihre tägliche Arbeit mit C# und .NET! Von den Sprachgrundlagen über LINQ, asynchrone Programmierung und GUI-Anwendungen mit XAML bis zur Anbindungen von Datenbanken und KI ist alles dabei. Sie lernen .NET MAUI, Azure und das Entity Framework kennen. Auch wichtige Best Practices für die Softwareentwicklung wie Versionskontrolle, Unit Tests und etablierte Design Patterns stehen auf dem Programm.
Dieses umfassende Handbuch führt Sie professionell durch die Praxis!
Aus dem Inhalt:
- Das erste Projekt aufsetzen
- Schleifen, Variablen, Methoden und mehr
- .NET kennenlernen
- Asynchron mit async/await und TPL
- LINQ
- Datenbankanbindung
- Cloud-Entwicklung mit Azure
- Cross-Plattform mit XAML
- 2D-Grafik
- Entity Framework
- Einführung in KI mit .NET
- Unit-Tests und Versionskontrolle
Autoren/Hrsg.
Weitere Infos & Material
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