官宣 微软跨平台 UI 框架 .NET MAUI 6 正式发布

微软宣布 .NET MAUI 已正式 GA。

.NET MAUI (.NET Multi-platform App UI) 是一个跨平台 UI 框架(前身是 Xamarin.Forms),用于通过 C# 和 XAML 创建原生移动和桌面应用。基于 .NET MAUI,开发者可在单个共享代码库中创建同时支持 Android、iOS、macOS 和 Windows 的原生应用。

微软在公告中表示,此版本是他们实现统一 .NET 平台目标的新里程碑,为打造更广泛的 .NET 生态奠定了基础,并将 .NET Framework 和旧项目系统中的插件、库和服务引入到了 .NET 6 和 SDK 样式项目中。其中包括:

按照发布计划,.NET MAUI 的主要版本将在后续版本(下一个大版本)发布后至少 6 个月内获得支持。例如,.NET MAUI 6.0 将在 .NET MAUI 7.0 发布后的 6 个月内得到支持。同样,.NET MAUI 7.0 将在 .NET MAUI 8.0 发布后的 6 个月内获得支持。

未来,.NET MAUI 将与 .NET 保持一致的发布节奏,即 .NET MAUI 7.0 将与 .NET 7.0 一起发布,.NET MAUI 8.0 将随 .NET 8.0 一起发布。

.NET MAUI 亮点

开箱即用的原生 UI

针对不同平台(Android、iOS、macOS 和 Windows),.NET MAUI 分别提供了专门设计且开箱即用的最佳应用体验。例如,Windows 上的 .NET MAUI 获得了 WinUI 3 的支持,WinUI 3 是与 Windows App SDK 一起提供的首选原生 UI 组件。

丰富的 API

.NET MAUI 提供了简单的 API 来访问每个平台的服务和功能,例如加速度计、应用程序操作、文件系统、通知等。在下面的示例中,通过配置 “app actions” ,即可为每个平台上的应用程序图标添加菜单选项:

 
AppActions.SetAsync(new AppAction("current_info", "Check Current Weather", icon: "current_info"),new AppAction("add_location", "Add a Location", icon: "add_location")
);

提升生产力

.NET MAUI 使用 .NET 6 引入的 C# 10 新特性,包括全局 using 语句和文件范围命名空间 —— 非常有助于减少文件中的混乱。.NET MAUI 以 “单一项目” 为重点,将多平台目标提升到了一个新的水平。

在新的 .NET MAUI 项目中,平台被放置在一个子文件夹中,开发者可将重点放在花费大部分精力的应用程序上。在项目的 Resources 文件夹中,开发者可以在一个地方管理应用程序的字体、图像、应用程序图标、启动画面、原始资源和样式。.NET MAUI 将针对每个平台的独特要求进行优化。

将 Blazor 带入桌面和移动设备

 .NET MAUI 集成了 Blazor,因此开发者可以直接在原生的移动和桌面应用程序中重用现有的 Blazor Web UI 组件。借助 .NET MAUI 和 Blazor,开发者可以重用 Web 开发技能来构建跨平台的原生客户端应用程序,并构建跨移动、桌面和 Web 的单独 UI。

性能优化

.NET MAUI 专为提高性能而设计。.NET MAUI 中的 UI 控件在原生平台控件上实现了一种精简的、解耦的处理程序映射器模式 —— 这减少了 UI 渲染中的层数,并简化了控件定制。

默认情况下会启用这些设置,以提供优化了性能的 release 版本。

点此查看更多细节:https://devblogs.microsoft.com/dotnet/introducing-dotnet-maui-one-codebase-many-platforms/icon-default.png?t=M4ADhttps://devblogs.microsoft.com/dotnet/introducing-dotnet-maui-one-codebase-many-platforms/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

92. Reverse Linked List II

Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1->2->3->4->5->NULL, m 2 and n 4, return 1->4->3->2->5->NULL. Note:Given m, n satisfy the following condition:1 ≤ m ≤ n ≤ lengt…

Reset

