Regira Engineering Blog

Notes on .NET, TypeScript & Vue

Patterns, gotchas and small wins from fifteen-odd years of .NET and web work — the Regira packages and modules, entity pipelines, editorial front-ends and everything between.

5 articles #csharp ×
.NET / Tips & Tricks

From a Flat List to a Tree in One Line of C#

Series · Hierarchical data

A quick look at turning a flat collection with parent references into a navigable hierarchy, without writing recursion yourself.

5 min read
.NET / Architecture

The Realm at Any Date

Series · People, organisations and alliances

Answer who reported to whom on any past date from the data you already store, with no history tables and no migrations. One dated relationship table and a single filter do it; Westeros supplies three centuries of test data.

17 min read
.NET / Tooling

Copy Files Between Disk, Network Share and Cloud

Series · File storage behind one interface

A small tool that copies files between local disks, network shares and cloud storage, where a new copy job is a config entry, not new code. Built on one storage abstraction, so adding a backend is one small class.

9 min read
.NET / Data & EF Core / Architecture

Westeros, the Iron Throne, and a Model for Complex Relationships

Series · People, organisations and alliances

One table for every customer, supplier and employee, with roles and alliances as dated relationships instead of extra tables. Tested on Westeros, where everyone knows who betrayed whom and when.

Pinned 14 min read
.NET / Tips & Tricks

Test on Disk, Ship to the Cloud

Series · File storage behind one interface

Keep file storage behind one interface and let each environment choose disk, network share or Azure in configuration. Tests run without cloud credentials, and moving your files later is a copy job, not a rewrite. Uploads are typed by the server, so none can pose as a page of your site.

Pinned 6 min read