Start Debugging

Блог

Страница 64 из 91

Как добавить ограничение скорости для отдельных endpoint в ASP.NET Core 11

Полное руководство по ограничению скорости (rate limiting) для отдельных endpoint в ASP.NET Core 11: когда выбирать fixed window против sliding window, token bucket или concurrency, чем отличаются RequireRateLimiting и [EnableRateLimiting], партиционирование по пользователю или IP, callback OnRejected и ловушка распределённого развёртывания, в которую попадают все.

Как вызвать Claude API из Minimal API на .NET 11 со стримингом

Стримьте ответы Claude из minimal API на ASP.NET Core 11 от начала до конца: официальный Anthropic .NET SDK, TypedResults.ServerSentEvents, SseItem, IAsyncEnumerable, поток отмены и подводные камни, которые молча буферизуют ваши токены. С примерами для Claude Sonnet 4.6 и Opus 4.7.

Как написать генератор исходного кода для INotifyPropertyChanged

Полное руководство по созданию собственного инкрементального генератора исходного кода для INotifyPropertyChanged в C# 14 и .NET 11: пайплайн IIncrementalGenerator, маркерные атрибуты, вывод partial class, паттерн SetProperty и как оставаться совместимым с AOT.

Экспорт диалогов Claude Code в PDF с помощью jsonl-to-pdf

Практическое руководство по превращению JSONL-файлов, которые Claude Code пишет в ~/.claude/projects/, в готовые к публикации PDF с помощью jsonl-to-pdf, с вложенностью субагентов, скрытием секретов, компактной и тёмной темами и рецептами для CI.

Как добавить prompt caching в приложение на Anthropic SDK и измерить долю попаданий в кеш

Добавьте prompt caching в приложение на Python или TypeScript с Anthropic SDK, правильно расставьте точки cache_control и читайте cache_read_input_tokens и cache_creation_input_tokens, чтобы посчитать реальную долю попаданий в кеш. С расчётом цены для Claude Sonnet 4.6 и Opus 4.7.

Как определить, что запись файла в .NET завершена

FileSystemWatcher срабатывает на Changed до того, как писатель закончил. Три надёжных паттерна для .NET 11, чтобы узнать, что файл полностью записан: открытие с FileShare.None, дебаунс по стабилизации размера и трюк с переименованием на стороне продьюсера, который полностью устраняет проблему.

Как разделить логику валидации между сервером и 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.

Как правильно использовать SearchValues<T> в .NET 11

SearchValues<T> обгоняет IndexOfAny в 5-250 раз, но только если использовать его так, как ожидает среда выполнения. Правило кеширования через static, ловушка StringComparison, когда не стоит и недокументированный трюк инверсии через IndexOfAnyExcept.