Рефракторим HttpClient в типизированный HttpClient
• 8 min read

Рефракторим HttpClient в типизированный HttpClient

Поговорим, как правильно использовать HttpClient в приложениях на .NET. Почему не стоит создавать новый экземпляр HttpClient для каждого запроса, а также как избежать проблем с DNS и портами. Как использовать фабрику IHttpClientFactory для создания и управления клиентами.

Read more
C# record: with и ссылочные типы
• 3 min read

C# record: with и ссылочные типы

Ключевое слово record в C# существует со времен C# 9, и вы либо любите его, либо ненавидите. Независимо от вашего мнения, при работе с ключевым словом with вы, скорее всего, допустите не совсем очевидную ошибку. Эта ошибка может привести к странному поведению системы и трудно диагностируемым ошибкам. А ошибки никому

Read more
Клиентская валидация в ASP.Net Core без jQuery
• 12 min read

Клиентская валидация в ASP.Net Core без jQuery

На ASP.NET Core сильно повлиял старый .NET Framework System.Web, основанный на ASP.NET Framework, но Net Core принципиально быстрее и современнее. Тем не менее, одна функция попала в ASP.NET Core практически без изменений: валидация на стороне клиента. В этой статье я рассматриваю альтернативу стандартной (поддерживаемой) клиентской валидации

Read more
Настройка RequestDelegate с помощью фильтров
• 11 min read

Настройка RequestDelegate с помощью фильтров

В этой серии статей мы рассмотрели генерацию кода для простых эндпоинтов минимального API. В рамках этого процесса я игнорировал функцию "filters", добавленную в .NET 7, поскольку она добавляет определенную сложность. Что ж, в этой статье мы столкнемся с этой сложностью лицом к лицу и посмотрим, как добавление фильтра изменяет конечный

Read more
Создание окончательного RequestDelegate
• 10 min read

Создание окончательного RequestDelegate

Это седьмая статья из серии: "За кулисами минимальных API". В этой серии статей мы рассмотрели различные элементы, необходимые для превращения эндпоинта minimal API в RequestDelegate, который может вызывать ASP.NET Core. Мы рассмотрели различные классы, извлечение метаданных из обработчика minimal API, а также то, как работает привязка в minimal API.

Read more