Blog

30.01.2026

How I built an full-cache ORM

The core concepts of this ORM first appeared in 2008, when I had just started learning a new programming language called C# and needed a database. Of course, I had no intention of writing an ORM. I simply needed to store data and work with it. The most convenient approach was to map table columns to class fields and then work with the class logic.

At first, I manually unpacked data from a reader and then manually composed INSERT or UPDATE statements when it was time to persist an object. This was tedious, and I wanted to automate it. On top of that, annoying mistakes and typos would appear from time to time like sending the wrong field to the wrong place, or forgetting to add a field everywhere it interacted with the database, which led to “delayed” bugs. I decided to generate code directly from the database structure.

Read

14.12.2025

Why Model-First and where the Truth lives

Relational databases have one minor shortcoming. They do not render tabular data on the user’s screen. On one hand, that’s not really a problem. A database does database things and doesn’t go into UI, where not welcome. On the other hand you must ferry data through another language, sometimes two or three in a web stack. And don’t forget the query language itself. It’s a language too.

All languages are tools to reduce digital chaos. They give you ways to collect scattered fields into one place and even name the resulting structure. In OOP languages that utility is part of the paradigm. Most server-side stacks between the DB and the UI are object oriented. Naturally developers reach for structural language tools to pack table fields into a class. That’s how DTOs, entities, POJOs, and other wrappers appear.

Read

03.12.2025

Why would you ever use an ORM?

Software development is always a search for balance between multiple aspects: development speed (how fast you ship new features), application performance, memory consumption, UI quality, and the cleanliness of your business logic.

In most cases, development speed is more important than performance or memory consumption.

ORM is a tool designed to save development time. But how exactly?

Read

21.11.2025

It’s Time to Move Your System to an ORM

It should have been done long ago. Right at the moment you realized you’d be working with a database. Sure, adopting an ORM now is harder than doing it from day one, but it’s still not too late.

Today I’m going to push my subjective, one-sided, and only correct opinion about why you need an ORM.

There are contraindications for introducing an ORM into your project. Consult your common sense before applying.

Read