解读最新的 Xamarin 更新

85d622953ccf632d33c51a0c9c7ee601.png

微软中国MSDN  点击上方蓝字关注我们

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

ccc0238d92748288c05774dfafaee65e.png

4d4cc1f1c668afdd699e78903bfe8953.png

Visual Studio 2022中的 Xamarin

61a55ebdf59043a262fb7bf7796af104.png

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

  • Visual Studio 2022发布说明

    https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes

  • XAML 热重载

    https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes#xaml-hot-reload

  • XAML 实时预览

    https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes#XAMLLivePreview-170

  • XAML 实时可视化树

    https://docs.microsoft.com/en-us/visualstudio/xaml-tools/inspect-xaml-properties-while-debugging?view=vs-2022

  • Xamarin 的热启动

    https://docs.microsoft.com/en-us/xamarin/xamarin-forms/deploy-test/hot-restar

  • 已知问题

    https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes#known-issues

455691227e7e43c2b48d5e30678fc794.png

Xamarin 支持最新的移动版本

85071fc9b8045a3a07dbdc7ab4a57272.png

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

  • Visual Studio2022(17.0) 

    https://visualstudio.microsoft.com/downloads/

  •  Visual Studio2022 for Mac(17.0) 

    https://visualstudio.microsoft.com/downloads/

  • Visual Studio2019(16.11.6) 

    https://visualstudio.microsoft.com/downloads/

  • Visual Studio2019 for Mac(8.10.12) 

    https://visualstudio.microsoft.com/downloads/

361be4ec509f16c11dfad89c6680e85e.png

Xamarin. Forms 5

474fd2d36626c288bde181c1863ae316.png

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

  • 构建说明

    https://www.youtube.com/watch?v=tg3pyuIg55k

  • 完整的发布说明

    https://docs.microsoft.com/en-us/xamarin/xamarin-forms/release-notes/

Android 12

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

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

  • 安卓开发者门户

    https://developer.android.com/about/versions/12/summary

iOS 15,iPadOS 15,tvOS 15

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

  • Xcode 13发布说明

    https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes

  • Xcode 13.1发布说明

    https://developer.apple.com/documentation/xcode-release-notes/xcode-13_1-release-notes

182c0b9a461dc0e320bde95bf4cab0f1.png

Xamarin 两年的受支持服务版本

2195e231bc2123f58626140c4cd77966.png

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

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

  • 时间表

    https://devblogs.microsoft.com/dotnet/update-on-dotnet-maui/

  • 现代生命周期

    https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin

  • .NET 和 .NET Core 支持政策

    https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core

062319345d166d5ad7af4d3ea3471a4c.png

为过渡到.NET 6做准备

caf86595d81488fc1f4c1f2ebde6084a.png

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

让我们首先一步一步地看看这对任何 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

.NETMAUI 使用的控件命名、布局命名、导航模式和 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),要告诉.NETMAUI在哪里找到这个渲染器,以及如何使用这个渲染器而不是新的处理程序,请打开项目根目录下的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 SuarezRuiz 的存储库 Xamarin.Forms 到 .NET MAUI。

  • .NET 升级助手

    https://github.com/dotnet/maui/wiki/Migrating-from-Xamarin.Forms-(Preview)

  • Xamarin.Forms 到 .NET MAUI

    https://github.com/dotnet/maui/wiki/Migrating-from-Xamarin.Forms-(Preview)

总结

5aedb5be327820fafe8eee5d92df0848.png

c895fb9d9501134799945f6ed1da1143.gif

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

欢迎立即开始使用以下资源:

  • Visual Studio2022 (17.0) 

    https://visualstudio.microsoft.com/downloads/

  • Visual Studio2022 for Mac (17.0) 

    https://visualstudio.microsoft.com/downloads/

  • Visual Studio2022 预览版 (17.1) 

    https://visualstudio.microsoft.com/vs/preview/

  • 宣布 .NET MAUI 预览版 10

    https://devblogs.microsoft.com/dotnet/announcing-net-maui-preview-10/

  • .NET MAUI 文档

    https://docs.microsoft.com/dotnet/maui

  • Visual studio 2022

    https://visualstudio.microsoft.com/vs/preview/

