Hero illustration announcing 'ReSharper Made VS Code a Real Option for .NET Work' with a code editor window on the right and a lightbulb motif, set on a beige dotted background.

ReSharper Made VS Code a Real Option for My .NET Work

Most posts about ReSharper for VS Code want to convert you. This one doesn’t. I write most of my .NET in Rider. I’m not moving. What changed for me back in March 2026, when JetBrains shipped the official ReSharper extension for VS Code, is something smaller and more useful than a conversion story. I can finally pick up VS Code …

Continue Reading
htmxRazor v2.0.0: Platform and DX

htmxRazor v2.0.0: Platform and DX

An interactive playground, a live theme builder, SignalR, and a Kanban board, all on .NET 10 with no breaking changes. htmxRazor v2.0.0 is out today. The six features in this release span three distinct areas: developer tooling in your editor, interactive features on the demo site, and two new library components. This is the first major version since the initial …

Continue Reading
How to Delete and Update Millions of Rows in EF Core Without Loading a Single Entity

How to Delete and Update Millions of Rows in EF Core Without Loading a Single Entity

The Code Every Developer Has Written and Regretted Most EF Core performance disasters are not exotic edge cases. They get written in the first sprint, look clean in code review, and only reveal themselves when row counts hit production scale. The pattern below has ended more than a few on-call rotations badly: On a development database with a few hundred …

Continue Reading
htmxRazor Release Notes for v1.4.0

htmxRazor v1.4.0: SSE Streaming, Multi-step Wizard, and Optimistic UI

v1.4.0 ships today with seven features built around a single theme: the interaction patterns real production applications actually need. Real-time content streaming, multi-step workflows, immediate UI feedback, response-aware forms, and a handful of targeted quality-of-life additions. SSE Stream <rhx-sse-stream> wraps the htmx SSE extension declaratively. One Tag Helper, one server endpoint, no boilerplate: The component renders with hx-ext=”sse”, sse-connect, sse-swap, …

Continue Reading
htmxRazor v1.3.0: Data Table, Accessibility, and Modern CSS

htmxRazor v1.3.0: Data Table, Accessibility, and Modern CSS

v1.3.0 lands today with six features organized around a clear theme: production patterns for .NET developers building server-rendered UIs that work correctly for everyone, including keyboard users and screen reader users. Here is what shipped. Data Table The data table is the feature request I hear most from .NET developers evaluating htmx. Until now there was no MIT-licensed ASP.NET Core …

Continue Reading
htmxRazor 1.2.0: Toast Notifications, Pagination, and the End of CSS Specificity Fights

htmxRazor 1.2.0: Toast Notifications, Pagination, and the End of CSS Specificity Fights

The first feature release after htmxRazor hit 1.1 is here, and it targets the three complaints I hear most from .NET developers building server-rendered apps with htmx: “I need toast notifications,” “I need pagination that works with htmx from the start,” and “your CSS keeps fighting with mine.” Version 1.2.0 addresses all three. Here is what shipped. Toast Notifications That …

Continue Reading
Fencing Tokens and Generation Clock in .NET: Stop Zombie Leaders From Writing

Fencing Tokens and Generation Clock in .NET: Stop Zombie Leaders From Writing

Leader election and leases answer a comforting question: who should be in charge right now. They do not fully answer the dangerous question: who can still write right now. A node can lose its lease, another node can become leader, and the old leader can still push writes through an existing database connection. When that happens, your system is not …

Continue Reading
Stop Wrestling with JavaScript: htmxRazor Gives ASP.NET Core the Component Library It Deserves

Stop Wrestling with JavaScript: htmxRazor Gives ASP.NET Core the Component Library It Deserves

Here is an uncomfortable truth the ASP.NET Core community has been avoiding for too long: server-rendered web development should not require you to adopt React, Vue, or Angular just to get a decent set of UI components. For years, .NET developers have been stuck choosing between two bad options. You can wire up Bootstrap by hand, bolting htmx attributes onto …

Continue Reading
Lease Pattern in .NET: A Lock With an Expiration Date That Saves Your Data

Lease Pattern in .NET: A Lock With an Expiration Date That Saves Your Data

Indefinite locks belong to a world where processes never crash and networks never split. That world does not exist. In a distributed system, “I hold the lock” can mean “I held the lock before my VM paused for 45 seconds.” A lease fixes that by putting a deadline on ownership and forcing the owner to keep renewing that claim. A …

Continue Reading
Leader Election in .NET: Picking One Boss Without Creating Two

Leader Election in .NET: Picking One Boss Without Creating Two

If your service runs on more than one node and still has a single instance assumption, you already have leader election. You just do not have it on purpose. Leader election is the pattern that turns “somebody should run this” into “exactly one node is allowed to run this, and it must keep proving it deserves the role.” This post …

Continue Reading