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.

26 articles
TypeScript / Vue / Tips & Tricks

Saving, Saved or Failed

Series · Entities front-end

Every form in the app shows saving, saved or failed the same way, instead of each one re-inventing it. One small object carries the state, and one panel shows it.

7 min read
Data & EF Core / Architecture

An Update That Blanks a Field the Form Never Showed

Series · Writing in Regira Entities

Keep an update from blanking a field the form never showed, such as a reference code, a close date or a total. What causes it, why every line involved passes review, and the one-line declaration that prevents it.

5 min read
Data & EF Core / Architecture

Rules That Hold on Every Save

Series · Writing in Regira Entities

One place for each rule a save must obey, so it holds whether a user, an import or a nightly job did the saving. Required fields, timestamps and a code that never changes stop being scattered across controllers.

9 min read
TypeScript / Vue

The API Sends a List, the Screen Needs a Tree

Series · Hierarchical data

Show the flat list an API returns as a tree users can expand, select and drag to a new parent. No recursive component, and illegal drops are refused in the browser before they reach the server.

8 min read
.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
TypeScript / Vue / Architecture

Edit Forms That Survive Reality

Series · Entities front-end

Edit forms where Cancel always works, a save shows what the server stored, a refused delete says so, and a deleted record can be brought back. Four decisions, in Vue.

9 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
Data & EF Core / Architecture

One Database, Many Customers, No Leaks

One customer must never see another's rows, in any list, count or endpoint, including the one added next year. Seven requirements that make that a property of the system, and which of them no library can meet for you.

12 min read
Data & EF Core / Architecture

Let Users Search for This or That

Series · Filtering in Regira Entities

Let users ask for this or that, one brand or anything overdue, in a list that still pages and sorts like every other. How to offer 'or' without a flag nobody trusts.

3 min read
Data & EF Core / Architecture

Filters You Register Once and Cannot Forget

Series · Filtering in Regira Entities

Rules that must hold for every record, such as hiding deleted data or showing each customer only their own, set up once and applied everywhere. They also cover the endpoint added next year, and nobody skips them by accident.

3 min read
Data & EF Core / Architecture

A Search Box That Finds Café When You Type Cafe

Series · Filtering in Regira Entities

A search box that finds 'Café' when someone types 'Cafe', and 'Mercedes-Benz' for 'mercedes', without extra work on every search. The trick: tidy the text once when it is saved, not each time someone searches.

4 min read