Visual Studio 2022 и Xamarin: что нового

На этой неделе .NET Conf 2021 отмечает выпуск .NET 6, теперь доступна Visual Studio 2022, и мы рады сообщить, что Visual Studio 2022 также включает поддержку Xamarin для Android 12, последних выпусков Apple Xcode 13 для iOS, iPadOS, macOS и tvOS, а также последние выпуски службы Xamarin.Forms, которые работают с обоими. Давайте подведем итоги последних выпусков Xamarin, доступных сегодня, пересмотрим политику поддержки Xamarin и заглянем в будущее на пути к .NET 6 и .NET MAUI, которые появятся во втором квартале 2022 года.

.NET 6 — общедоступная версия, а поддержка .NET Muti - platform App UI (MAUI) для мобильных и настольных компьютеров уже на подходе! Сегодня продолжайте создавать свои производственные приложения с помощью Xamarin, ознакомьтесь с предварительными версиями .NET MAUI, поскольку мы работаем над нашим выпуском во втором квартале 2022 года, а когда вы будете готовы, попробуйте перенести свои проекты с помощью нашего помощника по обновлению .NET.

Xamarin в Visual Studio 2022

В Visual Studio 2022 представлено множество улучшений и новых возможностей, и приложения Xamarin.Forms также получают их. XAML Live Preview — одна из самых захватывающих функций, которая отражает работающее приложение в Visual Studio и позволяет добавлять направляющие макета и масштабирование для идеального выравнивания пикселей. Живое визуальное дерево позволяет просматривать иерархию пользовательского интерфейса и находить источник XAML, а горячая перезагрузка XAML также продолжает улучшаться.

Xamarin поддерживает последние мобильные версии

За последние несколько месяцев Xamarin выпустила несколько служебных выпусков для Xamarin.Forms и привязок .NET как для бета-версий, так и для стабильных выпусков от Google и Apple. Эти пакеты SDK доступны в новом стабильном выпуске Visual Studio 2022 и обслуживающих выпусках Visual Studio 2019 (поддержка пакетов SDK Xcode 13.1 будет добавлена ​​в следующем сервисном выпуске для Visual Studio 2019).

Xamarin.Forms 5

Сервисный выпуск 6 Xamarin.Forms 5.0 был выпущен 18 октября, в него было внесено 145 исправлений по сравнению с 5.0, первоначально выпущенным 5 января. Это включает в себя поддержку Android 12 и iOS 15, и мы продолжаем поставлять сервисные версии примерно каждые 6 недель. Нужен релиз раньше? Помните, что вы можете загружать сборки из GitHub и Azure Pipelines из любого запроса на вытягивание и фиксировать. Доступны полные примечания к выпуску. Обновите свои приложения сегодня, используя свой любимый диспетчер пакетов NuGet, и вы будете в лучшем положении для последующего обновления до .NET MAUI.

Андроид 12

Google выпустила свою последнюю стабильную версию Android 12, которая включает в себя полностью новый язык дизайна Material You, модернизацию Material Design, обновленный дизайн виджетов, общие улучшения производительности системы, а также новые функции и API-интерфейсы для камеры, графики и изображений, мультимедиа, безопасности и конфиденциальности. , хранение и многое другое. Полный список обновлений и документацию см . на портале разработчиков Android.

Для поддержки Android 12 мы обновили OpenJDK 11 с версии 8, а также обновили конструктор Android, диспетчер SDK и диспетчер устройств для обеспечения совместимости.

iOS 15, iPadOS 15, tvOS 15

Apple выпустила Xcode 13, который включает iOS 15, iPadOS 15 и tvOS 15. На прошлой неделе Apple также выпустила Xcode 13.1, в котором добавлена ​​поддержка macOS Monterey 12.

Поддержка Xamarin в течение 2 лет

В связи с изменением графика доставки .NET MAUI и поддержкой Android, iOS и macOS в .NET 6 мы хотим сообщить вам о плане поддержки и обслуживания Xamarin во время этого перехода. Xamarin регулируется современным жизненным циклом Microsoft, в котором указано, что текущий выпуск Xamarin поддерживается в течение двух лет после первоначального выпуска или до более нового, последующего текущего выпуска. .NET MAUI и связанные платформы будут подпадать под действие Политики поддержки .NET и .NET Core, поскольку, в конце концов, теперь это единая часть .NET.

Это означает, что из последнего текущего выпуска Xamarin вы получите два года поддерживаемых выпусков служб. Как только что было отмечено выше, Android и iOS выпустили новые выпуски, поэтому вы можете рассчитывать на поддержку до ноября 2023 года. Это сроки, в которые вы должны перевести существующие проекты на .NET 6, и мы работаем над тем, чтобы сделать этот процесс для вас гладким.

Подготовка к переходу на .NET 6

Во втором квартале 2022 года мы выпустим поддерживаемую версию .NET Multi-platform App UI (MAUI), следующую версию поддержки .NET для кроссплатформенных, мобильных и настольных приложений. Главным приоритетом для этого перехода является обеспечение возможности обновления приложений Xamarin для использования последних достижений в .NET, C# и Visual Studio без перезаписи. Это означает, что проект Xamarin нужно всего лишь перенести из .NET Framework в .NET 6, и вы можете продолжить поставку.

