Microsoft представила dotnetup — менеджер SDK и сред выполнения .NET. Он хранит установки в папке пользователя, поддерживает несколько версий и учитывает закреплённый в проекте SDK через
global.json.После установки инструмента доступны три основные команды:
dotnetup init
dotnetup list
dotnetup update
Первая настраивает окружение и устанавливает актуальный стабильный SDK. Вторая показывает установленные компоненты. Третья обновляет версии в отслеживаемых каналах; точно закреплённые версии остаются на месте.
Инструмент пригодится, если вы ведёте несколько проектов с разными версиями .NET или регулярно проверяете предварительные сборки. Сейчас dotnetup доступен в public preview. Начать удобно с локального окружения macOS или Linux.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤🔥1
При оптимизации кода ReSharper класс с массивом заменили на структуру со встроенным
fixed-буфером. После этого расчёты начали давать неверный результат. Причиной оказался неинициализированный буфер.Компилятор исключает
fixed-буферы из проверки обязательного присваивания полям. У локальной структуры с пользовательским конструктором такой буфер может содержать данные, оставшиеся в памяти.Если ваш код рассчитывает на нули, очистите буфер в конструкторе:
fixed (uint* p = data)
{
new Span<uint>(p, maxLength).Clear();
}
Проверьте это при работе с
unsafe, нативными библиотеками и собственными структурами для вычислений. На современных целевых платформах также можно рассмотреть InlineArray.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👏1
Можно совместить два направления и прокачать навыки сразу в нескольких областях:
Первый курс поможет встроить ИИ в привычный процесс разработки, второй — перейти к созданию собственных интеллектуальных инструментов.
Осталось совсем немного времени — акция заканчивается 31 октября!
Please open Telegram to view this post
VIEW IN TELEGRAM
Пользователь вводит пароль, затем подтверждает вход через Windows Hello, Touch ID или аппаратный ключ. В разборе на ASP.NET Core Identity показано, как добавить passkey вторым фактором после пароля в .NET 10.
Приложение сохраняет подтверждение парольного шага в отдельной короткоживущей cookie. Затем запрашивает passkey, проверяет подпись и сверяет пользователя с тем, кто ввёл пароль. После успешной проверки завершает вход.
Так можно добавить passkey в существующее приложение с паролями. Потребуются провайдер второго фактора, страница подтверждения и два обработчика: выдача параметров WebAuthn и проверка ответа.
Возьмите пример из статьи. Проверьте привязку обоих шагов к одному пользователю, срок действия cookie и CSRF-защиту обработчиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
Тест создаёт UI-компонент, выполняет await и затем обращается к его свойствам. Чтобы такой сценарий работал, код должен продолжиться в UI-потоке приложения. Одной пометки STA для тестового потока недостаточно.
В руководстве по MSTest для UWP и WinUI 3 показана настройка с MSTest 4.5.1 и Microsoft.Testing.Platform 2.5.1. Атрибут
[UITestMethod] позволяет выполнять тест с доступом к настоящему UI-диспетчеру.При настройке CI проверьте модель приложения: для обычного WinUI-процесса и приложения в MSIX запуск устроен по-разному. На чистом агенте также должны быть нужные компоненты Windows App SDK и разрешения для регистрации пакета.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сервис создаёт окружение клиента: сеть, базу, хранилище. В середине работы воркер перезапускается. Теперь нужно выяснить, что уже создано и с какого шага продолжать.
Durable Task записывает историю оркестрации и результаты завершённых шагов. При восстановлении код оркестратора проходит по этой истории, использует сохранённые результаты и доходит до следующего действия. Так можно выразить ожидание согласования, внешний callback и таймер.
В разборе пяти практических сценариев показаны границы такого подхода. Внешние операции проектируйте идемпотентными: стабильный ключ платежа и проверка уже созданного ресурса защищают от повторного действия при сбое.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3❤2
Вызовы StateHasChanged легко добавить по привычке, даже когда Blazor уже планирует обновление компонента. Новые анализаторы помогают находить такие места прямо при разработке.
В ASP.NET Core для .NET 11 также добавлены проверки работы с состоянием аутентификации: ошибки здесь могут оставить интерфейс со старыми сведениями о пользователе. В обзоре изменений есть ссылки на реализации этих проверок.
Если уже тестируете .NET 11 RC, посмотрите новые предупреждения в своём проекте. Для них не требуется переходить на стороннюю библиотеку компонентов: анализаторы входят в инструменты самого фреймворка.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Приложение собирается, устанавливается на iPhone, показывает заставку и закрывается. Если в журнале есть сообщение UIScene life cycle is required for apps built with this SDK, нужно проверить жизненный цикл интерфейса.
В руководстве по миграции разобраны изменения для существующих MAUI-проектов. UIScene управляет окнами приложения и их переходами между активным и фоновым состояниями.
При обновлении сборочного окружения пройдите этот сценарий на устройстве: запуск, сворачивание, возврат и открытие приложения по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Приложению с ИИ-агентом нужны обработка запросов, вызовы инструментов и управление ходом работы. Copilot SDK предоставляет такую среду выполнения, а BYOK позволяет направить запросы в собственное развёртывание модели.
В примере на C# показана настройка подключения к Microsoft Foundry или Azure OpenAI.
Подойдёт для проектов, где уже выбраны модель и облачное окружение. Начните с одного запроса и одного инструмента, затем проверьте авторизацию, обработку ошибок и завершение сессии.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Вызов через интерфейс или базовый класс требует определить нужную реализацию метода. Если JIT знает тип объекта, он может вызвать метод напрямую и встроить его код.
В разборе производительности .NET 11 показано, как этому помогают сведения, собранные во время выполнения. Для частого типа создаётся быстрый путь с проверкой.
Материал полезен при разборе горячих участков кода. Возьмите один пример, запустите его с DisassemblyDiagnoser и посмотрите, какие вызовы остались после оптимизации. Примеры используют предварительную версию .NET 11.
Please open Telegram to view this post
VIEW IN TELEGRAM
Перед обновлением runtime можно измерить важную операцию на текущей и новой версии. BenchmarkDotNet собирает тестовые приложения, выполняет измерения и выводит результаты рядом.
В примерах сравнения .NET 10 и .NET 11 проект настроен сразу на две платформы. Измерения запускают в Release.
Выберите операцию из своего приложения: сериализацию, обработку коллекции или вычисление. Подготовьте одинаковые входные данные и сравните время выполнения и выделение памяти. Для .NET 11 в материале используется предварительная сборка.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👾1