Tags

#csharp
csharp

65stories
1 d agolatest
ServiceComposer
Typed models, no shared code

ServiceComposer: strongly typed view models without shared coupling

Mauro Servienti examines how strongly typed view models in ServiceComposer can reintroduce the coupling that ViewModel Composition is meant to remove. He proposes per-service interfaces for response models and per-service request models for decomposition, and discusses a DispatchProxy idea that would drop the concrete class. Read on for the trade-offs and deployment caveats, including property name collisions.

Bobcat 1.0
Specs from your tests

Bobcat 1.0 is out: readable C# specifications projected from your tests

JasperFx has released Bobcat 1.0, an MIT-licensed tool that projects human-readable specifications from the test frameworks you already use, including xUnit.net, TUnit, MSTest and NUnit. No Gherkin or wiki files are needed, only C# or F#. It also brings Supervisor for more reliable integration suites and telemetry output aimed at AI agents debugging failing tests.

Visual Studio 2026
Compare commits, fix conflicts
VSVisual Studio Blog Mark Downie 6 d ago

Visual Studio October update: compare commits to your working tree and bulk-resolve conflicts

The October Visual Studio 2026 update lets you compare an earlier commit with your current working tree, including unsaved edits in progress, and resolve merge conflicts across many files at once. It also adds a new Copilot Chat experience, Hot Exit, and keyboard tab reordering. These changes speed up everyday Git work.

C# performans
When optimization pays off
PGDaniel Marbach (planetgeek) Daniel Marbach 6 d ago

When low-level .NET performance optimization is worth the complexity

Daniel Marbach draws on his pull requests to the Azure .NET SDK to explain when low-level performance work pays off. He argues that in library code, small allocation decisions multiply across every caller, yet added complexity carries a maintenance cost. The post offers a practical decision framework for library authors and application developers alike.

ASP.NET Core
Body can't be read twice
DVDEV Community: #aspnetcore Sukhpinder Singh 6 d ago

Reading the request body in middleware leaves handlers with an empty body

Reading the request body in logging middleware can leave the endpoint handler and model binding with an empty body. The author reproduces the problem with a 61-byte JSON POST and shows how EnableBuffering plus a position reset fixes it. A pitfall every ASP.NET Core developer who logs payloads should know.

MauiReactor
UI without bindings
TKTelerik Blogs (Progress) Héctor Pérez Oct 26

Exploring MauiReactor and the MVU pattern in .NET MAUI

MauiReactor is a library that brings the MVU (Model-View-Update) pattern to .NET MAUI, letting you define UI in fluent C# without XAML or bindings. This article builds a habit tracker step by step, covering stateful components, [Prop] parameters for child components and how SetState triggers re-rendering. It is a useful starting point for developers curious about a reactive alternative to MVVM, keeping in mind the library is not officially supported by the .NET MAUI team.

BenchmarkDotNet
Measure before optimizing
DVDEV Community: #csharp Henrique Mauri Oct 25

Measuring .NET performance with AI help using BenchmarkDotNet

The author optimizes a .NET reporting method step by step with BenchmarkDotNet, measuring each change separately. The final version drops from about 1.55 s to 11.9 ms and allocations fall from 33.1 MB to 0.23 MB. It is a useful case for anyone who wants to check AI-proposed optimizations with benchmarks and output comparisons before merging them.

FusionCache 2.9
Two-layer product cache
DVDEV Community: #dotnet nikosst Oct 25

Two-level caching in .NET with FusionCache and Redis

This guide shows how to combine FusionCache's in-process L1 memory with a shared Redis L2 layer in a product catalog API. The author keeps Clean Architecture boundaries intact and focuses on correct cache behavior rather than raw speed numbers. It is a practical starting point for developers who run several instances and need to plan freshness and invalidation.

Feedback

Found a bug or have an idea? Your message lands straight in my inbox.

Type of message