a518e12a9d1265ac221dd5be7c412105.png

e2112318b6e63dab683f633e8542d6e4.gif

 下载 Visual Studio 2022

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原来医生的处方不是随便乱写的...

1 奇奇怪怪的知识又增加了&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 像极了早上刚睡醒炸毛的你▼3 原来医生的处方不是瞎写的▼4 当爷爷不当孙子&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼5 40厘米的身高差&#xff08;素材来源网络&#xf…

Android之解决Gigaset手机不能设置DeviceOwner权限提示already provisioned问题

客户那里有Gigaset手机,安装我们的产品需要注入DeviceOwner,但是刚恢复默认出厂的Gigaset手机很奇葩,注入权限的提示下面错误,导致不能使用我们的产品 设置DeviceOwner权限是有限制的,需要手机账号(acount)为0 1 我们用命令查看手机的帐号 adb shell dumpsys account …

收集网络状态(Ping),并用邮件通知管理员

在没有第三方工具对网络进行监控的话&#xff0c;要检查网络中某台主机&#xff0c;或是某个IP地址通讯是否正常&#xff0c;我们通常用手动PING来进行测试。有了PowerShell&#xff0c;我们可以用他定时Ping网络上的几个IP地址&#xff0c;然后把ping的个延时时间用邮件通知给…

sql 某列数据全部为0则不显示该列_数据产品经理养成记(五):汇总分析

学会了如何查找数据后&#xff0c;接下来就要对数据进行分析处理&#xff0c;比如求和、平均值、加总等等。这些对数据的加工处理通过汇总函数来实现。汇总函数在之前的两篇文章中都有涉及&#xff0c;这里采用概念--案例--总结的方式&#xff0c;集中介绍一下。1.什么是汇总函…

vim学习日志(5):vim下wimrc的配置,解决中文乱码问题

解决linux下vim乱码的情况&#xff1a;(修改vimrc的内容&#xff09; 全局的情况下&#xff1a;即所有用户都能用这个配置 文件地址&#xff1a;/etc/vimrc 在文件中添加&#xff1a; set fileencodingsutf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencodingutf-8 set enco…

Android插件化开发之AMS与应用程序(客户端ActivityThread、Instrumentation、Activity)通信模型分析

转载来自&#xff1a;http://blog.csdn.net/qinjuning/article/details/7262769 今天主要分析下ActivityManagerService(服务端) 与应用程序(客户端)之间的通信模型&#xff0c;在介绍这个通信模型的基础上&#xff0c;再 简单介绍实现这个模型所需要数据类型。 本文所介绍内容…

iOS开发UI篇—直接使用UITableView Controller

iOS开发UI篇—直接使用UITableView Controller 一、一般过程 1 //2 // YYViewController.h3 // UITableView Controller4 //5 // Created by 孔医己 on 14-6-2.6 // Copyright (c) 2014年 itcast. All rights reserved.7 //8 9 #import <UIKit/UIKit.h> 10 11 inter…

怎么做图片文字二维码一起_怎么做?才能让文字编排更出彩

在之前视觉设计文章中&#xff0c;我把视觉设计大致罗列了四个方向&#xff0c;更多的是希望能够为大家带来一些努力方向&#xff0c;在设计的路上不那么困惑迷茫&#xff0c;视觉设计本身涵盖的范围就比较广&#xff0c;同时也没有什么衡量的标准和具体的特征&#xff0c;只有…

.NET6之MiniAPI(八):日志

说明&#xff1a;本篇简单说一下日志中常用的几个点&#xff0c;关于日志&#xff0c;后面重点会说到三方日志提供程序在MiniAPI中&#xff0c;可以通过方法或构造函数中&#xff0c;获取框架自动注入的日志类型&#xff0c;如下方式&#xff1a;app.MapGet("/test",…

