.NET跨平台应用MAUI介绍

您可以使用 .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介绍的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • .NET Core使用flyfire.CustomSerialPort实现Windows/Linux跨平台串口通讯

    1,前言 开发环境:在 Visual Studio 2017,.NET Core 2.x 串口通讯用于设备之间,传递数据,物联网设备中广泛使用串口方式连接通讯,物联网通讯协议 :Modbus 协议 ASCII.RTU.TCP模式是应用层的协议,与通讯方式无关. 笔者现在实现的是 串口通信,实现后,可以在上层加上 Modbus 协议,笔者的另一篇文章即是在串口上实现 Modbus 协议,计算中心向物联网设备发送消息,要求设备响应,传送设备信息.检测状态等. 本文是 串口通讯 的实现. 2,安装虚拟

  • 简单谈谈.NET Core跨平台开发

    对于.NET开源计划想必关注的人已经跃跃欲试了,但是真正将其用于开发的目前来说不多.毕竟截至本文发布时.NET Core才发布到1.0RC2版本.正式版预计还有一段时间.况且大多数人都是持观望态度,就算开发仍然用的还是.NET Framework.另外不得不说的一点就是.NET开源的进度很惊人但是社区建设还有待提升,很多配套的东西还不齐全.Java在语言层级上可能落后.NET但是Java的社区力量是.NET远不及的. 一.安装SDK .NET Core发布版:https://www.micros

  • .NET Core跨平台串口通讯使用SerialPortStream基础类库问题解决

    说明 由于.net core 2.x 中,已经找不到 serialport 库,使用需要使用第三方框架,可以直接在 Nuget 中搜索 SerialPortStream 开源地址https://github.com/jcurl/SerialPortStream 为了方便使用,有人封装把它了起来,在 Nuget 中搜索 flyfire.CustomSerialPort 这是一个增强的自定义串口类,实现协议无关的数据帧完整接收功能,支持跨平台使用,使用 SerialPortStream 基础类库.

  • C# .NET及Mono跨平台实现原理解析

    一..NET是什么 .NET是微软搭建的开发者平台,主要包括: 1.支持(面向)该平台的编程语言(如C#.Visual Basic.C++/CLI.F#.IronPython.IronRuby...), 2.用于该平台下开发人员的技术框架体系(.NET Framework..NET Core.Mono.UWP等), 1.定义了通用类型系统,庞大的CTS体系 2.用于支撑.NET下的语言运行时的环境:CLR 3..NET体系技术的框架库FCL 3.用于支持开发人员开发的软件工具(即SDK,如VS2

  • .NET Core跨平台执行命令、脚本的方法详细

    一.前言 在工作中我们可能会遇到需要在程序中执行一些系统命令,来获取一些信息:或者调用shell脚本..NET Core 目前已经可以跨平台执行,那么它如何跨平台执行命令呢,请看下面的讲解.话不多说了,来一起看看详细的介绍吧 二.ProcessStartInfo.Process 类介绍 我们主要用到的两个类就是 ProcessStartInfo 和 Process ,他们的用法和.NET Framework下是一样的. 1. ProcessStartInfo 类 ProcessStartInfo

  • .Net Core应用增强型跨平台串口类库CustomSerialPort()详解

    目录 摘要 引言 基础类库的选择 类库的实现 创建跨平台类库 实现机制/条件 .net core跨平台实现 主要代码 创建.net core控制台程序 类库地址 跨平台测试 Windows测试输出界面 ubuntu测试输出界面 源码地址 摘要 在使用SerialPort进行串口协议解析过程中,经常遇到接收单帧协议数据串口接收事件多次触发,协议解析麻烦的问题.针对此情况,基于开源跨平台串口类库SerialPortStrem进行了进一步封装,实现了一种接收超时响应事件机制,简化串口通讯的使用. 引言

  • Asp.NetCore1.1版本去掉project.json后如何打包生成跨平台包

    本章将要和大家分享的是Asp.NetCore1.1版本去掉了project.json后如何打包生成跨平台包, 为了更好跟进AspNetCore的发展,把之前用来做netcore开发的vs2015卸载后并安装了vs2017,这给我带来的直接好处是把我报红的C盘腾出10GB左右的空间,从这里直接能感受到vs2017体积如此之小:之前有写过一篇开源netcore服务的文章开源一个跨平台运行的服务插件 - TaskCore.MainForm,里面有讲述netcore项目生成和部署在win7和ubuntu

  • .Net Core跨平台应用开发串口篇HelloArm

    目录 引言 硬件环境 硬件资源特性 支持的系统平台 系统平台 .NET Core支持的Linux版本 系统平台选择 连接嵌入式Linux系统 物理连接 串口连接 网络连接 .NET Core跨平台验证 验证程序设计 显示系统平台信息 串口资源列举 串口测试 跨平台发布 远程部署 Linux环境运行.Net Core程序 第三方串口类库 Linux串口类库编译 环境变量配置 Linux串口测试 配置程序开机运行 结束语 引言 为了验证采用dotnet core技术开发的物联网设备数据采集接入服务应

  • .NET跨平台应用MAUI介绍

    您可以使用 .NET 构建任何内容.这是数百万开发人员选择 .NET 作为其职业生涯的平台,以及公司为其业务进行投资的主要原因之一.通过 .NET 5,我们开始了统一 .NET 平台的旅程,将 .NET Core 和 Mono/Xamarin 整合在一个基类库 (BCL) 和工具链 (SDK) 中. 当我们考虑在统一的 .NET 中构建设备应用程序的外观时,我们看到许多设备跨多个平台使用,从 Android 和 iOS 到 Windows 和 macOS.为了满足这一需求,我们很高兴地宣布一个新

  • MAUI中实现构建跨平台原生控件

    简介 MAUI中使用Handler体系来处理不同平台的原生控件实现, 即对应的, 如果我们想要创建控件, 只需要创建基于不同平台的Handler即可. 那么下面主要教大家如何通过创建Handler(事件处理程序)来构建自己的控件. 开始 下面, 将通过创建一个进度条控件案例, 来演示如何在MAUI项目中创建平台控件并且使用它. 假设控件包含基础的三项功能, 进度条颜色(Foreground).进度条当前值(Value).进度条模式(Indeterminate) 1.第一步(声明控件类) 首先,

  • 在.NET MAUI应用中配置应用生命周期事件

    目录 前言 应用程序生命周期 跨平台生命周期 如何配置生命周期事件 特定于平台的生命周期事件 Android IOS Windows 参考 前言 管理应用生命周期事件是开发应用程序时最常见的要求之一.同样,有必要在跨平台应用程序(如 .NET MAUI应用)中处理应用生命周期,以提高其效率.在这篇博客中,我将通过代码示例分享如何在 .NET MAUI 应用中配置应用生命周期事件. 应用程序生命周期 通常,应用具有不同的生命周期或状态..NET MAUI 应用具有以下四个生命周期(执行状态): 运

  • MAUI使用Maui.Graphics.Controls绘制控件详解

    目录 简介 Microsoft.Maui.Graphics.Controls 使用Microsoft.Maui.Graphics.Controls 绘制控件 总结 简介 Microsoft.Maui.Graphics是一个完全采用C#的iOS,Android,Windows,macOS,Tizen和Linux的跨平台图形库. 对于MAUI项目当中绘制的方案是使用不同平台的控件来而非自绘. 当然MAUI当中也使用了Microsoft.Maui.Graphics, MAUI Preview9更新中,

  • 在MAUI中使用Masa Blazor的方法

    目录 Masa Blazor是什么 MAUI是什么 MAUI环境准备 创建MAUI应用并引入Masa Blazor 时间轴功能实现 开源地址 Masa Blazor是什么 在此之前我们已经介绍过什么是Masa Blazor,以及如何使用Masa Balzor,如果还有不了解Masa Blazor的同学可以看我上篇文章[初识Masa Blazor].那么今天就带大家探索一下如何在MAUI中使用Masa Blazor,那么我们先来了解一下什么是MAUI? MAUI是什么 .NET MAUI全称为 .

  • 什么是Perl?编程语言Perl详细介绍

    Perl 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表.Perl借取了C.sed.awk.shell scripting以及很多其他程序语言的特性.Larry Wall在新闻组comp.sources.misc发布了Perl脚本语言1.0版,当时他是Unisys公司的一名程序员.Perl借鉴了sh.Awk和Sed等脚本语言的特性,试图成为一个能简化报告处理的通用 Unix脚本语言. Perl 2在1988年发布,增加了更多特性,拥有更好的正则表达式引擎.Per

  • jQuery拖拽 & 弹出层 介绍与示例

    iDrag & iDialog 介绍特点:iDialog.js依赖于jquery编写的简单易用的对话框,同时还可以通过添加css3,改变对话框的展现动画.提供了两个方法: •1.拖拽函数 iDrag() 或 $.drag();•2.对话框函数 iDialog() 或 $.dialog(); 跨平台兼容:兼容:IE6+.Firefox.Chrome等主流浏览器(其它暂时没条件测试).并且IE6下也能支持现代浏览器的静止定位(fixed).覆盖下拉控件. 渐进增强的体验:确保IE家族功能完善的前提下

  • 什么是HTML相关介绍

    什么是HTML? 简单点说:HTML是用来做网页的.它很简单,在接下来的1~2分钟之内你就会跟着我用HTML做一个简单的网页. 复杂点说:HTML(HyperTextMarkupLanguage的缩写),即超文本链接标记语言.它是在互联网发布超文本文件(通常所说的网页)的通用语言. 什么是XHTML?更先进难懂的技术? 简单点说:X是吓唬人的,其实XHTML就是严谨而准确的HTML.如果说HTML是汉语,那么XHTML就是标准普通话.对于现在才刚刚开始学习网页设计的朋友,直接学习XHTML是最佳

  • flex是什么 Flex介绍

    flex通常是指Adobe Flex,是最初由Macromedia公司在2004年3月发布的,基于其专有的Macromedia Flash平台,它是涵盖了支持RIA(Rich Internet Applications)的开发和部署的一系列技术组合.flex的另一个意思是一款生成扫描器的工具,能够识别文本中的词法模式. flex简介 Flex 是一个高效.免费的开源框架,可用于构建具有表现力的 Web 应用程序,这些应用程序利用 Adobe Flash Player和 Adobe AIR, 运行

  • Web Inspector:关于在 Sublime Text 中调试Js的介绍

    Sublime Text 是一款非常优秀的跨平台编辑器,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API ,Goto 功能,即时项目切换,多选择,多窗口等等. 另外,Sublime Text 插件众多,通过包管理工具可以方便安装和管理.本文介绍的 Sublime Web Inspector 便是众多插件中一款非常出色的开发辅助插件,可以帮助 Web 开发人员

随机推荐