学习.NET MAUI Blazor(二)、MAUI是个啥

news2024/11/20 2:27:03

随着.NET 7的发布,MAUI也正式发布了。那么MAUI是个啥?我们先来看看官方解释:

.NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。

目录

  • 关于MAUI
  • MAUI的工作原理
  • 如何开发MAUI
  • 该如何选择?
  • 总结

关于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应用!

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

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

相关文章

5万字企业数字化运营管理平台软件开发框架项目技术方案

目录 1 项目总体概述 项目总体技术方案保障 系统设计 系统体系结构设计 系统指标保障 系统质量 系统健壮性 系统应具备安全性 系统易用性 系统可维护性 系统完备性 系统可扩展性 系统可测试性 系统可移植性 系统可追踪性 系统易安装性 2 项目技术方案 2.1 系统…

没有的博客1

我虽不善言辞 但关于爱你 我无法掩饰 关于我爱你音频:00:0004:55 | 01 | 愿你们是渣的那一方 背负所有骂名愉快生活 而不是在深夜痛哭 辗转反侧茶饭不思 做一个痛苦的好人 | 02 | 昨晚喜欢的男孩子发了新女友的照片 很难过 做个大人真好啊 十分钟就能让自…

Linux上RabbitMQ安装使用

文章目录安装安装erlang安装rabbitMQ管理指令安装 官网 由于需要对应erlang和rabbitMQ两者版本的关系,先确定好下载哪个版本,版本关系表,以下教程以Erlang 23.3.4.11和RabbitMQ 3.9.14为例 安装erlang 略,进入对应版本下载安装…

【YApi接口管理平台】在Linux上使用Docker搭建YApi (亲测完美运行)

本期目录前言1. 创建MongoDB容器数据卷2. 安装Node.js3. 拉取MongoDB镜像4. 启动Mongo容器5. 拉取YApi镜像6. 初始化YApi7. 运行YApi容器8. 访问前言 博主想在自己的 Linux 虚拟机上使用 Docker 搭建 API 接口管理平台来团队开发一个项目,跟着网上的教程硬是装了好…

Unreal Engine的编译类型和命名规则

目录 编译类型 命名规则 资源命名规则 文件夹命名规则 编译类型 debug game只能调试你的项目,不能调试编辑器项目 多加了一个editor,就可以调试编辑器了。 不同的编译类型可以理解为引擎在不同的类型下的监管程度,用以不同的场景 Te…

树莓派驱动水星无线网卡(MW150UH)教程指南

目录 1.树莓派版本 2.无线网卡 查询无线网卡 1.如果为 Bus 001 Device 005: ID 0bda:b711 Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (After Modeswitch) 2.如果为 Bus 001 Device 007: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapte…

深度学习计算广告(更新中)

本文转自王喆的《深度学习计算广告》,仅用于学习。 文章目录一、计算广告系统简介二、经典的广告系统架构三、dl时代广告系统各模块技术演进1. Ad Ranking - 从大刀阔斧的革命到精雕细琢的改进(1)模型发展图(2)张俊林&…

STL之list模拟实现

list常识 list迭代器不支持【】&#xff0c;所以不支持随机访问。也不支持>、<&#xff0c;没有意义&#xff0c;因为iterator是地址&#xff0c;地址并不连续。 重要的说三遍&#xff1a; list不支持随机访问&#xff0c;因为没有重写[]。 list不支持随机访问。 list不…

vue3+ts项目 笔记总结

一、首先得先建好vue3ts的项目&#xff1a; 在终端新建项目输入&#xff1a;vue create vue3-ts接下来的每一步如图所示&#xff1a;注意要通过空格选中TypeScript二、项目建好后&#xff0c;开始正常的开发&#xff0c;注意区分vue2与vue3的区别&#xff1a; 在vue3项目中不…

移动设备软件开发-Spape详解

Spape详解 1.自定义背景shape 1.1gradient 1.简介 定义渐变色&#xff0c;可以定义两色渐变和三色渐变&#xff0c;及渐变样式&#xff0c;它的属性有下面几个2.属性 angle&#xff0c;只对线性渐变是有效的放射性渐变必须指定放射性的半径&#xff0c;gradientRadiouscentetX和…

