.NET跨平台应用MAUI介绍

2022-07-15,,,

您可以使用 .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。

到此这篇关于.net跨平台应用maui介绍的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。

《.NET跨平台应用MAUI介绍.doc》

下载本文的Word格式文档,以方便收藏与打印。