Start Debugging

Блог

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

MSTest 4.4 выводит генератор исходного кода для рефлексии из эксперимента, а проекты Native AOT получают его автоматически

MSTest 4.4 убирает у MSTest.SourceGeneration статус экспериментального и привязывает его к версии MSTest. Тестовые проекты Native AOT подключают его без opt-in, режим ReflectionFree теперь может пропускать обнаружение во время выполнения для простых [TestMethod] и [DataRow], а пять диагностик AOTSG показывают, какие формы тестов не пройдут.
2026-09-04 dotnetnative-aotjit

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

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

Claude Code 2.1.259 добавляет managedMcpServers: раздача MCP-серверов без MDM

До сих пор единственным способом выдать всем разработчикам одни и те же MCP-серверы был managed-mcp.json, файл в системном пути, который забирает исключительный контроль над MCP. Claude Code 2.1.259 добавляет настройку managedMcpServers для HTTP- и SSE-серверов и попутно сужает область действия allowedMcpServers.

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

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

Миграция веб-приложения на Flutter с dart:html на package:web и dart:js_interop

Пошаговая миграция с устаревших dart:html, dart:js_util и package:js на package:web 1.1.1 и dart:js_interop: как найти каждый проблемный импорт с помощью компилятора dart2wasm, что переименовывает dart fix, а что нет, ловушки JSImmutableListWrapper и innerHTML, и как проверить результат через flutter build web --wasm.

Перенос импортов Material и Cupertino во Flutter на пакеты material_ui и cupertino_ui

Полная миграция с package:flutter/material.dart и package:flutter/cupertino.dart на material_ui 1.1.1 и cupertino_ui 1.0.2: что перезаписывает dart fix --code=migrate_design_widgets, почему виджеты сторонних пакетов начинают падать на поиске предка, что на самом деле исправляет MaterialUiCompatibilityBridge и как меняется зависимость от flutter_localizations.

Миграция с 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.