解读最新的 Xamarin 更新

齐乐逸
2023-12-01

Good news——Visual Studio 2022 包括了 Xamarin 对 Android 12和苹果最新的 Xcode 13 版本下的 iOS、iPadOS、macOS 和 tvOS 的支持,以及适用于支持它们的最新 Xamarin.Forms 版本。让我们一起来了解下最新 Xamarin版本,重新审视 Xamarin 的支持政策,并展望2022年第二季度的.NET 6和.NET MAUI。

Visual Studio 2022中的Xamarin

Visual Studio 2022有许多改进和新的体验,Xamarin.Forms应用程序也会得到一些改善。XAML Live Preview(实时预览)是最激动人心的功能之一,它可以在Visual Studio中使您正在运行的应用程序生成镜像,并允许添加布局指南和缩放以获得完美的像素对齐。实时可视化树可以让您看到您的UI层次结构和定位XAML源代码,XAML热重载也在不断改进。

  1. Visual Studio 2022发布说明
  2. XAML热重载
  3. XAML实时预览
  4. XAML实时可视化树
  5. Xamarin的热启动
  6. 已知问题

Xamarin支持最新的移动版本

在过去几个月中,Xamarin 发布了多个 Xamarin.Forms 服务版本,以及来自 Google Apple 的测试版和稳定版的 .NET 绑定。这些sdk可以在Visual Studio 2022的新稳定版和Visual Studio 2019的最新版中获得(Xcode 13.1 sdk支持将在Visual Studio 2019的下一个版本中发布)。

  1. Visual Studio 2022(17.0) -下载
  2. Visual Studio 2022 for Mac(17.0) -下载
  3. Visual Studio 2019(16.11.6) -下载
  4. Visual Studio 2019 for Mac(8.10.12) -下载

Xamarin.Forms 5

Xamarin.Forms 5.0 服务版本 6 于 10 月 18 日发布,自首次发布以来进行了145个修复。这包括对Andriod 12和iOS 15的支持,我们将继续保持每6周发布一次服务。您可以从GitHub和Azure Pipelines的任何pull request和提交中下载构建。也可以使用下方链接查看完整的发布说明。今天就用您最喜欢的NuGet包管理器更新您的应用程序吧,这样您就能更好地升级到.NET MAUI。

Andriod 12

谷歌发布了最新的Andriod 12稳定版,包括全新的Material You设计语言、更新的小部件设计、整体系统性能改进,以及相机、图形和图像、媒体、安全和隐私、存储等方面的新功能和api。有关更新和文档的完整列表,请访问安卓开发者门户

为了支持Andriod 12,我们已经从版本8升级到OpenJDK 11,并更新了安卓设计器、SDK管理器和设备管理器的兼容性。

iOS 15, iPadOS 15, tvOS 15

苹果已经发布了 Xcode 13,其中包括 iOS 15、iPadOS 15 和 tvOS 15。苹果还发布了 Xcode 13.1,它增加了对 macOS Monterey 12 的支持。  

  1. Xcode 13发布说明
  2. Xcode 13.1发布说明

Xamarin 两年的受支持服务版本

随着.NET MAUI发布时间表的改变,以及.NET 6对Android、iOS和macOS的支持,我们想在这个过渡期间向大家更新Xamarin的支持和服务计划。Xamarin 受 Microsoft 现代生命周期管理,该生命周期声明当前 Xamarin 版本在初始版本之后的两年内得到支持,或者直到下一个更新的稳定版本。.NET MAUI 和相关平台将包含在 .NET 和 .NET Core 支持政策中,毕竟它现在是 .NET 的一个统一部分。

这意味着,从Xamarin的最新版本开始,您将获得两年的受支持服务版本,您可以期待在2023年11月之前获得支持。这段时间您可以将现有项目迁移到 .NET 6,我们正在努力为您提供一个顺利的过程。

为过渡到.NET 6做准备

2022年的第二季度,我们将发布一个支持.NET多平台应用程序界面(MAUI)的版本,这是支持跨平台、移动和桌面应用程序的.NET下一个版本。这种转变的首要任务是确保Xamarin应用程序能够升级,以利用.NET、c#和Visual Studio中的最新更新,而无需重写。这意味着Xamarin项目只需要从.NET Framework转移到.NET 6,您就可以继续发布了。

