.NET开源免费的跨平台框架 - MAUI(附学习资料)

前言

前几天分享了一个.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/824662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【刷题笔记】第八天

文章目录 [928. 尽量减少恶意软件的传播 II](https://leetcode.cn/problems/minimize-malware-spread-ii/)方法1:dfs方法2:并查集 [GCD and LCM](https://vjudge.net.cn/problem/Aizu-0005)[Missing Bigram](https://vjudge.net.cn/problem/CodeForces-1…

基于springboot+vue+Mysql的简历系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

数据赋能(60)——要求:数据服务部门能力

“要求:数据服务部门实施数据赋能影响因素”是作为标准的参考内容编写的。 在实施数据赋能中,数据服务部门的能力体现在多个方面,关键能力如下图所示。 在实施数据赋能的过程中,数据服务部门应具备的关键能力如下。 业务理解和沟…

案例与脚本实践:DolphinDB 轻量级实时数仓的构建与应用

DolphinDB 高性能分布式时序数据库,具有分布式计算、事务支持、多模存储、以及流批一体等能力,非常适合作为一款理想的轻量级大数据平台,轻松搭建一站式的高性能实时数据仓库。 本教程将以案例与脚本的方式,介绍如何通过 Dolphin…

MySQL 的事务

事务概念 MySQL事务是一个或者多个的数据库操作,要么全部执行成功,要么全部失败回滚。 事务是通过事务日志来实现的,事务日志包括:redo log和undo log。 事务状态 事务有以下五种状态: 活动的部分提交的失败的中止的…

使用GAN做图像超分——SRGAN,ESRGAN

在GAN出现之前,使用的更多是MSE,PSNR,SSIM来衡量图像相似度,同时也使用他们作为损失函数。 但是这些引以为傲的指标,有时候也不是那么靠谱: MSE对于大的误差更敏感,所以结果就是会倾向于收敛到期望附近&am…

【深度学习】wandb模型训练可视化工具使用方法

【深度学习】wandb模型训练可视化工具使用方法 wandb简介功能介绍登陆注册以及API keysproject和runsproject和runs的关系 wandb的配置实验跟踪版本管理Case可视化分析可视化自动调参(wandb.sweep)配置wandb.sweep1.配置 sweep_config2.初始化 sweep con…

【python】flask中ORM工具SQLAIchemy,各种数据查询操作详细解析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Python 密码学实用指南(全)

原文:zh.annas-archive.org/md5/fe5e9f4d664790ea92fb33d78ca9108d 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 密码学在保护关键系统和敏感信息方面有着悠久而重要的历史。本书将向您展示如何使用 Python 加密、评估、比较和攻击数据。总的来说&…

Qt对话框

文章目录 创建普通的对话框对话框的内存泄露问题自定义对话框模态式对话框QMessageBox(消息对话框)对话框类型对话框按钮接收对话框返回值演示其他创建方式 QColorDialog(颜色对话框)案例 QFileDialog(文件对话框&…

仿真测试的应用领域

仿真测试在各种领域中都有广泛的应用,以下是一些应用最广泛的场景: 工业制造:通过模拟制造过程,可以预测产品的质量和性能,优化生产流程,降低成本。航空航天:飞机、导弹、航天器等的设计和研发…

Python - 字符串的应用

字符串格式化问题 使用规则举例: name input("请输入你的名字:") address input("请输入你的住址:") age int(input("请输入你的年龄:")) hobby input("请输入你的爱好:") # %s 字符…

【Android GUI】从总体上了解Android的GUI体系

文章目录 概览Android硬件接口HALGralloc与Framebuffer Gralloc模块的加载Gralloc提供的接口Android原生的Gralloc实现打开framebuffer设备打开gralloc设备 参考 概览 Linux内核提供了统一的framebuffer显示驱动。设备节点/dev/graphics/fb*或者/dev/fb*,其中fb0表示…

快速上手Linux核心命令

Linux 的重要性不用我多说了吧,大多数互联网公司,服务器都是采用的Linux操作系统 Linux是一个主要通过命令行来进行管理的操作系统。 只有熟练掌握Linux核心命令,在使用起来我们才会得心应手 这里给大家整理了Linux一些核心命令&#xff0…

Android --- Activity

官方文档-activity Activity 提供窗口,供应在其中多个界面。此窗口通常会填满屏幕,但也可能小于屏幕并浮动在其他窗口之上。 大多数应用包含多个屏幕,这意味着它们包含多个 Activity。通常,应用中的一个 Activity 会被指定主 Ac…

JAVA基础08- 继承,重写,super以及this

目录 继承(extends) 定义 说明 作用 方法的重写 定义 重写关键点 方法重写与重载的区别 练习 练习1(方法继承与重写的简单练习) 练习2(方法继承与重写的进阶练习) This的使用 定义 作用以及注…

基于SpringBoot+Vue的IT技术交流平台(源码+文档+包运行)

一.系统概述 我国科学技术的不断发展,计算机的应用日渐成熟,其强大的功能给人们留下深刻的印象,它已经应用到了人类社会的各个层次的领域,发挥着重要的不可替换的作用。信息管理作为计算机应用的一部分,使用计算机进行…

leetcode-分割链表

题目 面试题 02.04. 分割链表 提示 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1: 输入&#xff…

搜维尔科技:【工业仿真】煤矿安全知识基础学习VR系统

产品概述 煤矿安全知识基础学习VR系统 系统内容: 煤矿安全知识基础学习VR系统内容包括:下井流程(正确乘坐罐笼、班前会、井下行走注意事项、工作服穿戴、入井检身及人员清点、下井前准备工作、提升运输安全);运煤流程…

SpringBoot集成RockerMQ

1.引入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.0</version> </dependency>2.配置服务器地址 #Rocketmq配置 rocketmq.name-server192…