C#
Von Sprachgrundlagen über LINQ, async/await und das .NET-Ökosystem; moderne Features und Best Practices für produktionsreife Apps.
Was ist C#?
C# ist eine von Microsoft entwickelte, statisch typisierte Sprache, die objektorientierte und funktionale Merkmale vereint. Mit .NET 8 ist sie plattformübergreifend (Windows, Linux, macOS) und wird für Web-APIs, Desktop-Apps, Cloud-Dienste, Hintergrundjobs und Spiele (Unity) breit eingesetzt.
Ökosystem: ASP.NET Core (Web), Entity Framework Core (Datenzugriff), xUnit/NUnit (Tests), NuGet (Paketverwaltung) und die dotnet CLI (Kommandozeile).
TL;DR
- Modernes C#:
records, Pattern Matching,async/await, sowie span/memory für Performance. - Schnelle REST-Services mit Minimal APIs; effizientes CRUD und LINQ mit EF Core.
- Schichtenarchitektur + Dependency Injection für testbares Design.
Sprachgrundlagen
Grundlagen der C#-Syntax, des Typsystems und der Kontrollstrukturen. Der erste Schritt, um die Logik der Sprache zu verstehen.
Einführung in C# und das .NET-Ökosystem
C# ist eine moderne, sichere und objektorientierte Sprache. Mit dem .NET-Ökosystem lassen sich Web-, Mobile-, Desktop- und Spieleanwendungen entwickeln.
Erstes C#-Projekt
Erste Konsolenanwendung in C# mit Visual Studio 2022: Verwendung von WriteLine, ReadKey und ReadLine.
Grundlegende Datentypen in C#
Grundlegende Datentypen in C#: numerisch, textbasiert, logisch, objektorientiert und nullable.
C# Syntaxstruktur
Erlernen Sie die Grundlagen der C#-Syntax: Codeblöcke, Kommentare und Regeln zur Variablennamensgebung verständlich erklärt.
Operatoren und Ausdrücke in C#
Operatoren und Ausdrücke in C#: Verwendung von arithmetischen, Vergleichs-, logischen Operatoren, Inkrement-/Dekrement-, Ternary- und Null-Coalescing-Operatoren.
C# Verzweigungsstrukturen (if, else, switch)
Entscheidungsstrukturen in C#: lernen Sie, wie man mit if, else if, else und switch unterschiedliche Aktionen abhängig von Bedingungen ausführt.
C# Schleifen (for, foreach, while, do-while)
Lernen Sie die Verwendung von for-, foreach-, while- und do-while-Schleifen in C#, um wiederholte Abläufe effizient umzusetzen.
C# Konsolenbefehle
Lernen Sie den Umgang mit der C#-Konsole: Ausgaben schreiben, Benutzereingaben lesen und Text richtig formatieren.
String-Operationen in C#
Lernen Sie die String-Verarbeitung in C#: Verkettung, Suche, Substring, IndexOf und weitere wichtige String-Methoden.
Typumwandlungen in C#
Erlernen Sie Typumwandlungen in C#, einschließlich impliziter und expliziter Konvertierung sowie Parse-, TryParse- und Convert-Methoden.
Verwendung von Konstanten und Enums in C#
Lernen Sie die Verwendung von Konstanten und Enums in C#, um sauberen, sicheren und wartbaren Code mit Beispielen zu schreiben.
C# Mathematikbibliothek
Lernen Sie die C#-Math-Bibliothek kennen und verwenden Sie Methoden wie Pow, Sqrt, Round, Abs und weitere mathematische Funktionen.
Boolesche Operationen in C#
Erlernen Sie boolesche Operationen in C#, einschließlich des bool-Typs, Vergleichen und logischen Operatoren wie &&, || und !.
DateTime- und TimeSpan-Operationen in C#
Lernen Sie die Arbeit mit DateTime und TimeSpan in C#, um Datums- und Zeitoperationen wie Vergleiche, Berechnungen und Formatierung durchzuführen.
Zufallsoperationen in C#
Lernen Sie die Random-Klasse in C#, um Zufallszahlen und -werte mit Next, NextDouble und praktischen Beispielen zu erzeugen.
Methoden und Parameterverwendung in C#
Lernen Sie Methoden und die Verwendung von Parametern in C#, einschließlich Wert- und Referenzparametern sowie optionalen Parametern.
Ausnahmebehandlung in C# (try, catch, finally)
Erlernen Sie die Ausnahmebehandlung in C# mit try-, catch- und finally-Blöcken zur sicheren Fehlerverwaltung anhand von Beispielen.
Namespaces und Assemblies in C#
Erlernen Sie die Konzepte von Namespaces und Assemblies in C#, um Code zu strukturieren und Abhängigkeiten korrekt zu verwalten.
Objektorientierte Programmierung (OOP) und Patterns
Klassen, Vererbung, Interfaces und Design Patterns für wiederverwendbaren und wartbaren Code in C#.
Klassen, Objekte, Eigenschaften und Methoden in C#
Erlernen Sie die Grundlagen von Klassen, Objekten, Eigenschaften und Methoden in C# für objektorientierte Programmierung.
Structs in C# – Unterschiede zu Klassen
Erfahren Sie die Unterschiede zwischen Structs und Klassen in C# in Bezug auf Speicher, Vererbung und Performance.
Konstruktoren, Destruktoren und this in C#
Lernen Sie Konstruktoren, Destruktoren und das Schlüsselwort this in C# zur Verwaltung des Objektlebenszyklus.
Sealed-, Static- und Partial-Klassen in C#
Lernen Sie Zweck, Unterschiede und Einsatzszenarien von sealed-, static- und partial-Klassen in C#.
Record Types und Unveränderliche Objekte in C#
Lernen Sie Record Types und unveränderliche Objekte in C# kennen, inklusive Value Equality, with-Expressions und Best Practices.
Kapselung, Vererbung und Polymorphismus in C#
Lernen Sie Kapselung, Vererbung und Polymorphismus in C# mit Beispielen, um zentrale OOP-Konzepte sicher anzuwenden.
Interfaces und Abstrakte Klassen in C#
Lernen Sie Interfaces und abstrakte Klassen in C#, ihre Unterschiede und den Einsatz für sauberes, erweiterbares Design.
Delegates und Ereignisse in C#
Lernen Sie Delegates und Events in C#, um ereignisgesteuerte Programmierung mit Callbacks und Beispielen umzusetzen.
Lambda-Ausdrücke in C#
Lernen Sie Lambda-Ausdrücke in C#, einschließlich Kurzsyntax, Func- und Action-Delegates und LINQ-Beispiele.
Erweiterungsmethoden in C#
Lernen Sie Erweiterungsmethoden in C#, um bestehenden Typen neue Funktionen hinzuzufügen, ohne den Code zu ändern.
Dependency Injection Grundlagen in C#
Lernen Sie die Grundlagen von Dependency Injection in C#, um Abhängigkeiten zu verwalten und lose Kopplung zu erreichen.
SOLID-Prinzipien mit C#
SOLID-Prinzipien mit C#-Beispielen: flexiblen, wartbaren und testbaren Code erstellen.
Designmuster in C# (Factory, Singleton, Repository, Observer)
Lernen Sie Designmuster in C#, wie Factory, Singleton und Repository, für flexible und wartbare Anwendungen.
Interop in C# (Arbeiten mit C/C++-Bibliotheken)
Lernen Sie Interop in C#, um mit C/C++-Bibliotheken zu arbeiten, einschließlich P/Invoke und unmanaged Code.
Daten und Kollektionen
Arrays, Kollektionen, Generics und LINQ für eine effiziente Datenverwaltung und -abfrage in C#.
Arrays (Felder) in C#
Lernen Sie Arrays in C#, inklusive Deklaration, Indexzugriff, Schleifen und typischer Array-Operationen mit Beispielen.
Kollektionen in C#: Liste, Wörterbuch, Warteschlange, Stapel
Lernen Sie Collections in C# wie List, Dictionary, Queue und Stack kennen, um Daten effizient zu verwalten – mit Beispielen.
Generische Strukturen in C# (List<T>, Dictionary<TKey,TValue>)
Lernen Sie Generics in C# (List<T>, Dictionary<TKey,TValue>), um typsicheren, wiederverwendbaren Code zu schreiben.
LINQ Grundlagen in C# (Where, Select, OrderBy)
Lernen Sie LINQ-Grundlagen in C# mit Where, Select und OrderBy zum Filtern, Projizieren und Sortieren von Collections.
Ordner als ZIP erstellen mit Fortschritt in .NET (WPF-Beispiel)
Einen Ordner in .NET als ZIP erstellen und den Fortschritt per ZipArchive und IProgress sauber in einer WPF ProgressBar anzeigen.
Standardisiertes API-Response-Format in ASP.NET Core (Result)
Standardisieren Sie Erfolgs- und Fehlerantworten in ASP.NET Core mit einem Result
IP-basiertes Rate Limiting in ASP.NET Core (.NET 8): 429 Too Many Requests
Begrenzen Sie Requests pro IP mit dem eingebauten Rate Limiting in .NET 8 und geben Sie bei Überschreitung 429 inkl. Retry-After zurück.
ProblemDetails in ASP.NET Core: Saubere Fehlerantworten mit TraceId
Exceptions auf RFC 7807 ProblemDetails abbilden und eine traceId zurückgeben, damit Clients konsistente Fehler sehen und Logs eindeutig zuordenbar sind.
Saubere Pagination in ASP.NET Core Web API (Header + Link)
Geben Sie nur Items im Body zurück und verschieben Sie Pagination-Metadaten in Header. Nutzen Sie den RFC 5988 Link-Header für next/prev Navigation.