This week in .NET 27.03.2026
📲 Новости
Generative AI for Beginners .NET: Version 2 on .NET 10
Вышел обновлённый бесплатный курс по созданию AI‑приложений на .NET 10. Курс переписан с нуля, состоит из 5 уроков. Главные изменения: использование Microsoft.Extensions.AI (MEAI) вместо Semantic Kernel, внедрение Microsoft Agent Framework и акцент на практические паттерны (RAG, агенты).
🖋️Статьи
Ten Months with Copilot Coding Agent in dotnet/runtime
Итоги 10‑месячного эксперимента с AI‑агентом в репозитории dotnet/runtime. Процент принятых PR вырос с 38% до 69% после написания инструкций для Copilot Coding Agent. Основной вывод из этого всего: успех применения AI гораздо сильнее зависит от качества инструкций, чем от самой модели.
Нативный код в .NET‑библиотеке и как его готовить
Подробное руководство по интеграции нативного кода (C++) в .NET‑библиотеку. На примере MIDI‑библиотеки DryWetMIDI автор разбирает использование DllImport/LibraryImport, кроссплатформенность с поддержкой ARM64 и публикацию в NuGet нативных зависимостей.
Распределённая блокировка RedLock.NET. Просто и со вкусом
Обзор способов реализации распределённых блокировок в .NET с фокусом на паттерн RedLock. Сравниваются различные подходы:
- варианты блокировок через БД (отдельная таблица, INSERT с ON CONFLICT);
- механизм advisory locks в PostgreSQL как наиболее удобное и производительное решение;
- непосредственно RedLock.NET и пример ее использования.
Поиск в коллекциях или когда O(N) быстрее O(1)
Исследование производительности метода Contains для массива и HashSet на малых размерах коллекций. С помощью BenchmarkDotNet автор показывает, что на небольшом количестве элементов в .NET 10 массив может обгонять HashSet за счет векторизации и девиртуализации вызовов.