.NET多平台应用程序UI Maui简介

2020-05-20 01:02:11

你可以用.NET构建任何东西,这是数百万开发人员选择.NET作为他们职业生涯的平台的主要原因之一,也是公司为他们的业务投资的主要原因之一。从.NET5开始,我们开始了统一.NET平台的旅程,将.NET Core和Mono/Xamarin放在一个基类库(BCL)和工具链(SDK)中。

当我们考虑在统一的.NET中构建设备应用程序将是什么样子时,我们会看到许多设备跨多个平台使用,从Android和iOS到Windows和MacOS。为了满足这一需求,我们很兴奋地宣布了一个新的一流UI框架来实现这一点:.NET多平台应用程序UI,亲切地称之为毛伊岛(Maui)。

让我们向您介绍什么是.NET Maui、Maui单一项目开发人员体验、现代开发模式,并展望下一步的旅程。

毛伊岛是越来越受欢迎的Xamarin.Forms工具包的演变,它将于本月迎来6岁生日。多年来,UPS、安永(Ernst&;Young)和达美航空(Delta)等公司一直在利用Xamarin在.NET上的移动专业知识来推动他们的业务;有些公司从一开始就这样做了。它还非常成功地帮助小型企业最大化其开发投资,共享超过95%的代码,并击败竞争对手推向市场。毛伊将这一成功扩展到移动设备上,以拥抱桌面,使其成为在两者之间构建多平台应用程序的最佳方式,特别是我们的新设备,如新的Surface Duo。

Maui简化了.NET开发人员的选择,提供了支持所有现代工作负载的单一堆栈:Android、iOS、MacOS和Windows。每个平台和UI控件的本机功能都在一个简单的、跨平台的API中触手可及,您可以在共享比以前更多的代码的同时提供不折不扣的用户体验。

Maui的构建考虑到了开发人员的生产力,包括开发人员需要的项目系统和跨平台工具。Maui将项目结构简化为单个项目,以面向多个平台。这意味着您只需单击一下即可轻松部署到您希望的任何目标,包括您的台式机、仿真器、仿真器或物理设备。有了内置的跨平台资源,您将能够将任何图像、字体或翻译文件添加到单个项目中,并且Maui将自动设置本地钩子,这样您就可以编写代码了。最后,您将始终可以访问本机底层操作系统API,并且使用新的特定于平台的集成将比以往任何时候都更容易。在Platforms下,您可以添加特定操作系统的源代码文件并访问本地API。有了毛伊岛,一切都在一个地方,你需要它来保持你的生产力。

您掌握了一种构建客户端应用程序的方法,即毛伊岛方式,所有平台都在您的触手可及之处。今天,Scott Hanselman和我将在Build,the Journey to One.NET上进行实际演示。

One.NET的部分愿景是在个人首选项领域为开发人员提供选择,以便您可以最高效地使用.NET。这体现了您在哪种IDE中使用Visual Studio 2019、Visual Studio for Mac,甚至Visual Studio代码。MAUI将在所有这些版本中可用,并且既支持现有的MVVM和XAML模式,也支持未来的功能,如使用C#的模型-视图-更新(MVU),甚至Blazor。

模型-视图-视图模型(Model-View-ViewModel,MVVM)和XAML是毛伊岛的一流特性,它们是几十年来.NET开发人员的主流模式和实践。这将继续增长和发展,以帮助您高效地构建和维护生产应用程序。

public Command ClickCommand{get;}public string text{get;set;}=";Click me";;int count=0;void ExecuteClickCommand(){count++;text=$";您单击了{count}次。";;}。

此外,我们还使开发人员能够编写流畅的C#UI并实现日益流行的模型-视图-更新(MVU)模式。MVU促进了数据和状态管理的单向流动,以及代码优先的开发体验,只需应用必要的更改即可快速更新UI。有关MVU作为一种模式的更多信息,请查看这个ELM编程指南和Thomas Bandt的这个博客。

只读状态<;int>;count=0;[Body]View Body()=>;new StackLayout{new Label(";Welcome to>!";),new Button(()=>;$";您单击了{count}次。";,()=>;count.Value++))};

该模式非常适合于热重新加载,正如您在下面添加的样式、渐变和字体以及从C#立即热重新加载时所看到的那样。

MVVM和MVU提供相同的本机应用、性能和平台保真度。开发人员将能够选择最适合他们的喜好和用例的样式。

Xamarin.Forms开发人员将在.NET Maui中启动新项目,使用他们逐渐熟悉和喜爱的所有相同的控件和API。随着毛伊岛发布的临近,为了帮助开发人员将现有的应用程序顺利过渡到.NET毛伊岛,我们打算提供类似于我们目前迁移到.NET Core的Try-Convert支持和迁移指南。

我们将在今年晚些时候开始发布.NET毛伊预览版,目标是在2021年11月全面推出.NET6。毛伊岛将以与沙玛林相同的6周节奏出货。我们已经在GitHub上发布了毛伊岛路线图,并邀请您今天加入我们!

作为.NET统一的一部分,Xamarin.iOS和Xamarin.Android将作为用于iOS的.NET和用于Android的.NET成为.NET6的一部分。因为这些绑定是Apple和Google提供的SDK的投影,所以没有什么变化,但是构建工具、目标框架名字对象和运行时框架名字对象将更新以匹配所有其他.NET6工作负载。我们致力于让.NET开发人员与最新的移动SDK保持同步,这是.NET毛伊岛的基础,并且一直坚定不移。当.NET6发布时,我们希望发布当前形式的Xamarin SDK的最终版本,该版本将服务一年。到那时,所有的现代工作都将转移到.NET6。

Xamarin.Forms将在今年晚些时候发布一个新的主要版本,并在2021年11月继续通过.NET6GA每6周发布一次次要版本和服务版本。Xamarin.Forms的最终版本将在发布后提供一年的服务,所有现代工作都将转移到.NET Maui。

请在我们全新的存储库dotnet/maui加入我们的毛伊岛之旅。一定要开始并观看以获得通知,然后加入对描述我们希望如何发展代码库的提案的讨论。这是将Xamarin和Xamarin直接连接到.NET核心的漫长旅程的开始,我们很高兴能与您一起公开地做这件事。