让我们首先一步一步地看看这对任何Xamarin应用程序意味着什么。

步骤1:.NET升级助手

.NET升级助手是一个.NET命令行工具,它可以将您的项目(csproj文件)从Xamarin .NET Framework风格转换为当前的SDK风格项目(所有其他.NET项目类型都经常使用)。正如您所记得的那样,这一转变将Xamarin与.NET结合在一起,所以无论我们正在构建什么样的应用程序,我们都可以共享相同的技术和技能。

步骤2:更新依赖项

转换项目文件格式后,该工具将评估您的项目依赖关系,并报告任何不兼容的地方,以便您重新评估。如果您正在使用来自组件供应商(如DevExpress、Infragistics、Steema、Syncfusion、Telerik或其他)的控件,它们可能已经可用了。可以检查每一个roadmap计划和可用性。

Xamarin Community Toolkit(社区工具包)为升级到.NET 6提供了两个选项。第一个是与.NET 6兼容的工具箱的1对1兼容版本,第二个选择是一个纯粹的.NET 6版本,它利用了.NET中所有的体系结构改进,尽管可能还没有达到与Xamarin Community Toolkit 1:1的同等水平。

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# 文件中为您进行此更改。如果在上一步中没有更新Xamarin.Forms 的NuGet,那么您现在需要解决这些问题。

您还会遇到哪些其他差异?

1. 应用程序与窗口 – Xamarin.Forms 应用程序是单窗口,而 .NET MAUI 应用程序可以是多窗口。这意味着应用程序的根视图已经从根本上升级了。我们保留了App.cs(和App.xaml.cs)的样式,所以您的应用程序可以继续按原样工作。

2. Custom Renderers - .NET MAUI在新的“处理器”架构中不再需要它们,但是我们提供了一个兼容性的方法让您注册,以便继续使用。为了将来的需求,我们建议学习处理程序模式来定制平台控件的外观。例如,假设您有一个安卓的自定义渲染器(库中的CustomEntry) (安卓项目中的CustomEntryRenderer),要告诉.NET MAUI在哪里找到这个渲染器,以及如何使用这个渲染器而不是新的处理程序,请打开项目根目录下的MauiProgram.cs,我们在那里定义了应用程序生成器:

appBuilder

    .UseMauiApp<App>()

    .ConfigureMauiHandlers(handlers =>

    {

#if __ANDROID__

        handlers.AddCompatibilityRenderer(typeof(CustomEntry), typeof(Droid.Renderers.CustomEntryRenderer));

#endif

    });

使用条件编译标识符(如__ANDROID__)为每个渲染器执行此操作。

3. 效果——就像自定义渲染器一样,您可以在应用生成器中注册。

appBuilder
    .UseMauiApp<App>()
    .ConfigureEffects(effects =>
    {
        effects.Add<FocusRoutingEffect, FocusPlatformEffect>();
    });

在Visual Studio 2022中打开项目并开始构建。您可能会遇到一些类型更改或不兼容性。解决这些问题,很快您就会完成向.NET 6的过渡。根据应用程序的复杂性和.NET 6兼容依赖的可用性,这可能需要几个小时到几天的工作时间。

要立即尝试迁移,请试用 .NET 升级助手并提供反馈,以便我们可以在现在和 正式发布版本之间继续改进该助手。

有关将项目从 Xamarin.Forms 迁移到 .NET MAUI 的其他示例,请查看 Javier Suarez Ruiz 的存储库 Xamarin.Forms 到 .NET MAUI

总结

.NET MAUI Preview 10 现已在 Visual Studio 2022 预览频道中提供,并且 Xamarin.Forms 5.0 可用。两者都支持最新的平台版本。如果您的项目开发时间超过 4 个月,或者您需要的一切都已在 .NET MAUI 中准备就绪,那么我们建议从那里开始。

立即开始使用以下资源:

点击下载 Visual Studio Preview

 类似资料: