前言
前几天分享了一个.NET MAUI开源免费的UI工具包 - Uranium,然后技术群有不少同学问.NET MAUI是不是免费的?能做什么?今天特意写这篇文章来介绍一下.NET开源、免费(基于MIT License)的跨平台框架:MAUI。
.NET MAUI官方介绍
.NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。使用 .NET MAUI,可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。
.NET MAUI 是一款开放源代码应用,是 Xamarin.Forms 的进化版,从移动场景扩展到了桌面场景,并从头重新生成了 UI 控件,以提高性能和可扩展性。如果以前使用过 Xamarin.Forms 来生成跨平台用户界面,那么你会注意到它与 .NET MAUI 有许多相似之处。但也有一些差异。通过使用 .NET MAUI,可使用单个项目创建多平台应用,但如果有必要,可以添加特定于平台的源代码和资源。.NET MAUI 的主要目的之一是使你能够在单个代码库中实现尽可能多的应用逻辑和 UI 布局。
.NET MAUI适合哪些用户
-
基于 Visual Studio 中的单一共享代码库,使用 XAML 和 C# 编写跨平台应用。
-
跨平台共享 UI 布局和设计。
-
跨平台共享代码、测试和业务逻辑。
.NET MAUI支持的平台
-
Android 5.0 (API 21) 或更高版本。
-
iOS 11 或更高版本。
-
Mac Catalyst 的 macOS 10.15 或更高版本。
-
Windows 11 和 Windows 10 版本 1809 或更高版本,使用 Windows UI 库 (WinUI) 3。
.NET MAUI 如何运作
.NET MAUI 将 Android、iOS、macOS 和 Windows API 统一到单个 API 中,提供“编写一次就能在任何地方运行”的开发人员体验,同时还提供了对每个原生平台各个方面的深入访问。
.NET MAUI 提供了用于为移动和桌面应用生成 UI 的单一框架。下图显示了 .NET MAUI 应用体系结构的高级视图:
.NET MAUI项目源代码
-
Github开源地址:https://github.com/dotnet/maui
.NET MAUI开发环境安装
注意:开发本机跨平台.NET MAUI应用需要 Visual Studio 2022 17.8 或更高版本,或者 Visual Studio 2022 for Mac 17.6。
安装.NET Multi-platform App UI 开发工作负荷:
.NET MAUI的优缺点
以下是个人见解,假如你有不一样的观点欢迎留言。
优点:
-
跨平台性:使用.NET MAUI,开发人员可以编写一次代码,然后在多个平台上运行,包括iOS、Android、Windows 和 macOS。
-
本地用户体验:.NET MAUI 提供了本地用户界面组件和控件,使开发人员能够创建具有原生外观和感觉的应用程序。
-
单一项目:.NET MAUI 使用单一项目结构,使得在不同平台上开发和维护应用程序变得更加简单和高效。
-
共享代码:开发人员可以在不同平台之间共享大部分代码,从而减少了开发时间和成本。
-
现有技能:对于已经熟悉.NET 和 C# 的开发人员来说,学习和使用.NET MAUI 是相对容易的,因为它构建在熟悉的技术栈之上。
缺点:
-
性能:尽管.NET MAUI 使用了许多性能优化技术,但跨平台开发仍可能导致性能上的一些损失,特别是对于需要高性能的应用程序而言。
-
平台特定功能:某些平台特定的功能可能无法在.NET MAUI 中直接实现,开发人员可能需要编写特定平台的代码来满足这些需求。
-
学习曲线:对于没有.NET 或 C#开发经验的开发者而言,学习.NET MAUI 可能需要一定的时间和精力。
-
社区生态:虽然.NET社区很庞大,但与其他跨平台开发框架相比,.NET MAUI的社区支持可能相对较少,社区成熟的解决方案也不多,对于开发者和公司而言这可能是他们选型的一大考核点。
.NET Multi-Platform App UI文档
微软官方提供了详细的使用文档,文档中有详细的介绍和上手实践教程,大家可以放心食用。
https://learn.microsoft.com/zh-cn/dotnet/maui/?view=net-maui-8.0
Awesome .NET MAUI
https://github.com/jsuarezruiz/awesome-dotnet-maui
参考文章
-
https://learn.microsoft.com/zh-cn/dotnet/maui/what-is-maui?view=net-maui-8.0