2026-05-23 comparisonmediatrdependency-injection MediatR против простых сервисных классов в 2026: должна ли смена лицензии вас сдвинуть? Сравнение диспетчеризации и конвейера MediatR с прямым вызовом служб: проверка DI, условия лицензии и измерение производительности.
2026-05-22 csharpdotnetdotnet-11 C# 16 превращает unsafe в контракт для вызывающего кода C# 16 переосмысливает ключевое слово unsafe так, что оно передаёт обязательство вызывающему коду, а не молча открывает unsafe-контекст, и теперь внутренние блоки unsafe обязательны.
2026-05-22 comparisondotnetnative-aot Native AOT против ReadyToRun против JIT в .NET 11: что выбрать для поставки? Классический JIT с Dynamic PGO выигрывает по пропускной способности в установившемся режиме, ReadyToRun ускоряет запуск без изменений кода, а Native AOT даёт самый маленький и быстро стартующий бинарник ценой рефлексии и динамического кода. Выбирайте по форме развёртывания, а не по изолированным бенчмаркам.
2026-05-22 comparisonsystem-text-jsonnewtonsoft-json System.Text.Json vs Newtonsoft.Json в 2026 году: что выбрать? Для нового кода на .NET 11 выбирайте System.Text.Json: он встроен, примерно в 2 раза быстрее и единственный работает с Native AOT. К Newtonsoft.Json обращайтесь только ради JSONPath, TypeNameHandling или действительно нестрогого JSON.
2026-05-21 comparisoncsharpasync ConfigureAwait(false) vs значение по умолчанию в .NET 11: имеет ли это ещё значение? ConfigureAwait(false) по-прежнему обязателен в библиотечном коде, который может выполняться под SynchronizationContext (WinForms, WPF, MAUI). В коде приложения на ASP.NET Core, консольном приложении или worker-сервисе, работающих на .NET 11, это no-op.
2026-05-21 cursorai-agentscloud-agents Cursor 3.4 добавляет мультирепозиторные окружения и ускоряет сборки Dockerfile для облачных агентов Cursor 3.4 (13 мая 2026) позволяет одному окружению облачного агента включать несколько репозиториев, добавляет секреты сборки для Dockerfile, пересборки с кэшем слоёв на 70% быстрее и шаг настройки под управлением агента, который проверяет учётные данные до первого запуска.
2026-05-21 comparisoncsharplinq IEnumerable vs IAsyncEnumerable vs IQueryable в C#: что должен возвращать метод? Три интерфейса последовательностей, три модели выполнения. Используйте IQueryable, когда база данных может транслировать запрос, IAsyncEnumerable, когда производитель асинхронный и вам нужна потоковая передача, IEnumerable для всего остального в памяти.
2026-05-21 comparisonaspnetcoreminimal-apis Minimal APIs vs контроллеры в ASP.NET Core 11: что выбрать в 2026 году? В ASP.NET Core 11 по умолчанию выбирайте minimal APIs. Контроллеры берите только тогда, когда нужны возможности MVC, которые minimal APIs всё ещё не покрывают: маршрутизация по соглашениям для множества действий, фильтры в стиле MVC или Razor-представления.
2026-05-20 comparisoncsharpasync async void vs async Task в C#: когда какой вариант правильный async Task - значение по умолчанию, а async void - исключение. Используйте async void только для обработчиков событий, обработчиков верхнего уровня в цикле сообщений и небольшого набора колбэков фреймворка, которые требуют сигнатуры void. Везде остальном async Task выигрывает по обработке исключений, композиции и тестируемости.
2026-05-20 comparisonef-coredapper EF Core 11 vs Dapper для массовых вставок: реальный бенчмарк Для массовых вставок в .NET 11 не побеждают ни EF Core, ни Dapper. Побеждает SqlBulkCopy. Это бенчмарк, причина и то место, которое заслуживает каждый инструмент.