头图

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热重载也在不断改进。

Xamarin支持最新的移动版本

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

  • Visual Studio 2022(17.0) -下载
  • Visual Studio 2022 for Mac(17.0) -下载
  • Visual Studio 2019(16.11.6) -下载
  • 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 的支持。

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__)为每个渲染器执行此操作。

  1. 效果——就像自定义渲染器一样,您可以在应用生成器中注册。
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 2022 (17.0) – 下载
• Visual Studio 2022 for Mac (17.0) – 下载
• Visual Studio 2022 预览版 (17.1) – 下载
宣布 .NET MAUI 预览版 10
.NET MAUI 文档
Visual studio 2022

点击下载 Visual Studio 2022


微软技术栈
418 声望994 粉丝

微软技术生态官方平台。予力众生,成就不凡!微软致力于用技术改变世界,助力企业实现数字化转型。