Start Debugging

Тег: csharp

199 статей · Страница5из20

Как безопасно выполнять fire-and-forget работу в ASP.NET Core с помощью BackgroundService
Вызов Task.Run из контроллера теряет работу при остановке, проглатывает исключения и захватывает уже освобождённые scoped-сервисы. Безопасный паттерн - ограниченная очередь Channel, которую опустошает BackgroundService, открывая новый scope для каждой единицы работы и завершая выполняемую работу в StopAsync.
Как использовать ExecuteUpdate и ExecuteDelete для массовых записей в EF Core 11
Полное руководство по ExecuteUpdate и ExecuteDelete в EF Core 11: какой SQL они генерируют, ловушка трекера изменений, которая молча перезаписывает вашу массовую запись, транзакции, контроль конкурентного доступа через число затронутых строк и сеттеры через делегат из EF Core 10, позволяющие собирать условные обновления обычными инструкциями if.
Как использовать scoped-сервисы внутри BackgroundService в ASP.NET Core 11
BackgroundService является синглтоном, поэтому не может напрямую внедрить scoped-сервис вроде DbContext. Внедрите IServiceScopeFactory, открывайте один scope на единицу работы через CreateAsyncScope, разрешайте сервис внутри него и освобождайте scope по завершении работы.
MAUI vs Avalonia vs Uno Platform: что выбрать в 2026 году?
Для нового кроссплатформенного .NET-приложения для десктопа и мобильных устройств в 2026 году выбирайте Avalonia, если нужен единый набор отрисованных элементов управления на всех целях, Uno, если необходимо охватить и браузер, и MAUI только тогда, когда вам действительно нужны нативные iOS и Android плюс первоклассная поддержка Microsoft.
Blazor Server vs Blazor WebAssembly vs Blazor United в .NET 11: что выбрать в 2026 году?
Для любого нового Blazor-приложения на .NET 11 создавайте Blazor Web App (шаблон, ранее известный как Blazor United) и выбирайте режим рендеринга для каждой страницы. Шаблоны только Server или только WebAssembly остаются оправданными лишь в узких случаях.
EF Core 11 Preview 4: столбцы периода во временных таблицах наконец могут быть настоящими свойствами
EF Core 11 Preview 4 снимает многолетнее ограничение shadow-свойств для временных таблиц SQL Server. PeriodStart и PeriodEnd теперь могут быть обычными CLR-свойствами, настраиваемыми строго типизированными лямбдами HasPeriodStart и HasPeriodEnd.
List<T> vs Span<T> vs ReadOnlySpan<T> в C#: когда что выбирать
List<T> -- это растущая коллекция в куче; Span<T> и ReadOnlySpan<T> -- представления только на стеке поверх памяти, которой вы уже владеете. Используйте List<T> для всего, что вы храните, возвращаете из async или наращиваете; Span<T> для изменяемого представления без аллокаций в синхронном методе; ReadOnlySpan<T> для разбора только для чтения поверх строк, литералов u8 и срезов.
Parallel.ForEach vs Parallel.ForEachAsync vs Task.WhenAll в C#
Используйте Parallel.ForEach для нагружающей CPU работы над данными в памяти, Parallel.ForEachAsync для асинхронного ввода-вывода над множеством элементов с ограничением параллелизма, и Task.WhenAll для небольшого фиксированного fan-out, где нужно запустить все операции сразу и получить результаты.
StringBuilder против интерполяции строк в .NET 11: что выбрать?
Используйте интерполяцию строк для одноразовой сборки фиксированного набора значений; используйте StringBuilder, когда вы добавляете в цикле или по неизвестному числу фрагментов. Разделительная линия - это цикл, а не количество значений.
Назад Вперёд