写点什么

.NET MAUI RC1 带来了诊断功能以及 Android CoreCLR 的实验性支持

作者:Edin Kapić

  • 2025-10-02
    北京
  • 本文字数:1571 字

    阅读完需:约 5 分钟

大小:800.87K时长:04:33
.NET MAUI RC1 带来了诊断功能以及Android CoreCLR的实验性支持

微软已经发布了.NET 10的第一个候选发布版本(RC1)以及上线支持,这表明公司认为该框架已经准备好用于生产环境。在 RC1 中更新的各种工作负载中,.NET 多平台应用 UI(.NET MAUI)获得了几个针对可靠性和开发者生产力的目标增强。RC1 的注释关注于可观测性的改进、现有控件的调整以及 Android 的实验性新运行时选项。

 

.NET MAUI 在.NET 10 预览周期中稳步发展。早期的预览集中在性能优化和增量控件细化上,同时基本上保持了平台的底层架构不变。RC1 发布继续这一趋势,通过稳定 API 界面,并在 10 月 14 日之前增加一个上线许可,以便开发者可以在微软的支持下在生产环境中部署 RC1 构建。与早期的预览构建不同,RC1 功能齐全;剩余的大部分工作是缺陷修复和打磨,因此重点在于质量和诊断工具,而不是主要的新控件。

 

其中一个主要的新增功能是为.NET MAUI应用程序提供全面且可扩展的诊断和布局性能指标跟踪。该版本引入了一个新的 ActivitySourceMeter ,用于跟踪布局操作,称为 Microsoft.Maui 。这些原语发出与.NET Aspire 和 OpenTelemetry 仪表板集成的跟踪事件和性能计数器,实现了对布局测量和排列成本的实时可见性。该工具被实现为围绕 IView.Measure()IView.Arrange() 的零分配结构体,以最小化开销。记录的指标包括测量和排列操作的数量计数器,以及这些操作持续时间的直方图。由于可以通过 System.Diagnostics.Metrics.Meter.IsSupported 开关在运行时禁用指标 API,开发者可以安全地修剪或提前编译他们的应用程序,而不必在不需要时支付诊断的成本。

 

.NET Aspire 仪表盘中的.NET MAUI 应用程序诊断

 

除了诊断之外,RC1 还更新了 HybridWebView 控件,以支持两个新的初始化事件: WebViewInitializingWebViewInitialized 。这些事件反映了 BlazorWebView 上可用的事件,并允许开发者在底层 WebView 创建之前和之后进行钩子操作。例如,处理程序可以在视图构建之前( WebViewInitializing )提供特定于平台的初始化参数,或在原生 WebView 实例可用后调整设置( WebViewInitialized )。这一变化简化了需要跨 iOS、Android、Windows 和 macOS 自定义嵌入式 Web 控件的混合应用程序的编写。以前,这种自定义需要特定于平台的处理程序或反射;现在可以在一个跨平台的事件处理程序中完成。

 

一个小但受欢迎的可用性改进是 RefreshView 上新增了一个 IsRefreshEnabled 属性。到目前为止,开发者只能通过 IsEnabled 禁用整个控件;这阻止了包含的内容在需要禁用刷新功能时进行交互。新属性允许开发者禁用下拉刷新,同时保持底层内容活跃。这一变化使跨平台的行为一致,并在 XAML 声明中明确了意图。在发布说明中,微软演示了一个包装在 RefreshView 中的登录表单,当 IsRefreshEnabled="false" 时仍然可用。

 

作为 RC1 稳定化的一部分,微软已经弃用了几个遗留 API。“压缩”布局类型现在已过时,鼓励开发者避免不必要的布局容器嵌套。 PerformanceIPerformanceProvider 类型在早期版本中提供了有限的检测,也被标记为过时。这些移除标志着向上述新的、标准化的诊断基础设施的转变。

 

