2026-05-25 comparisoncsharpdotnet List<T> vs Span<T> vs ReadOnlySpan<T> in C#: wann welcher Typ List<T> für wachsende Sammlungen, Span<T> für veränderbare Sichten und ReadOnlySpan<T> zum Lesen: Lebensdauer, Rückgabe und async-Grenzen.
2026-05-25 comparisoncsharpdotnet Parallel.ForEach vs Parallel.ForEachAsync vs Task.WhenAll in C# Verwenden Sie Parallel.ForEach für CPU-lastige Arbeit über Daten im Speicher, Parallel.ForEachAsync für asynchrone E/A über viele Elemente mit einer Parallelitätsgrenze und Task.WhenAll für ein kleines, festes Fan-out, bei dem alle Operationen gleichzeitig laufen sollen und Sie die Ergebnisse benötigen.
2026-05-25 dotnet-11comparisoncsharp StringBuilder vs. String-Interpolation in .NET 11: Was sollten Sie verwenden? Verwenden Sie String-Interpolation, um einen festen Satz von Werten in einem Schritt zusammenzusetzen; verwenden Sie StringBuilder, wenn Sie in einer Schleife oder über eine unbekannte Anzahl von Fragmenten anhängen. Die Trennlinie ist die Schleife, nicht die Anzahl der Werte.
2026-05-24 dotnet-11aspnetcoreopenapi ASP.NET Core in .NET 11 Preview 4 bringt OpenAPI die HTTP-Methode QUERY bei .NET 11 Preview 4 sorgt dafur, dass die OpenAPI-Generierung in ASP.NET Core HTTP QUERY als erstklassige Operation in OpenAPI 3.2 erkennt, mit einem eleganten Fallback fur 3.0- und 3.1-Dokumente.
2026-05-24 comparisoncsharpdotnet lock vs Monitor vs SemaphoreSlim vs System.Threading.Lock in C# Vier Wege, einen kritischen Abschnitt in C# abzusichern, und eine Entscheidungsmatrix für die Auswahl. Nutzen Sie System.Threading.Lock für synchronen gegenseitigen Ausschluss auf .NET 9+, SemaphoreSlim wenn der Abschnitt ein await überspannt, und Monitor nur wenn Sie Wait/Pulse benötigen.
2026-05-24 comparisonpollyresilience Polly vs. Resilience Handler in .NET 11: Was sollten Sie verwenden? Verwenden Sie den Resilience Handler aus Microsoft.Extensions.Http.Resilience für HttpClient-Aufrufe, denn er ist Polly mit HTTP-bewussten Standardwerten und Telemetrie in einer einzigen Zeile. Greifen Sie nur dann direkt zu Pollys ResiliencePipeline, wenn Sie etwas absichern, das kein HttpClient ist.
2026-05-24 comparisoncsharpdotnet Task.Run vs Task.Factory.StartNew vs ThreadPool.QueueUserWorkItem Drei Wege, Arbeit an den Thread Pool zu übergeben in C#, und welcher der richtige ist. Verwenden Sie Task.Run für fast alles, ThreadPool.QueueUserWorkItem<TState> für allokationsfreies Fire-and-Forget und Task.Factory.StartNew nur für LongRunning oder einen eigenen Scheduler.
2026-05-23 dotnet-11csharpperformance .NET 11 ergänzt allokationsfreie Deflate- und GZip-Komprimierung .NET 11 Preview 4 liefert DeflateEncoder, GZipEncoder und ZLibEncoder sowie die passenden Decoder, um direkt in ein Span<byte> mit OperationStatus zu komprimieren, ganz ohne Stream.
2026-05-23 comparisonef-coredapper EF Core kompilierte Abfragen vs Raw SQL vs Dapper: Was gewinnt auf dem Lesepfad? Fuer leselastige Pfade in .NET 11 liegt reines EF Core mit AsNoTracking innerhalb von ~5% von Dapper. Greifen Sie zu kompilierten Abfragen auf einem profilierten Einzelzeilen-Hot-Path und zu Dapper nur fuer geringste Latenz oder fuer SQL, das LINQ nicht ausdruecken kann.
2026-05-23 comparisonhttpclienthttpclientfactory HttpClient vs HttpClientFactory vs Refit: Was sollten Sie in .NET 11 verwenden? Erstellen Sie niemals einen HttpClient pro Anfrage. Verwenden Sie IHttpClientFactory zur Verwaltung der Lebensdauer und legen Sie Refit darauf, wenn Sie eine typisierte Schnittstelle statt handgeschriebenem Anfragecode wollen. Ein reiner Singleton-HttpClient taugt nur für die einfachsten Fälle.