关于MAUI
.NET MAUI,全称.NET Multi-platform App UI
顾名思义,就是跨平台UI框架。使用.NET MAUI,理论上使用一套代码就可以开发出可运行在 Android、iOS、macOS 和 Windows 上的应用!因为各平台存在差异,所以一套代码需要根据实际情况来编写特定的代码,有些类似于uni-app上的条件编译。
用一张图来解释下.NET MAUI可以运行在什么平台上
.NET MAUI可以运行在以下平台:
- Android 5.0 (API 21) 或更高版本
- iOS 11 或更高版本,使用最新版本的 Xcode
- 使用 Mac Catalyst 的 macOS 10.15 或更高版本
- 使用 Windows UI 库 (WinUI) 3 Windows 11和Windows 10版本 1809 或更高版本
由于MAUI Blazor 应用是基于各平台特定的 WebView 控件。如果是.NET MAUI Blazor 应用,则需要如下要求:
- 需要 Android 7.0 (API 24) 或更高版本
- 需要 iOS 14 或更高版本
- 使用 Mac Catalyst 的 macOS 11 或更高版本
- Windows 上的 Microsoft Edge WebView2
- Android 上的 Chrome
- iOS 和 macOS 上的 Safari
.NET MAUI 是开源的,是 Xamarin.Forms 的演变,从移动方案扩展到桌面方案,UI 控件从头开始重新生成,以确保性能和扩展性。 如果以前使用 Xamarin.Forms 生成跨平台用户界面,你会注意到与 .NET MAUI 的许多相似之处。 但也有一些差异。 使用 .NET MAUI,可以使用单个项目创建多平台应用,但可以根据需要添加特定于平台的源代码和资源。 .NET MAUI 的主要目的之一是使你能够在单个代码库中实现尽可能多的应用逻辑和 UI 布局。
MAUI的工作原理
.NET MAUI 将 Android、iOS、macOS 和 Windows API 统一到单个 API 中,提供“编写一次就能在任何地方运行”的开发人员体验,同时还提供了对每个原生平台各个方面的深入访问。
.NET 6 或更高版本提供一系列特定于平台的框架用于创建应用:.NET for Android、.NET for iOS、.NET for macOS 和 Windows UI 3 (WinUI 3) 库。 这些框架都有权访问同一个 .NET 基类库 (BCL) 。 此库从代码中抽象出基础平台的详细信息。 BCL 依赖于 .NET 运行时来为代码提供执行环境。 对于 Android、iOS 和 macOS,环境由 Mono 实现,这是 .NET 运行时的实现。 在 Windows 上,.NET CoreCLR 提供执行环境。
一张图说明白.NET MAUI的体系结构
如何开发MAUI
需要 Visual Studio 2022 17.3 或更高版本,或者 Visual Studio 2022 for Mac 17.4 或更高版本。
如果要生成 iOS 的 .NET MAUI 应用,还需要:
- 与最新版本的 Xcode 兼容的 Mac。
- 最新版本的 Xcode
- 苹果开发者账户
该如何选择?
如果是尝鲜或者开发windows应用,个人感觉MAUI不错。
如果是给老外开发应用,那么Flutter是不错的选择。
如果是国内的移动应用,选择uni-app就可以了。
我选择的是.NET MAUI Blazor应用,因为相对于 .NET MAUI来说,Xamarin.Forms 我不是很有兴趣,我感觉就是跟Flutter似的,不停的套娃写法属实对我不友好,所以我选择一个折中的,.NET 还凑合,HTML+CSS也还凑合。MAUI Blazor还是比较适合我的。
总结
暂无,下期开始创建第一个MAUI Blazor应用!