为什么你闻不到自己胳肢窝的味道?

▲ 点击查看生活中&#xff0c;我们常常会选择性地忽略一些事。吃螺蛳粉的人不会觉得屋子臭&#xff0c;而别人身上有一点烟味就可以闻到。公司的厕所&#xff0c;别人用完后&#xff0c;总觉得比自己用完时更臭。夏天胳肢窝出汗的味道&#xff0c;自己从来都闻不到&#xff0c…

Android插件化开发之Hook StartActivity方法

第一步、先爆项目demo照片&#xff0c;代码不多&#xff0c;不要怕 第二步、应该知道Java反射相关知识 如果不知道或者忘记的小伙伴请猛搓这里&#xff0c;Android插件化开发基础之Java反射机制研究 http://blog.csdn.net/u011068702/article/details/49863931第三步、应该知道…

ArcGis融合小多边形到相邻多边形

&#xfeff;&#xfeff;在有的时候&#xff0c;我们的数据中可能会有许多细小的图斑&#xff0c;这些并不是我们想要的&#xff0c;需要将它们合并到周围的图斑中&#xff0c;如果一个一个手动合并&#xff0c;那工作量之大简直不敢想象。现在借助ArcGIS的Eliminate工具可以很…

oracle 48小时内_近了近了,内马尔正大步向巴萨走来,西媒称有望48小时内敲定转会...

“即将完成&#xff01;”8月28日的西班牙《每日体育报》给巴萨球迷送上了好消息&#xff0c;称在巴萨高层与大巴黎高层进行最新一轮谈判后&#xff0c;内马尔已经非常接近巴萨了。按照《每日体育报》的说法&#xff0c;巴萨和大巴黎有望在未来24到48小时内就内马尔的转会达成协…

《随机过程》布朗运动理论中的两个反常问题

全世界只有3.14 % 的人关注了爆炸吧知识1827 年&#xff0c;英国植物学家布朗&#xff08;Brown&#xff09;用显微镜观察悬浮在液体中的花粉微粒时&#xff0c;发现花粉微粒总是在做无规则运动。后来人们发现&#xff0c;这是一种广泛存在于自然界、工程技术和社会经济等领域中…

linux之用2张图片描述vim常见命令

对了&#xff0c;使得光标跳转到最后一行是这个命令 G

读《好好学习:个人知识管理精进指南》

关于学习的文章之前写过两篇&#xff1a;《掌握好的学习方法&#xff0c;让你在职场更有竞争力》《程序员是终身学习的职业&#xff0c;应该怎么学习&#xff1f;》我们都是终身学习者&#xff0c;我深知学习的重要性&#xff0c;所以每隔一段时间&#xff0c;有些新的心得和想…

跨域解决方案大全

什么是跨域 注&#xff1a;本文完整示例地址先来说一个概念就是同源&#xff0c;同源指的是协议&#xff0c;端口&#xff0c;域名全部相同。 同源策略&#xff08;Same origin policy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺…

2013年下半年信息系统项目管理师考试试卷(回忆版)

2013年下半年信息系统项目管理师上午试卷&#xff08;网友回忆版&#xff09;信息系统的生命周期可以分为立项、开发、运维和消亡4个阶段&#xff0c;应在信息系统建设的&#xff08;1&#xff09;考虑系统消亡的条件和时机。&#xff08;1&#xff09;A&#xff0e;初期B&…

酱油和gbt酱油哪个好_酱油可不是越贵越好?看清瓶身上的5个字,教你1分钟买到好酱油...

今天妈妈做饭说酱油用完了&#xff0c;让我去打酱油的地方打5毛钱的酱油&#xff0c;我拿起塑料壶去打酱油&#xff0c;闻起来香香的&#xff0c;一个推自行车的过来&#xff0c;我问他这酱油是勾兑酱油吗&#xff1f;推自行车的小哥&#xff0c;看了我一眼&#xff0c;问我是监…