.NET 跨平台 UI 框架 MAUI终于来了

在Build 2020开发者大会上,微软宣布推出 .NET 官宣跨平台 UI 框架 MAUI,全称是 .NET Multi-platform App UI。正式版将在 .NET 6 和大家见面。

您可以使用.NET进行任何构建。这是成千上万的开发人员选择.NET作为其职业生涯平台,而公司为其业务进行投资的主要原因之一。使用.NET 5,我们开始了统一.NET平台的旅程,将.NET Core和Mono / Xamarin集成在一个基类库(BCL)和工具链(SDK)中。

当我们考虑在统一的.NET中构建设备应用程序的外观时,我们看到跨多个平台使用的许多设备,从Android和iOS到Windows和macOS。为了满足这一需求,我们很高兴地宣布一个新的一流的UI框架就可以做到这一点:.NET多平台应用程序UI,亲切地称为.NET MAUI。

让我们向您介绍.NET MAUI是什么,单一项目开发人员的经验,现代化的开发模式以及对未来的展望。

MAUI概述

什么是.NET MAUI?
.NET MAUI是日益流行的Xamarin.Forms工具箱的演变,该工具箱本月已经有6年历史了。多年来, UPS,Ernst&Young和Delta等公司一直在利用.NET上Xamarin的移动专业知识来推动其业务发展。从一开始就有些。它在帮助小型企业最大化其95%以上代码共享的开发投资并击败竞争对手进入市场方面也非常成功。.NET MAUI将这一成功扩展到了移动设备上,从而囊括了桌面设备,这是在两者之间构建多平台应用程序的最佳方法,尤其是我们的新设备(例如新的Surface Duo)。

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

单一项目开发人员经验

.NET MAUI的构建考虑了开发人员的生产力,包括开发人员需要的项目系统和跨平台工具。.NET MAUI将项目结构简化为一个针对多个平台的项目。这意味着您只需单击一下鼠标,即可轻松地将其部署到所需的任何目标,包括台式机,仿真器,仿真器或物理设备。使用内置的跨平台资源,您可以将任何图像,字体或翻译文件添加到单个项目中,.NET MAUI将自动设置本机挂钩,以便您可以进行编码。最后,您将始终可以访问本机底层操作系统API,并且通过特定于新平台的集成将比以往更加轻松。在平台下,您可以添加特定操作系统的源代码文件并访问本机API。用。

.NET MAUI单个项目

image

这提供了:

  • 一个针对多个平台和设备的项目
  • 一个位置来管理字体和图像等资源
  • 多目标组织您特定于平台的代码
  • 您掌握了一种构建客户端应用程序的方法,MAUI方法,并且所有平台都在您的控制范围之内。今天,Scott Hanselman和我将在Build,《通往一个.NET的旅程》中进行实际演示。

现代应用程式模式

.NET的愿景的一部分是在开发人员的个人喜好方面为开发人员提供选择,以便使用.NET可以提高工作效率。这表明您在哪个IDE中使用Visual Studio 2019,Visual Studio for Mac甚至是Visual Studio Code。.NET MAUI将在所有这些版本中可用,并支持现有的MVVM和XAML模式以及将来的功能,例如使用C#甚至是Blazor的Model-View-Update(MVU)。

MVVM

Model-View-ViewModel(MVVM)和XAML是.NET开发人员几十年来的主要模式和实践,它们是.NET MAUI中的一流功能。这将继续发展,以帮助您高效地构建和维护生产应用程序。

<StackLayout>
    <Label Text="Welcome to .NET MAUI!" />
    <Button Text="{Binding Text}" 
            Command="{Binding ClickCommand}" />
</StackLayout>
public Command ClickCommand { get; }

public string Text { get; set; } = "Click me";

int count = 0;

void ExecuteClickCommand ()
{
    count++;
    Text = $"You clicked {count} times.";
}

MVU

此外,我们使开发人员能够编写流畅的C#UI并实现日益流行的“模型-视图-更新”(MVU)模式。MVU促进数据和状态管理的单向流程,以及通过仅应用必要的更改即可快速更新UI的代码优先开发经验。有关将MVU作为模式的更多信息,请查阅Elm编程指南和Thomas Bandt的博客。

下面是用.NET MAUI编写的MVU样式的基本计数器示例。

readonly State<int> count = 0;

[Body]
View body() => new StackLayout
{
    new Label("Welcome to .NET MAUI!"),
    new Button(
        () => $"You clicked {count} times.",
        () => count.Value ++)
    )
};

这种模式非常适合热重载,如下面所示,它具有从C#即时热重载的新增样式,渐变和字体。

image

MVVM和MVU都提供相同的本机应用程序,性能和平台保真度。开发人员将能够选择最适合其偏好和用例的样式。

从Xamarin.Forms过渡到.NET MAUI

Xamarin.Forms开发人员将使用他们已经了解和喜爱的所有相同控件和API来开始在.NET MAUI中使用新项目运行。随着我们越来越接近.NET MAUI的发布,为了帮助开发人员将现有应用平稳地过渡到.NET MAUI,我们打算提供类似于我们今天迁移到.NET Core的尝试转换支持和迁移指南。 。

.NET MAUI时间轴

我们将在今年晚些时候开始发布.NET MAUI预览版,并于2021年11月开始提供.NET 6的总体可用性。.NETMAUI将以Xamarin.Forms所采用的相同的6周节奏进行发布。我们已经在GitHub上发布了MAUI路线图,并邀请您今天就加入我们!

Xamarin和Xamarin.Forms的下一步是什么

作为我们.NET统一的一部分,Xamarin.iOS和Xamarin.Android将作为.NET for iOS和.NET for Android成为.NET 6的一部分。由于这些绑定是Apple和Google发行的SDK的投影,因此此处没有任何更改,但是将更新构建工具,目标框架别名和运行时框架别名,以匹配所有其他.NET 6工作负载。我们致力于为.NET开发人员提供最新的移动SDK的最新信息,这是.NET MAUI的基础,并且始终如一。当.NET 6发行时,我们期望以其当前形式发行Xamarin SDK的最终版本,并将提供一年的服务。那时所有的现代工作都将转移到.NET 6。

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

立即参与

在全新的存储库dotnet / maui中,加入我们的.NET MAUI之旅。一定要注视并观看以获取通知,然后加入有关讨论我们如何发展代码库的提案的讨论。这是将Xamarin和Xamarin.Forms直接焊接到.NET核心中的漫长旅程的开始,我们很高兴与您一起公开进行此操作。

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值