Розбираю складне. Будую практичне.

Нотатки про .NET, системний дизайн, хмарні платформи та AI-інженерію. З кодом і компромісами, на які я натрапляю в роботі.

Якщо не знаєте, з чого почати, оберіть трек: .NET Runtime & Performance, Architecture & Resilience, Cloud, Security & Delivery або AI Engineering.

2026

GitHub Stacked PRs: як не топити команду в pull request на 47 файлів

Знайома ситуація. Ви два тижні робили експорт витрат у CSV. Довелося додати новий endpoint, витягнути форматування в окремий сервіс, підправити міграцію, дописати background job і заодно виправити баг у пагінації, бо ...

AI Agent чи deterministic workflow: що обрати в .NET

Задача звучить нескладно: розібрати вхідні тикети підтримки. Визначити категорію, поставити severity, вибрати команду, порахувати час першої відповіді, а іноді запропонувати повернення коштів.

Безпечний MCP Server на ASP.NET Core: OAuth 2.1, scopes та token audience

Уявімо, що ми підключили до корпоративного AI-асистента MCP server для роботи з витратами. Один tool показує список чеків, інший затверджує виплату. На демо все виглядає чудово: сервер приймає bearer token, [Authorize...

Specification Pattern у .NET: як приборкати складні EF Core запити

Запити до бази даних рідко залишаються простими. Спочатку нам потрібно отримати активні замовлення користувача. Потім додається фільтр за датою, статусом і сумою, пошук за email, завантаження пов'язаних сутностей, сор...

Модель загроз AI-агента: prompt injection - це лише початковий вектор атаки

Prompt injection є одним із найвідоміших класів атак на системи з великими мовними моделями. Проте в агентній архітектурі це лише спосіб вплинути на рішення моделі. Коли LLM отримує пам'ять, інструменти, доступ до API...

2025

Result Pattern у .NET: обробка помилок без винятків і null

Обробка помилок і відсутніх значень завжди була однією з найскладніших частин розробки. .NET-розробники звикли покладатися на винятки (exceptions) для помилкових ситуацій і на null-значення для відсутніх даних. Є інши...

.NET JIT та IL: що відбувається з кодом між компілятором і процесором

Коли ви пишете код на C#, F# чи VB.NET і натискаєте F5, процесор не виконує цей код напряму. Спочатку компілятор перетворює його на проміжний код IL (Intermediate Language), а вже потім JIT-компілятор (Just-In-Time) п...

Налаштування заголовків перенаправлення в .NET при роботі з Azure Application Gateway

Коли ми розгортаємо .NET додаток на Azure App Service та налаштовуємо доступ до нього через Azure Application Gateway, виникає типова проблема з визначенням правильного хосту та схеми запиту.Суть проблеми в тому, що з...

Model Context Protocol у .NET: власний MCP сервер на C#

Model Context Protocol (MCP) дозволяє ШІ моделям працювати з вашими даними й сервісами, і в .NET для цього вже є SDK. Розберемо, що це за протокол, яку проблему він вирішує і як зібрати власний MCP сервер на C#.

Валідація запитів із FluentValidation, MediatR та IResult

У .NET додатках валідацію запитів часто будують на зв'язці FluentValidation та MediatR.Традиційно, коли валідація не проходить, ми викидаємо виняток ValidationException.Це працює, але здебільшого не найефективніше.Аль...

ConfigureAwait у .NET: коли він потрібен, а коли ні

Механізм async/await дуже спростив роботу з асинхронними операціями в .NET, але приніс нюанси, про які варто знати, якщо ви хочете писати ефективний код. Один із них - метод ConfigureAwait, який визначає, де продовжит...

Як працює Garbage Collection у .NET: покоління, фази й режими

Збирання сміття (Garbage Collection, GC) - це автоматичний механізм керування пам'яттю, який звільняє розробників від необхідності вручну виділяти та звільняти пам'ять. Саме цим .NET відрізняється від мов, де пам'яттю...

П'ять принципів SOLID на прикладах C#

SOLID - це акронім п'яти фундаментальних принципів об'єктно-орієнтованого програмування та проєктування, представлених Робертом Мартіном.Ці принципи допомагають створювати програмні системи, які є:

Frozen Collections у .NET 8: швидке читання ціною повільного створення

У .NET 8 з'явився новий тип колекцій - Frozen Collections. Вони для випадків, коли дані створюються один раз, а потім їх багато читають, і саме читання в них оптимізоване.Після створення Frozen Collections повністю не...

2024

Перший CI/CD workflow для .NET 8 у GitHub Actions

GitHub - найбільша у світі платформа для спільної розробки програмного забезпечення з інструментами для контролю версій, управління проєктами та командної роботи. В її основі Git, система контролю версій, яка дозволяє...

2023

Підключення до локально встановленого SQL Server з Docker контейнера

В останні десятиліття сфера інформаційних технологій пережила революцію у розгортанні та керуванні програмними додатками. Стартапи та корпорації, розробники та адміністратори, усі знайомі з проблемами, пов'язаними зі ...

Перехоплювачі в Entity Framework Core

Під час розробки програмного забезпечення, інколи виникає потреба автоматично модифікувати певні дії, для прикладу автоматично додавати заголовки до HTTP запитів від клієнта до сервера, виконувати певну логіку до чи п...

Використання TLS/SSL сертифікатів в .net додатку для AWS Beanstalk

В попередній статті ми розібралися як легко створити та додати власний SSL сертифікат до Azure App Service і використовувати його у нашому .net додатку. Сьогодні ми розберемось як виконати ідентичну задачу але будемо ...

Як безпечно зберігати та використовувати секретні дані за допомогою Azure Key Vault

Під час розробки практично будь якого рішення, нам потрібно зберігати певні секретні дані. Це може буде як рядок підключення до БД з обліковими даними про користувача (логін/пароль), так і дані про платіжні системи. В...

Використання TLS/SSL сертифікатів в .net додатку для Azure App Service

З кожним днем все більше і більше компаній зазнають зламів та втрати/витоки персональних даних. В багатьох випадках це звичайний фішинг та неуважність користувачів, але також є багато випадків коли компанії нехтують б...

Нові статті про архітектуру, .NET і AI приходять просто у ваш feed reader, без алгоритмів і спаму. Підписатися на RSS.