Loading

.NET 多平台应用 UI介绍

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

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

让我们向您介绍 .NET MAUI 是什么、单个项目开发人员体验、现代开发模式,以及展望未来的旅程。

MAUI overview

什么是 .NET MAUI
.NET MAUI 是越来越受欢迎的 Xamarin.Forms 工具包的演进,本月将满 6 岁。多年来,UPS、安永和达美等公司一直在利用Xamarin的移动专业知识,在.NET上为其业务提供动力;一些从一开始。它还非常成功,帮助小型企业最大化其开发投资共享超过 95% 的代码,并击败竞争对手推向市场。.NET MAUI 在移动设备上扩展了这一成功,以拥抱桌面,使其成为在两者(尤其是新设备(如新 Surface Duo)之间构建多平台应用程序的最佳方式。

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

单个项目开发人员体验

.NET MAUI 的构建考虑到了开发人员的工作效率,包括开发人员所需的项目系统和跨平台工具。.NET MAUI 将项目结构简化为单个项目,以定位多个平台。这意味着只需单击一下,您可以轻松地部署到任何目标,包括桌面、仿真器、模拟器或物理设备。使用内置的跨平台资源,您将能够将任何图像、字体或翻译文件添加到单个项目中,.NET MAUI 将自动设置本机挂钩,以便您可以进行编码。最后,您始终可以访问本机基础操作系统 API,并且使用新的特定于平台的集成将比以往更加容易。在平台下,您可以为特定操作系统添加源代码文件并访问本机 API。使用 .NET MAUI,一切都位于一个地方,您需要它来保持高效工作。

.NET MAUI Single Project

这提供:

  • 一个面向多个平台和设备的项目
  • 管理资源(如字体和图像)的一个位置
  • 多目标组织特定于平台的代码
    您掌握一种构建客户端应用的方法,MAUI 方式,并且所有平台都在您触手可及。今天,斯科特·汉塞尔曼和我将演示它在行动在建设,旅程一个.NET。

现代应用模式

一个 .NET 愿景的一部分是在个人偏好领域提供开发人员选择,因此您可以最有效地使用 .NET。在 IDE 中,无论是 Visual Studio 2019、Mac 的可视化工作室,甚至是视觉工作室代码,您都使用 IDE。.NET MAUI 将在所有这些模式下可用,并支持现有的 MVVM 和 XAML 模式,以及将来的功能,如使用 C# 的模型视图更新 (MVU),甚至 Blazor。

MVVM

模型视图-视图模型 (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 编程指南和托马斯·班特的博客。

下面是以 .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# 的即时热重新加载。

MAUI model-view-update

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

从 Xamarin.Forms 转换到 .NET MAUI

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

.NET MAUI 时间线

我们将在今年晚些时候开始发货 .NET MAUI 预览版,并在 2021 年 11 月以 .NET 6 为目标的通用性。.NET MAUI 将在同 6 周节奏上发货 Xamarin.Forms 已打开。我们已经在 GitHub 上发布了MAUI 路线图,并邀请您立即加入我们!

Xamarin 和 Xamarin 的下一步内容。

作为 .NET 统一的一部分,Xamarin.iOS 和 Xamarin.Android 将成为 .NET 6 的一部分,作为 iOS 的 .NET 和用于 Android 的 .NET。由于这些绑定是从苹果和谷歌发货的 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。

posted @ 2020-05-20 17:34  痕迹g  阅读(1412)  评论(0编辑  收藏  举报