.NET 6 Preview 1 发布

2021 年 2 月 17 日微软发布了 .NET 6 的 Preview 1 版本,那么来看看都有什么新特性和改进吧,由于内容太多了因此只介绍一些较为重点的项目。

统一和扩展

.NET 6 在 .NET 5 的统一的基础之上,继续借助 Xamarin 扩展到 Android、iOS 和 macOS。此外,.NET 6 还扩展了 Blazor 的适用范围,开发者可以通过 Blazor Hybrid 开发混合的跨平台客户端应用。

对于 Andriod、iOS 和 WebAssembly 将使用 mono 作为 runtime,但是基础库将全面与 .NET 统一。

安装了 .NET 6 的 SDK 之后,将能构建移动平台应用,例如对于安卓来说,运行 dotnet new andriod 就能创建一个安卓应用的项目,然后运行 dotnet run 便能直接启动安卓模拟器运行。

另外,为了统一、简化并扩展构建 Xamarin.Forms 应用,也将推出 MAUI 提供诸多改进和功能,允许开发者直接使用 .NET 开发桌面和移动客户端程序。

主题

微软利用 Blazor Server 开发了 themesof.net 用于展示和跟踪主题,用户可以通过查看该网站中列出的各项目内容来跟踪 .NET 目前的状态和未来的发展计划。

平台支持

.NET 6 LTS 将在 2021 年 11 月正式发布,除了目前支持的平台之外,还将支持以下平台:

Android

iOS

Mac 和 Mac Catalyst(x64 和 M1)

Windows Desktop 的 ARM64

.NET MAUI

.NET MAUI (Multi-platform App UI) 是一组现代 UI 框架,在 Xamarin.Forms 的基础上扩展并集成到 .NET 6 中,利用 MAUI 将能够面向 Android、iOS、macOS 和 Windows 等构建应用。

在统一的过程中,将会把 Xamarin.Essentials 库集成到 MAUI 当中,除此之外你将还能容易地利用设备机能,例如传感器、照片库、联系人和存储等等。

.NET 6 Preview 1 中首先包含了 Android 和 iOS 两个平台的 MAUI,可以在此处查看示例项目和安装说明:https://github.com/dotnet/net6-mobile-samples。

未来还将添加 macOS 和 Windows 桌面支持,以及除了 XAML 热重载之外,还将支持 C# 代码的热重载。

对于今天已经在使用 Xamarin 构建应用的开发者,将会提供转换工具和迁移指导帮助迁移到 .NET 6,

MAUI

上图中,Android 和 iOS 应用直接通过 dotnet 的命令从命令行中启动,分别运行在模拟器中,代码利用了 dotnet-runtimeinfo 在控制台中输出了运行时的信息:应用是利用 .NET 的 SDK 开发,在 mono 的运行时之上使用 .NET 的类库。

Blazor 桌面应用

Blazor Desktop 将允许开发者利用 Blazor 技术开发混合客户端程序,将原生 UI 和 Web 技术混合起来构建原生的客户端应用。

例如你可以直接将 Blazor 作为组件集成到现有的 WPF 应用当中,下面是几个例子:

在 macOS 运行的 Blazor 桌面客户端应用:

blazor-macOS

在 WPF 中集成 Blazor 的混合应用:

blazor-wpf

快速内部循环

快速迭代开发是任何高效且令人愉悦的平台的标志,为此微软启动了一个新项目:快速内部循环(fast inner loop)。该项目旨在让应用的构建速度大幅度提高,并提供在运行时修改代码无需重新编译和重启应用,直接热重载代码并应用的功能。

几年来 .NET 一直具有 XAML 热重载功能,这一次,热重载功能将不仅局限于 XAML,而是扩展到 C# 和 IL。微软将定义代码热重载模型以让该功能支持所有类型的 app,这其中的一些功能需要通过改进运行时来做到,届时 CoreCLR 和 Mono 将一起受益。

最终通过该项目,开发者将能够非常快的构建项目,并且在调试运行时直接跳过编译,通过热重载功能完成代码的修改,而无需重新启动。

ARM64

.NET 将持续改进 ARM64 的支持。

ARM64 的性能改进计划

.NET 将持续改善在 ARM64 架构上的性能表现,具体可以去这里查看 .NET 6 在此方面的计划:https://github.com/dotnet/runtime/issues/43629

WPF 支持

WPF 现在支持 Windows ARM64 了,如需反馈相关问题可以前去: https://github.com/dotnet/wpf/issues/4117

wpf-arm64

macOS ARM64 支持

.NET 5 将提供对 macOS ARM64 的 x86_64 模拟器支持,而 .NET 6 将提供对 macOS ARM64 的原生支持,下图中展示了在 macOS 原生运行 ARM64 的 .NET:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssyzp.html