最大的运行时变化出现在 Android 工作负载中。通过在项目文件中设置 <UseMonoRuntime>false</UseMonoRuntime> ,开发者现在可以选择在CoreCLR运行时而不是长期的 Mono 运行时上运行 Android 应用程序。该功能被标记为实验性,因此微软警告说,应用程序的大小将会增加,并且调试和一些运行时诊断可能不完整。尽管如此,这一举措表明了微软统一移动和桌面平台.NET 运行时体验的意图。鼓励早期采用者提供反馈,明确指出他们何时使用 CoreCLR。

 

开发者可以通过.NET 10 SDK下载 RC1,并安装Visual Studio 2026 Insiders或在 Visual Studio Code 中使用 C# Dev Kit。完整的MAUI RC1发布说明和相关资源可在 GitHub 上找到,微软鼓励通过.NET 10 GitHub问题提供反馈。

 

原文链接:

https://www.infoq.com/news/2025/09/net-maui-rc1/

2025-10-02 10:0014078

评论

发布
暂无评论

【架构实战营】模块二作业

liu🍊

MacBook M1 搭建OpenVINO环境

IT蜗壳-Tango

OpenVINO MacBook M1 10月月更

4个实验,彻底搞懂TCP连接的断开,实战nginx张宴

Java 程序员 后端

6 种事件驱动的架构模式,springboot入门书籍

Java 程序员 后端

97 道大厂 Java 核心面试题出炉,来试试看你会几道题?

Java 程序员 后端

Alibaba内部流行的“Java突击宝典”,springboot模块化架构

Java 程序员 后端

Binder源码阅读指南之java层,Java程序员如何有效提升学习效率

Java 程序员 后端

CentOS部署Harbor镜像仓库,java进阶训练营百度网盘

Java 程序员 后端

6年拉力工作经验,学了阿里P8级架构师的7+1,java基础学习百度云

Java 程序员 后端

avatar Logo,nginx负载均衡算法及原理

Java 程序员 后端

CAS都不了解,你还怎么看J-U-C,下载量瞬秒百万

Java 程序员 后端

28天读完349页,这份Alibaba面试通关手册,助我

Java 程序员 后端

5种可能在10年后消失的开发语言,java消息队列面试题

Java 程序员 后端

6月GitHub上最牛逼的10个Java开源项目,号称“Star收割机

Java 程序员 后端

985应届进大厂,后端开发两年被裁,对前路迷茫的我

Java 程序员 后端

apollo在Spring boot加载过程解析,redis单线程原理

Java 程序员 后端

21道Java基础面试题及答案,Dubbo SPI及自适应扩展原理

Java 程序员 后端

浅谈如何实现自定义的 iterator 之二

hedzr

c++ stl Iterator 迭代器

90行代码,15个元素实现无限滚动,吃透这份Java高级工程师面试497题解析

Java 程序员 后端

架构实战营模块二作业

随风King

「架构实战营」

20年IT农民工终于分享出了SpringCloud微服务架构实战文档,太强了!

Java 程序员 后端

BAT大厂Java面试必备:20道最新JVM面试题(含答案

Java 程序员 后端

21道Java基础面试题及答案(1),linux系统管理技术手册

Java 程序员 后端

30张图带你分析:spring事务源码,mysql基础教程视频

Java 程序员 后端

4年Java开发经验,从传统公司裸辞之后足足准备了3个月,终于拿到美团

Java 程序员 后端

as-if-serial规则和happens-before规则的区别

Java 程序员 后端

CDH+Kylin三部曲之二:部署和设置,java项目百度网盘

Java 程序员 后端

30岁程序员裸辞,闭关三月,拿下阿里字节百度等12家offer

Java 程序员 后端

7年Java开发经验,面试20多家公司,砍下16个Offer

Java 程序员 后端

95% 的算法都是基于这 6 种算法思想,大厂Java面试必考点

Java 程序员 后端

apiserver源码分析——启动流程,java工程师技术栈

Java 程序员 后端

.NET MAUI RC1 带来了诊断功能以及Android CoreCLR的实验性支持_微软_InfoQ精选文章