Start Debugging

dotnet-11

319 статей · Страница6из32

Переводим приложение .NET MAUI для Android на целевой уровень API 36

Google Play требует целевой уровень API 36 с 2026-08-31, продления действуют до 2026-11-01. Полный путь .NET MAUI от net9.0-android до API 36: смена target framework, жёстко прописанный uses-sdk, который молча удерживает старый уровень, режим edge-to-edge без возможности отказа, предиктивный жест назад и правила для больших экранов.
2026-09-04 dotnetnative-aotjit

Что такое флаг W^X в .NET и нужен ли он Native AOT?

W^X (write xor execute) - правило, по которому ни одна страница памяти не бывает одновременно записываемой и исполняемой. В .NET это переключатель DOTNET_EnableWriteXorExecute, включённый по умолчанию с .NET 7, и существует он исключительно ради JIT. Native AOT его никогда не читает. Разбираем, как среда выполнения его реализует, во что он обходится и когда его отключение - законное решение.

Перевод Android-приложения на .NET MAUI с Mono на CoreCLR в .NET 11

Пошаговый перевод .NET MAUI под Android с Mono на CoreCLR: нижняя граница API 24, свойства MSBuild из мира Mono, которые теперь ломают сборку, почему вырос APK, как профилировать регрессию запуска через dotnet-dsrouter и dotnet-trace, и как на самом деле выглядит откат теперь, когда путь Mono исчез.

Миграция с VSTest на Microsoft.Testing.Platform в SDK .NET 11

Пошаговая миграция с VSTest на Microsoft.Testing.Platform 2.3.3: подключение через OutputType Exe, переключение runner в global.json, логгеры, ставшие репортерами, замена .runsettings на testconfig.json и коды выхода, которые делают зелёную задачу CI красной.

Уход от BinaryFormatter после его удаления в современном .NET

Реализация BinaryFormatter была удалена в .NET 9 и по-прежнему выбрасывает PlatformNotSupportedException в .NET 10 и .NET 11: как выбрать сериализатор на замену, читать уже сохранённые NRBF-блобы через NrbfDecoder и что ломается в WinForms, WPF и ResX.

Framework-dependent vs self-contained vs Native AOT для контейнерного образа .NET 11

Framework-dependent на chiseled-образе aspnet - правильный вариант по умолчанию для сервиса ASP.NET Core на .NET 11, потому что слой среды выполнения общий для всех сервисов, а CVE в среде выполнения закрывается сменой базового образа. Self-contained с trimming и Native AOT дают образ в 2-5 раз меньше и заметно более быстрый холодный старт, и стоят вам именно этого. Реальные опубликованные размеры, арифметика общих слоёв и ошибка вывода базового образа в .NET 11, ломающая путь AOT.

Возврат Task напрямую против проброса через async/await в методе репозитория на C#: что выбрать?

Отказ от async/await в пробрасывающем методе репозитория экономит около 6 нс и 72 байта, а стоит вам кадра стека, семантики try/catch и безопасного освобождения ресурсов. Оставляйте return await, если метод не является чистым пробросом на измеренном горячем пути.

Исправление: CREATE DATABASE permission denied in database 'master' при запуске dotnet ef database update

Migrate() в EF Core всегда проверяет наличие базы данных и создаёт её через жёстко зашитое подключение к master. Выдайте CREATE ANY DATABASE, почините доступ логина к существующей базе или выпускайте идемпотентный SQL-скрипт.
Назад Вперёд