写点什么

.NET 10 提升了 MAUI 的质量和性能

作者:Edin Kapić

  • 2025-11-21
    北京
  • 本文字数:1465 字

    阅读完需:约 5 分钟

大小:613.34K时长:03:29
.NET 10提升了MAUI的质量和性能

.NET 10的发布中,.NET MAUI 得到了一系列针对质量、性能和开发者生产力的更新。虽然没有大的 UI 变化,但这些改进填补了跨平台工作流程中缺失的细节,并优化了长期存在的平台行为问题。

 

MAUI 是 Multiplatform Application UI 的缩写。根据微软的说法,它是 Xamarin 和 Xamarin Forms 框架的演进,并将多个目标库和项目统一到一个项目中,以支持多设备。目前,MAUI支持编写可在 Android 5+、iOS 12.2+、macOS 12+(作为Mac Catalyst)、Samsung Tizen(由三星提供)、Windows 10 版本 1809+或 Windows 11 上运行的应用程序。.NET 10 MAUI 带来了针对Android 16(API 36 和 36.1)和iOS 26的更新版本绑定。

 

MAUI 作为.NET 10 的一部分发布,包含一个.NET 工作负载和一组 NuGet 包,使开发人员能够更精细地控制其应用程序将支持的版本。此外,MAUI 还引入了一个新的项目模板,与.NET Aspire服务实现了默认的项目集成:通过在MauiProgram中调用builder.AddServiceDefaults(),应用程序获得了内置的 OpenTelemetry 指标、跟踪和服务发现连接。

 

在该版本中,有一个新的XAML源代码生成器,它能够在构建时编译 XAML,而不是在运行时进行解析,这意味着可以更早地检测错误、加快启动速度并检查生成的代码。还有一项实验性功能,用于使用 CoreCLR 而不是 Mono 运行时。仅此一项功能就受到了开发人员的高度评价,他们称赞它“真正赋予了 MAUI 新生”。

 

开发人员还可以采用全局和隐式 XML 命名空间声明,减少重复的xmlns:属性,实现更简洁的标记。

 

MAUI 标准标记文件:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"        xmlns:models="clr-namespace:MyApp.Models"        xmlns:controls="clr-namespace:MyApp.Controls"        x:Class="MyApp.MainPage">    <controls:TagView x:DataType="models:Tag" /></ContentPage>
复制代码

MAUI 10 隐式命名空间声明文件:

<ContentPage x:Class="MyApp.MainPage">    <TagView x:DataType="Tag" /></ContentPage>
复制代码

 

MAUI 的核心控件获得了更清晰的行为:在 iOS 和 Mac Catalyst 上,.NET 9 中引入的CollectionViewCarouselView的改进处理程序默认会启用,提高了稳定性和性能。

 

HybridWebView控件提供了新的初始化事件(WebViewInitializingWebViewInitialized),InvokeJavaScriptAsync的重载可用于即发即忘(fire‑and‑forget)调用,另外,还有 Web 请求的拦截功能(例如,修改头信息、重定向请求、提供本地响应)。

 

安全区域行为得到改进:SafeAreaEdges属性出现在了 Layout、ContentView、ContentPage、Border 和 ScrollView 控件中,使用新的枚举NoneSoftInputContainerDefaultAll)来实现对设备切口(cutouts)、主屏幕指示器、键盘覆盖和类似平台限制下内容的细粒度控制。

 

有些旧版 API 已被弃用。ListViewEntryCellImageCellSwitchCellTextCellCompatibility.Layout被标记为已删除,以支持精简的现代化构造。

 

.NET MAUI的支持策略(由于对 Xcode/Android SDK 等的依赖)与.NET Core支持策略有所不同。.NET 版本分为在发布后支持 3 年(对于 LTS 版本)和在新版本发布后支持 1 年(对于 STS 版本)两种,但是 MAUI 版本仅在新版本发布后支持 6 个月。然而,MAUI 工作负载是独立于.NET 发布安装的,因为它们以 NuGet 包的形式发布。

 

关于.NET 10 MAUI 的更多信息,请参阅微软官方的“What’s new in .NET MAUI for .NET 10”文档、宣布.NET 10发布的博客,以及GitHub上关于MAUI的发布说明

 

查看英文原文:.NET 10 Improves MAUI Quality and Performance

2025-11-21 11:481

评论

发布
暂无评论

接口测试怎么进行,如何做好接口测试

测试人生路

软件测试 接口测试

区块链产业下的“非遗”突围战:商业化和手艺人发掘

CECBC

区块链 非遗

架构师训练营第二周框架设计课后练习

Geek_xq

「更高更快更稳」,看阿里巴巴如何修炼容器服务「内外功」

阿里巴巴云原生

容器 运维 云原生 双十一 CloudNative

《迅雷链精品课》第十课:共识算法理论基础

迅雷链

区块链

ETV全球熵APP系统开发|ETV全球熵软件开发

系统开发 现成系统

技巧收藏|10个JavaScript常用数组操作方法

华为云开发者联盟

Java 数组 开发

拆解增长黑客之知识篇

懒杨杨

产品 运营 增长

京东云的云原生理念及Serverless最佳实践

lidaobing

智能与影像的强耦合:华为Mate 40系列的视觉探索

脑极体

只能用分布式锁,也能搞定每秒上千订单的高并发优化?

Java架构师迁哥

从战略到战略决策

Alan

战略管理 使命 愿景 战略思考 MVO

架构师训练营 1 期 -- 第十一周总结

曾彪彪

极客大学架构师训练营

每周学点TARS——服务自定义命令

TARS基金会

c++ DevOps 后端 TARS

价值、产业、数据加密,区块链如何助力互联网升级?

CECBC

区块链 互联网

一周信创舆情观察(11.23~11.29)

统小信uos

HTTP协议概述

落日楼台H

https HTTP 协议 HTTP2.0 HTTP3.0

已拿腾讯后台开发岗offer,简单说下自己的面试经历和学习路线

程序员小灰

c++ 后台开发 架构师 TCP/IP Linux服务器开发

程序员的故事

Philips

敏捷开发 快速开发 原创小说 企业开发 企业应用

LeetCode题解:52. N皇后 II,回溯+哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

讲述我在阿里六面的经历,幸好我掌握了这份“Java并发编程+面试题库”成功拿到20K的offer

比伯

Java 编程 架构 面试 计算机

线程池的优点及其原理,代码实现线程池。简单、明了。

Linux服务器开发

后端 网络编程 线程池 Linux服务器 web服务器

看区块链如何打通信息壁垒,盘活万亿级”积分”市场

CECBC

区块链 信息

架构词典: 复盘

lidaobing

架构 复盘

年轻人想详细了解做了十年Linux跟做了十年Windows的程序员差距有多大吗?听我慢慢道来!

ShenDu_Linux

Linux 程序员 windows

打造Django私有化缓存组件django-api-cache

pygodnet

django django-api-cache django缓存 私有化缓存 接口缓存

我对业务方提出需求的态度

boshi

随笔杂谈 需求落地

【得物技术】搜索引擎技术简介

得物技术

搜索引擎 技术 算法 排序 搜索

我在阿里巴巴做 Serverless 云研发平台

阿里巴巴云原生

Serverless 容器 开发者 云原生 CloudNative

mysql的这些坑你踩过吗?快来看看怎么优化mysql?

比伯

Java 编程 架构 面试 计算机

训练营第七周总结

大脸猫

极客大学架构师训练营

.NET 10提升了MAUI的质量和性能_后端_InfoQ精选文章