Kühnel / Deitelhoff | C# mit .NET | Buch | 978-3-367-10319-5 | www.sack.de

Buch, Deutsch, 1247 Seiten, Format (B × H): 182 mm x 248 mm, Gewicht: 2170 g

Kühnel / Deitelhoff

C# mit .NET

Das umfassende Handbuch
9. Auflage 2025
ISBN: 978-3-367-10319-5
Verlag: Rheinwerk Verlag GmbH

Das umfassende Handbuch

Buch, Deutsch, 1247 Seiten, Format (B × H): 182 mm x 248 mm, Gewicht: 2170 g

ISBN: 978-3-367-10319-5
Verlag: Rheinwerk Verlag GmbH


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 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 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
Kühnel / Deitelhoff C# mit .NET jetzt bestellen!

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


Kühnel, Andreas
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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.