Start Debugging

ASP.NET Core 11

10 статей

Как удалить или скрыть отдельные endpoint, которые MapIdentityApi добавляет в ASP.NET Core

MapIdentityApi<TUser>() добавляет десять endpoint и не позволяет пропустить ни один из них. Вот четыре проверенных способа справиться с этим на .NET 11: скрыть endpoint из OpenAPI, заставить его возвращать 404, перекрыть его или полностью убрать из маршрутизации, плюс ловушка /confirmEmail, из-за которой регистрация превращается в 500.

Как согласовать запись в базу данных и загрузку в Azure Blob Storage в рамках одного запроса ASP.NET Core

Транзакции, охватывающей SQL Server и Blob Storage, не существует. Загружайте по имени, которое база данных уже знает, фиксируйте вторым шагом, компенсируйте при сбое, а окно после аварии пусть подчищает фоновая уборка. Плюс перегрузка UploadAsync, которая молча превращает условное создание в перезапись.

Как прочитать ответ ProblemDetails по RFC 9457 из типизированного HttpClient, не ссылаясь на ASP.NET Core

В BCL нет типа ProblemDetails, а добавление FrameworkReference на Microsoft.AspNetCore.App приводит к тому, что клиент отказывается запускаться в контейнере, где есть только среда выполнения. Вот модель на 20 строк, DelegatingHandler, который превращает problem+json в типизированное исключение, и миф про content-type, который до сих пор повторяет большинство ответов.

Миграция Swashbuckle IOperationFilter и ISchemaFilter на трансформеры OpenAPI в .NET 11

Пофильтровый справочник по миграции для перевода кода IOperationFilter и ISchemaFilter из Swashbuckle на встроенные трансформеры операций и схем в .NET 11, с сопоставлением объектов контекста и изменениями Microsoft.OpenApi v2, которые ломают компиляцию.

Миграция со Swashbuckle на встроенный генератор OpenAPI в .NET 11

Пошаговая миграция со Swashbuckle.AspNetCore на Microsoft.AspNetCore.OpenApi в .NET 11: замена AddSwaggerGen на AddOpenApi, преобразование фильтров операций, схем и документа в трансформеры, сохранение UI и несовместимые изменения Microsoft.OpenApi v2, которые кусаются.

Миграция с IWebHostBuilder на WebApplication.CreateBuilder в .NET 11

Пошаговая миграция со старой модели хостинга на основе Startup.cs и WebHostBuilder на минимальную модель хостинга с WebApplication.CreateBuilder, включая устаревание ASPDEPR008, порядок middleware, IStartupFilter и то, как сохранить работоспособность тестов.

Как разделить логику валидации между сервером и Blazor WebAssembly

Главный источник расхождений в валидации между Blazor WebAssembly клиентом и ASP.NET Core API -- это соблазн писать правила дважды. Это руководство показывает единственную раскладку, которая масштабируется в .NET 11: библиотека классов Shared, владеющая DTO и их валидаторами, потребляемая и WASM клиентом (EditForm + DataAnnotationsValidator или Blazored.FluentValidation), и сервером (фильтр endpoint в minimal API или model binding в MVC), с протестированным циклом, который возвращает серверные ValidationProblemDetails обратно в EditContext.