(一)汇编语言——基础知识

目录 基础知识 总线 地址总线 数据总线 控制总线 内存地址空间 总结 今天我们就开始学习有关汇编的相关知识了&#xff0c;感觉和之前学的STM32相类似&#xff0c;所以学习起来并没有感觉很困难&#xff0c;相反&#xff0c;感觉有点好玩&#xff0c;并且理解了底层原理…

网络技术期末复习~重点考题

解题思路&#xff1a; 标准答案&#xff1a; 11. 如图所示&#xff0c;网络145.13.0.0/16划分为四个子网N1,N2,N3,N4。它们与路由器R相连的接口分别是m0,m1,m2,m3,R的第五个接口m4连接到互联网路由器&#xff08;接口地址为1.1.1.1&#xff09;。 (1)请给出路由器R的路由表。 …

Anaconda+VSCode+QT Designer配置PyQt5环境

AnacondaVSCodeQT Designer配置PyQt5环境 本文使用AnacondaVSCode配置PyQt5环境&#xff0c;在开始之前新建Anaconda的虚拟环境&#xff0c;如果不需要虚拟环境可以直接使用默认的Base环境。另外针对ui文件转py文件报错ImportError: DLL load failed: 找不到指定的模块给出了解…

D3D11和Vulkan共享资源 (二) - 和Intel MediaSDK sample_decode 集成

转过头再找个复杂的播放程序验证一下&#xff0c;还是用我比较熟悉的MediaSDK的播放程序。基本思路就是 在初始化解码输出显示的窗口的时候同时也初始化一个vulkan显示的窗口初始化d3d11设备的时候初始化vulkan, 同时多创建一个D3D11Texture2D的共享纹理最后在MSDK每个frame在…

MySQL——幻读是什么,有什么问题,怎么解决。

数据库有以下的实现&#xff1a; CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,d int(11) DEFAULT NULL,PRIMARY KEY (id),KEY c (c) ) ENGINEInnoDB;insert into t values(0,0,0),(5,5,5), (10,10,10),(15,15,15),(20,20,20),(25,25,25); 对于下面的语句&am…

Zabbix监控部署

目录 编译安装nginx 编译安装PHP 编译安装mysql 安装zabbix 编译安装nginx 参考文章 源码下载 [root8a-1 opt]# uname -a Linux 8a-1 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux [root8a-1 opt]# cat /etc/redh…

OpManager 网络图工具

由于企业网络规模的扩大&#xff0c;网络管理正变得越来越复杂。巨大的规模和动态特性使得扩展网络以跟上其复杂性的上升变得困难。如果没有适当的可视化&#xff0c;网络管理员可能会做出不明智的决策&#xff0c;从而导致意外的网络中断。这可能会对企业造成严重打击&#xf…

计算机网络期末每章计算题总复习

第三章数据链路层 CRC检验问题 知识点 例题 要发送的数据为1101011011。采用CRC的生成多项式是 P(X)X^4 X 1试求应添加在数据后面的余数。数据在传输过程中最后一个1变成了0&#xff0c;问接收端能否发现&#xff1f; 若数据在传输过程中最后两个1都变成了0&#xff0c;问接…

客户关系管理对企业起到至关重要的作用

客户关系管理对企业的发展至关重要。客户会密切关注你为他们提供的服务质量&#xff0c;因此必须有效地管理客户关系。即使是延迟回复这样的小事也可能会对企业的发展产生重大影响。 管理客户关系的好处远远超出了经营你的业务&#xff1b;它们有助于改善你与现有客户的关系&…

后AlphaFold时代的蛋白质结构预测

最新一届的蛋白质结构预测奥林匹克大赛&#xff0c;即15届CASP比赛(CASP15)&#xff0c;在日前拉下了帷幕。这正值谷歌团队AlphaFold2在上一届CASP大赛给该领域带来革命性冲击后两周年。两年后&#xff0c;该领域的状况如何&#xff0c;蛋白质结构预测该何去何从&#xff1f;为…