Полная поддержка Microsoft .NET 9 станет доступна для UWP-приложений

2024-09-12 1578 комментарии
Microsoft представила предварительную версию поддержки .NET 9 для UWP-приложений. Это обновление позволяет разработчикам модернизировать свои проекты с использованием новейших возможностей платформы, включая поддержку Native AOT (Ahead-of-Time компиляции)

Компания Microsoft представила первую предварительную версию поддержки .NET 9 для приложений Universal Windows Platform (UWP). Это позволяет разработчикам, работающим с UWP, воспользоваться новыми возможностями платформы .NET, включая поддержку Ahead-of-Time (AOT) компиляции, повышение производительности и интеграцию новейших функций C#.

В этой статье мы рассмотрим, как разработчики могут использовать .NET 9 для UWP-приложений, а также обсудим технические детали и шаги, необходимые для настройки среды разработки.

Основные моменты

  • Поддержка Native AOT улучшает производительность и снижает зависимость от runtime.
  • Современный формат проекта и интеграция новых библиотек делают разработку удобнее.
  • Возможность постепенной миграции на WinUI 3 через обновление до .NET 9.

Почему поддержка .NET 9 важна для UWP

UWP — это универсальная платформа для создания приложений, которая используется для разработки Windows-приложений с единым кодом, работающим на различных устройствах, таких как ПК, планшеты, Xbox и HoloLens. Однако со временем Microsoft начала продвигать Windows App SDK и WinUI 3, предоставляя разработчикам больше гибкости в выборе технологий. Несмотря на это, многие разработчики продолжают использовать UWP по ряду причин, таких как возможности платформы и поддержка уже созданных приложений.

С выпуском .NET 9 для UWP Microsoft предоставила разработчикам возможность обновить свои приложения без необходимости полного перехода на WinUI 3. Это значит, что можно воспользоваться новыми функциями и улучшениями .NET 9, такими как Native AOT, оставив при этом UWP в качестве UI-фреймворка.

Основные нововведения: поддержка Native AOT

Одной из ключевых функций, появившихся в .NET 9 для UWP, является поддержка компиляции Native AOT (Ahead-of-Time). Это позволяет компилировать приложения напрямую в машинный код, что улучшает производительность и снижает время запуска. Native AOT заменяет устаревший компилятор .NET Native, который имел ряд недостатков, таких как медленные сборки, ограниченная поддержка новых библиотек и проблемное отладочное окружение.

Преимущества Native AOT:

  • Улучшенная производительность. Компиляция в машинный код обеспечивает более быструю загрузку приложений и повышение эффективности работы.
  • Меньшие требования к runtime. Native AOT снижает зависимость от runtime-компонентов, что делает приложения более автономными.
  • Поддержка современных библиотек. В отличие от .NET Native, Native AOT позволяет использовать последние версии библиотек, таких как Newtonsoft.JSON, и других популярных компонентов, которые требуют современных версий .NET.

Как начать работу с UWP и .NET 9

Для начала работы с .NET 9 и UWP вам потребуется установить необходимые инструменты и компоненты. Вот пошаговая инструкция по настройке окружения разработки:

Установка Visual Studio 2022 17.12 Preview 2:

  • Откройте Visual Studio Installer и перейдите в раздел «Рабочие нагрузки».
  • Выберите «Классические и мобильные приложения» и установите флажок рядом с «Разработка Windows-приложений».
  • В правой панели найдите раздел «Дополнительно» и установите флажок рядом с «Universal Windows Platform tools» и Windows 11 SDK (10.0.26100.0), который необходим для создания UWP-приложений, использующих XAML.

Установка актуальной версии .NET SDK:

  • Загрузите последнюю Nightly-сборку .NET SDK с GitHub.
  • Извлеките .zip-архив в выбранную папку (рекомендуется исключить её из проверки Windows Defender для повышения производительности сборки) и добавьте путь к SDK в системную переменную PATH.

Настройка конфигурации NuGet: Для корректной работы с последней версией .NET 9 нужно настроить nuget.config для использования необходимых пакетов:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
   <add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
  </packageSources>
</configuration>

Создание UWP-проекта с .NET 9:

  • После установки необходимых компонентов, откройте Visual Studio и создайте новый проект, выбрав шаблон Blank UWP App (Preview for .NET 9).
  • Убедитесь, что в настройках проекта выбрана цель Windows 11 22H2, build 26100. Этот шаблон включает минимальную настройку с использованием XAML и .NET 9.

Технические особенности UWP-приложений на .NET 9

Когда вы создаете UWP-приложение на .NET 9, оно имеет несколько особенностей, которые отличают его от классических проектов на UWP:

  • SDK-style .csproj файл. Теперь используется современный SDK-стиль файла проекта .csproj, что делает его более компактным и удобным для работы, исключая необходимость перечисления всех файлов проекта.
  • Использование свойства UseUwp. Это свойство необходимо для использования новых проекций WinRT для типов, таких как Windows.UI.Xaml.*, которые применяются в UWP-приложениях. Оно также помогает проектировать типы .NET для совместимости с UWP XAML.
  • Поддержка Native AOT. Все UWP-приложения, создаваемые с .NET 9, используют компиляцию Native AOT. Это обязательное требование для публикации UWP-приложений в Microsoft Store.
  • Проблемы миграции с .NET Native на Native AOT. Разработчики могут столкнуться с трудностями при переходе на Native AOT, особенно если в приложении используется сложная логика или сторонние библиотеки. В таких случаях важно проверить совместимость всех зависимостей и учесть возможные изменения в производительности.

Ограничения и будущие обновления

На момент выпуска первой предварительной версии поддержки .NET 9 для UWP существуют определенные ограничения:

  • Отсутствие поддержки XAML Designer. В текущей версии нет встроенного дизайнера XAML, который можно использовать для визуального редактирования интерфейса приложения. Однако ожидается, что поддержка будет добавлена в следующих релизах Visual Studio.
  • Необходимость ручной настройки WebView2. В некоторых случаях разработчикам может потребоваться исключить NuGet-пакет WebView2, чтобы избежать ошибок при сборке проекта.
  • Проблемы с сертификацией в Microsoft Store. При использовании Native AOT могут возникнуть предупреждения и ошибки во время проверки приложения через Windows App Certification Kit (WACK), особенно касающиеся использования неразрешенных API Win32. Однако эти ошибки можно игнорировать, так как новая модель безопасности на уровне AppContainer автоматически блокирует неразрешенные вызовы.

Предварительная поддержка .NET 9 для UWP-приложений предоставляет разработчикам путь к модернизации своих приложений с использованием новых возможностей .NET и C#. С помощью компиляции Native AOT можно значительно улучшить производительность и ускорить время загрузки приложений. Важно отметить, что Microsoft видит этот шаг как промежуточный этап перед окончательным переходом на Windows App SDK и WinUI 3, но для тех, кто по-прежнему использует UWP, обновление предоставляет множество преимуществ.

Ожидается, что поддержка .NET 9 для UWP будет расширяться, и в будущих версиях появится больше инструментов для упрощения разработки и миграции.

© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте