C# and .NET Links Collection
Curated list of .Net Resources
Articles & Blogs #
- Oren Eini - Cloned Dictionary vs. Immutable Dictionary vs. Frozen Dictionary in high traffic systems
- NDepend Blog - Readonly, Immutable, and Frozen Collections in .NET
- Mark Seemann - An immutable priority collection
- Andrew Lock - Exploring the generated code: List < T > and fallback cases
- Oskar Dudycz - Setting up NGINX load balancer for .NET WebApi
- Yoh Deadfall - Weakly and strongly typed values in .NET
- Andrew Lock - Introducing collection expressions in C#12 (Part 1)
- Tim Deschryver - Consuming .NET Feature Flags within an Angular Application
- Andrew Lock - Thoughts about primary constructors: 3 pros and 5 cons
- Oskar Dudycz - Why you should batch message processing and how to do it with .NET AsyncEnumerable
- Jimmy Bogard - Tales from the .NET Migration Trenches - Authentication
- Aaron Stannard - Akka.NET, ASP.NET Core, Hosted Services, and Dependency Injection
- Patrick Smacchia - Will Visual Studio Be Migrated to .NET Core and Become Multi-Platform?
- Oleksii Nikiforov - Building pipelines with System.Threading.Channels
- Howard van Rooijen - ASP.NET Core + Razor + HTMX + Chart.js
- João Antunes - Primitive vs strongly typed dictionary keys (feat. frozen collections and BenchmarkDotNet)
- Steve Gordon, Martijn Laarman - Introducing Elastic’s OpenTelemetry SDK for .NET
- Khalid Abuhakmeh - Responsive Images Crash Course for ASP.NET Core Developers
- Andrew W. Lock - Implementing Dijkstra’s algorithm using PriorityQueue in .NET 9
- Anthony Simmon - .NET Aspire dashboard to visualize OpenTelemetry during local development
- Gérald Barré - Generate OpenAPI specification at build time from the code in ASP.NET Core
- Babu Annamalai - Marten native partial updates - patching
- Arseniy Sharoglazov - Source Code Disclosure in ASP.NET apps
- Steve Dunn - Prefer test-doubles over mocking frameworks
- Steve Gordon - Understanding System.Diagnostics DiagnosticSource and DiagnosticListener (Part 1)
- Andrew Lock - An introduction to the heap and .NET’s priority queue
- Antão Almada - Measuring .NET Performance: BenchmarkDotNet
- Scott Hanselman - Updating to .NET 8 and running Playwright Tests within NUnit
- Cezary Piątek - Mocking authorization tokens with WireMock.NET
- Aaron Stannard - .NET Performance Optimization: Deferred Allocations
- Jeremy D. Miller - Marten 7.0 is Released!
- Jeremy D. Miller - Dynamic Tenant Databases in Marten
- Tomasz Pęczek - Azure Functions Extensibility - Runtime Scaling
- Tim Deschryver - Translating Exceptions into Problem Details Responses
- Kyle Kukshtel - Package Native Libs Into A NuGet Package
- Nicholas Blumhardt - SerilogTracing
- Charles Chen - .NET Task Parallel Library vs System.Threading.Channels
- Joel Verhagen - The fastest CSV parser in .NET
- Aaron Stannard - Distribute Roslyn Analyzers via NuGet
- Jeremy D. Miller - Critter Stack Messaging with Rabbit MQ
- Cezary Piątek - Mocking GraphQL queries with WireMock.NET
- João Antunes - .NET parallel Kafka consumer POC (Akka.NET)
- Andrew Lock - A brief look at StringValues
- Gérald Barré - Making primary constructor parameters read-only
- Cezary Piątek - Common Setup and Teardown in dotnet tests
- Khalid Abuhakmeh - Faster .NET Database Integration Tests with Respawn and xUnit
- Jeremy D. Miller - Durable Outbox Messaging
- Ian Russell - Discriminated Unions in C#
- Milan Jovanović - Global Error Handling in ASP.NET Core 8
Videos & Podcasts #
- Oren Eini - Building a Database Engine in C# & .NET (YouTube)
- YoshiMaker - Serializers in IoT: Json.NET vs System.Text.Json (YouTube)
- Dennis Dietrich - Introduction to unsafe C# (YouTube)
- Dustin Campbell, Mads Torgersen - What’s new in C# 13 (YouTube)
- Michael Staib - OpenTelemetry and GraphQL in .NET (YouTube)
- Chris Simon - TDD, DDD, and C# from the Ground Up (YouTube)
- Aaron Stannard - Make Illegal States Unrepresentable (YouTube)
- Aaron Stannard - Easy, Database Agnostic .NET Event Sourcing and CQRS with Akka.NET (YouTube)
- Stephen Toub, Scott Hanselman - Deep Dive into RegEx (YouTube)
- Martin Ullrich - Optimize for the Cloud – Lightning-speed .NET Container Apps (YouTube)
- Ian Cooper - Kafka for .NET Developers (YouTube)
- Scott Hanselman, Stephen Toub - Deep Dive on LINQ (YouTube)
- Chris Patterson - Using OpenTelemetry with the MassTransit Test Harness (YouTube)
- Stephen Toub, Scott Hanselman - Writing async/await from scratch in C# (YouTube)
- The Breakpoint Show - The 1 Billion Row Challenge With Mark Rendle (Podcast)
- Nick Chapsas - Build Clean Messaging in .NET with Wolverine (YouTube)
- Egil Hansen - Testing .NET Web APIs from A to Z (YouTube)
- The Hanselminutes Podcast - ASP.NET Basics for Experts with Layla Porter
- .NET Rocks - .NET 8 Migration with Jimmy Bogard
Libraries & Repos #
- linux-dev-certs - Dev certificate tool for Linux
- Freakout - Outbox sample
- Brian Gorman - Azure Queueing Messaging and Events
- Blazor.TSRuntime - Improved JSRuntime for Blazor
- dnvm - CLI to install/update multiple .NET SDKs
- TurboMqtt - Fast MQTT client for .NET
- BeyondSimpleBenchmarks - Practical guide to BenchmarkDotNet
- dotnet-xunit-otel - xUnit tracing wrapper
- EFCoreSecondLevelCacheInterceptor
- Chisel - Remove unwanted dependencies
- FxKit - Functional programming utilities for C#
- SimdLinq - SIMD-accelerated LINQ aggregations
- CSharpier - Opinionated code formatter for C#
- Fga.Net - OpenFGA/Auth0 FGA for .NET
- Reqnroll - Cucumber-style BDD for .NET
- Cronos - Cron expressions library
- Vogen - Source-generated Value Objects
- Fluid - Liquid template engine for .NET
- Falco.Htmx - Falco + htmx integration
.NET Announcements & Docs #
- Microsoft - General Availability of .NET Aspire
- Microsoft - .NET Build 2024 announcements
- Microsoft - Secure your container build and publish with .NET 8
- Microsoft - Introducing ASP.NET Core metrics and Grafana dashboards in .NET 8
- Microsoft - Testing Your Native AOT Applications
- Microsoft - .NET 7 end of support (May 14, 2024)
- Microsoft - Introducing the MSTest Runner
- Microsoft/AspNetCore - Eventing framework in .NET 9 (status)
- Microsoft/AspNetCore - Swashbuckle.AspNetCore removed in .NET 9 (announcement)