Blog
30.01.2026How 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.
Read14.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.
Read03.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?
Read21.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.
ReadThere are contraindications for introducing an ORM into your project. Consult your common sense before applying.