在常用的代码中,我们使用AddForm.form.reset();或者AddForm.getForm().reset();来将FormPanel重置。 但是当页面增加和修改公用一个formpanel时,当先点击修改时,窗体修改显示出数据,关闭窗体后(window.hide()&#xff…

《.NET物联网从零开始》系列

近日搞硬件网关时,那些残存的数电、模电和通信原理的记忆时常在脑海中萦绕;想起来多年前看张高兴的博客学会了.netcore树莓派进行物联网开发。使用dragonboard(龙板)搭载windows 10 iot系统,配合光电传感器和rfid实现了一个项目原型。碰巧逛g…

设计好接口的 36 个锦囊(原则)

目录 设计好接口的 36 个锦囊 | 接口参数校验 | 修改老接口时,注意接口的兼容性 | 设计接口时,充分考虑接口的可扩展性 | 接口考虑是否需要防重处理 | 重点接口,考虑线程池隔离 | 调用第三方接口要考虑异常和超时处理 | 接口实现考虑…

嵌入式第11次实验

嵌入式软件设计第11次实验报告 学号:140201236 姓名:沈樟伟 组别:第2组 实验地点:D19 一、实验目的: 1、了解短信AT指令的使用方法。 2、掌握使用短信AT指令驱动SIM900A发送和接收短信的方…

Linux文件系统之df

df用于查看当前挂载的文件系统-a 查看所有的文件系统可以自己指定容量单位,-BM -BG 但是还是h的选项好用-i 查看inode的使用信息-l(L) 显示本地文件系统--output 可以指定管理员想要看的列--outputField_List可用的字段有source fstype itotal iused iavail ipcent …

普通老实人的生活

2019独角兽企业重金招聘Python工程师标准>>> 有一个朋友,他家有一套营业房,租给了两个年轻人,合同签订为半年,房租7000,合同到期当天,乙方一直没有联系甲方,说明续租或不续租&#x…

如何在 C# 中运行 Python 代码

前言Python是一门强大的编程语言。特别的是,它还具有众多出色的库(例如numPy,sciPy,pandas等),可以显著简化和加速开发。因此,在解决某些问题时,通过 Python 实现可能是最理想的方式…

Ubuntu开机默认进入命令行模式/用户图形界面

一、开机默认进入命令行模式 # 输入命令: sudo systemctl set-default multi-user.target # 重启: reboot要进入图形界面,只需要输入命令startx 从图形界面切换回命令行:ctrlaltF7 二、开机默认进入图形用户界面 # 输入命令&…

数组查找数字5

public class Second {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stubint []a{2,1,3,4,5};for (int i0;i<a.length-1;i){if(a[i]!5){i;}}System.out.println("这组数里有5呢"); }} 转载于:https://www.cnblogs.co…

【QGIS入门实战精品教程】10.2:QGIS中DEM三维显示方法

QGIS中数字高程模型DEM三维显示方法。 参考阅读: 【ArcGIS Pro微课1000例】0006:ArcGIS Pro 2.5三维显示DEM数字高程模型 【ArcGIS Pro微课1000例】0005:ArcGIS Pro 2.5基于矢量数据制作拉伸三维地图案例 ArcGIS实验教程——实验二十六:ArcScene实现二维数据的三维显示 文章…

AUTH password

为redis服务请求设置一个密码。redis可以设置在客户端执行commands请求前需要通过密码验证。通过修改配置文件的requirepass就可以设置密码。 如果密码与配置文件里面设置的密码一致&#xff0c;服务端就会发会一个OK的状态码&#xff0c;接受客户端发送其他的请求命令&#xf…

基于Dubbo框架构建分布式服务(三)

我们将上面开发的服务提供方服务&#xff0c;部署到2个独立的节点上&#xff08;192.168.14.1和10.10.4.125&#xff09;&#xff0c;然后可以通过Dubbo管理中心查看对应服务的状况&#xff0c;如图所示&#xff1a; 上图中可以看出&#xff0c;该服务有两个独立的节点可以提供…

开篇-开启全新的.NET现代应用开发体验

01云原生技术底座畅想DaprMASA Framework研发管理研发协作平台&#xff1a;CI/CD、Application ManagementApplication Quota Management、Version Control、Troubleshooting、Testable网格应用程序管理API网关&#xff1a;Reverse Proxy、Traffic Control 、Security Strategy…

Ubuntu安装docker详细教程

1.安装 sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository &qu…

java多线程编程——锁优化

并发环境下进行编程时&#xff0c;需要使用锁机制来同步多线程间的操作&#xff0c;保证共享资源的互斥访问。加锁会带来性能上的损坏&#xff0c;似乎是众所周知的事情。然而&#xff0c;加锁本身不会带来多少的性能消耗&#xff0c;性能主要是在线程的获取锁的过程。如果只有…

【QGIS入门实战精品教程】10.3:QGIS栅格DEM数据重复类方法案例汇总

QGIS栅格DEM数据重复类方法案例汇总:按表格重分类、按图层重分类。 参考阅读: 【GlobalMapper精品教程】029:栅格重分类案例详解 ArcGIS实验教程——实验四十三:ArcGIS栅格重分类(Reclass)案例详解 ArcGIS怎样获取重分类后各类所占的像元个数 文章目录 一、按表格分类二、…

QT添加rtmp库的时候出现问题

刚开始出现undefined reference to __chkstk的错误。 然后在vc里面找到chkstk.obj放到相关目录下并在工程文件直接添加&#xff1a; LIBS "E:\QTProjects\RTMP\RTMPDelayTest\librtmp\lib\chkstk.obj" 又出现了新的错误 E:\QTProjects\RTMP\RTMPDelayTest\librtmp\l…

@Before,@BeforeClass,@BeforeEach和@BeforeAll之间的区别

Before的代码在每次测试之前执行 BeforeClass在整个测试方法执行之前运行一次 如果您的测试类有十个测试&#xff0c;则Before代码将执行十次&#xff0c;但是BeforeClass将仅执行一次。 当多个测试需要共享相同的代码时&#xff0c;可以使用BeforeClass 。 建立数据库连接属于…

记一次 .NET 某工控自动化控制系统 卡死分析

一&#xff1a;背景 1. 讲故事前段时间遇到了好几起关于窗体程序的 进程加载锁 引发的 程序卡死 和 线程暴涨 问题&#xff0c;这种 dump 分析难度较大&#xff0c;主要涉及到 Windows操作系统 和 C 的基础知识&#xff0c;所以有必要简单整理和大家分享一下&#xff0c;上 win…