Давайте сначала рассмотрим, что это означает, шаг за шагом для любого приложения Xamarin.

Шаг 1. Помощник по обновлению .NET

Помощник по обновлению .NET — это инструмент командной строки dotnet, который выполняет базовое преобразование вашего проекта (файла csproj) из стиля Xamarin .NET Framework в текущий проект стиля SDK, который обычно используется всеми другими типами проектов .NET. Как вы помните, этот переход объединяет Xamarin с .NET, поэтому мы используем одни и те же технологии и навыки независимо от того, какие приложения мы создаем.

Шаг 2: Обновление зависимостей

После преобразования формата файла проекта инструмент оценит зависимости вашего проекта и сообщит о любых несовместимостях, чтобы вы могли переоценить их. Если вы используете элементы управления от поставщиков компонентов, таких как DevExpress, Infragistics, Steema, Syncfusion, Telerik или других, они могут быть уже доступны. Уточните у каждого план дорожной карты и доступность.

Xamarin Community Toolkit предоставляет два варианта обновления до .NET 6. Первый — это версия набора инструментов, совместимая с 1-к-1, которая совместима с .NET 6. Второй вариант — чистая версия .NET 6, которая использует преимущества из всех архитектурных улучшений в .NET, хотя, возможно, еще не имеет паритета 1-к-1 с Xamarin Community Toolkit; проверьте, есть ли в наличии то, что вам нужно.

Xamarin.Essentials теперь является частью .NET 6 и .NET MAUI, поэтому вы получите это без дополнительной зависимости от NuGet.

Если ваш проект — Xamarin.Android или Xamarin.iOS, вы вполне можете сделать это прямо здесь. Скомпилируйте и протестируйте ваше приложение.

Шаг 3 (необязательно): Xamarin.Forms в .NET MAUI

.NET MAUI использует те же имена элементов управления, имена макетов, шаблоны навигации и функции XAML, что и ваши приложения в Xamarin.Forms. Это означает, что все будет работать как есть. Так что же изменилось?

.NET MAUI использует пространство имен «Microsoft.Maui» вместо «Xamarin.Forms». Помощник по обновлению .NET внесет это изменение как в файлы XAML, так и в файлы C#. Если вы не обновили NuGets, которые ссылаются на типы Xamarin.Forms на предыдущем шаге, версиями, которые теперь используют Microsoft.Maui, вам нужно решить их сейчас.

С какими еще отличиями вы столкнетесь?

1) Приложение или окно. Приложения Xamarin.Forms представляют собой одно окно, в то время как приложения .NET MAUI могут быть многооконными. Это означает, что корневое представление приложения было существенно обновлено. Мы сохранили стиль App.cs (и App.xaml.cs), чтобы ваши приложения могли продолжать работать как есть.

2) Пользовательские визуализаторы — .NET MAUI больше не нуждается в них в новой архитектуре «обработчика», однако мы предоставляем вам метод совместимости для их регистрации, чтобы вы могли продолжать их использовать. Для будущих нужд мы рекомендуем изучить шаблон обработчика, чтобы настроить внешний вид элемента управления платформой. Например, допустим, у вас есть собственный рендерер ( CustomEntryв библиотеке) для Android ( CustomEntryRendererв проекте Android). Чтобы указать .NET MAUI, где найти и как использовать этот рендерер вместо нового обработчика, откройте MauiProgram.cs в корне вашего проекта, где мы определили сборщик приложений:

appBuilder
    .UseMauiApp()
    .ConfigureMauiHandlers(handlers =>
    {
#if __ANDROID__
        handlers.AddCompatibilityRenderer(typeof(CustomEntry), typeof(Droid.Renderers.CustomEntryRenderer));
#endif
    });

Вот и все. Сделайте это для каждого средства визуализации, используя идентификаторы условной компиляции, такие как __ANDROID__.

3) Эффекты — как и в случае с пользовательскими рендерерами, вы можете зарегистрировать эффекты в конструкторе приложений.

appBuilder
    .UseMauiApp()
    .ConfigureEffects(effects =>
    {
        effects.Add();
    });

Откройте свой проект в Visual Studio 2022 и начните сборку. Вы можете столкнуться с несколькими изменениями типа или несовместимостью. Решите их, и очень скоро вы завершите переход на .NET 6.

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

Чтобы попытаться выполнить миграцию сегодня, попробуйте Помощник по обновлению .NET и оставьте отзыв, чтобы мы могли продолжать улучшать Помощник с настоящего момента до выпуска общедоступной версии.

Дополнительные примеры переноса проектов из Xamarin.Forms в .NET MAUI см. в репозитории Xamarin.Forms Хавьера Суареса Руиса в .NET MAUI.

Запуск проектов сегодня

.NET MAUI Preview 10 доступен сегодня на канале предварительной версии Visual Studio 2022, а Xamarin.Forms 5.0 доступен. Оба поддерживают последние версии платформы. Если срок разработки вашего проекта превышает 4 месяца или все, что вам нужно, уже готово в .NET MAUI, то мы рекомендуем начать с него. В противном случае Xamarin.Forms — ваш лучший выбор, и вы можете увидеть, что вас ждет впереди для перехода на .NET 6, когда вы будете готовы.

Начните сегодня с этими ресурсами:

Оглавление

Материалы по теме