[MAUI] 混合开发概念

MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI 距离上次发《MAUI初体验:爽》一文已经过去2个月了,本计划是下半年或者明年再研究MAUI的,现在计划提前啦,因为我觉得MAUI Blazor挺有意思的:在Android、iOS、macOS、Windows之间共享UI,一处UI增加或者修改,就能得到一致的UI体验。看看这篇文章《Blazor Hybrid/MAUI 简介和实战》对MAUI Blazor的说明:今天就分享如何在Blazor Server、Blazor Wasm、MAUI Blazor之间共享UI的实验,这一步完成,后面开发应用时就方便多了(只 阅读详情

混合开发的概念是相对与原生开发来说的:App不直接运行原生程序,而是在原生程序中运行一个Web程序,原生程序中包含Web运行时,用于承载Web页面。暂且将原生应用称之为Web容器,Web容器应该能让JavaScript代码与原生平台的代码交互,互相调用,同时为上层提供交互逻辑,例如导航,事件,Cookie,刷新等内容。

之前使用Xamarin可以利用WebView控件做混合开发,但是到目前为止WebView功能还是比较孱弱。用WebView实现混合开发主要是通过重写各个平台的自定义呈现器(Renderer)编写逻辑对其进行自定义,将JavaScript代码注入,实现调用C#代码的功能。自己要实现较完整和好用的Web容器比较困难,像Xam.pluging和Xamarin Community Toolkit等社区也有较好的WebView实现 ,Xamarin对各平台的呈现器如下:

WebView 类及其实现本机类之间的关系

 如今Maui的Preview版本已经发布,该版本将Xamarin SDK统一到.Net6,并起了个全新的名称 Multi-platform App UI(MAUI), 无论是Xamarin还是MAUI,底层还是用的还是mono,编程方式不变,但现在它已作为.Net6核心的内容发布,与同属 Asp.net 6 的 Blazor共享相同的基类库,这意味着可以在Maui上使用Blazor了,打开VisualStudio 2022 Preview,创建新项目,可以选择Maui Blazor App模板作为混合开发项目(如下图),这两个框架可以算是目前微软最先进的技术。

我们用 BlazorWebView 这个控件代替之前的WebView,实现js与C#交互,

其实Blazor引擎很强大,不止于js与C#交互的这一功能, 介于目前国内大多数的web技术用的是Vue,React等模板引擎,下一章节我们将Vue技术结合进来,打造最目前强混合开发框架!

避坑,c#开发人员学习开发app时.NET MAUI和Vue3 选择 适合需要高性能原生应用、已有C#技术积累、或需快速迭代企业级应用(如内部工具、数据采集App)的场景。典型案例:跨平台办公软件、物联网设备控制端。适合轻量级应用、偏好Web技术栈、或需高度定制UI(如电商、社交类App)。经过一段时间学习vue3后才发现作为一个C#背景的开发人员从开发效率、调试便捷性、部署便利性考虑,建议优先尝试.NET MAUI,若项目需求偏向Web或已有Vue3经验,再考虑后者。是更合适的选择,尤其是在跨平台原生应用开发场景中。 阅读详情

相关推荐

C#跨平台框架性能大比拼:.NET MAUI vs Avalonia vs Uno,谁才是效率王者?

C#跨平台框架性能对比:.NET MAUI、Avalonia与Uno Platform深度评测 本文针对三大主流C#跨平台框架展开性能对比分析: 框架特性 .NET MAUI:微软官方全平台方案,继承XAML设计 Avalonia:专注桌面端,基于SkiaSharp高效渲染 Uno Platform:支持WebAssembly,实现C#网页化 关键指标 启动速度:Avalonia最快(桌面端0.8秒) 内存占用:Avalonia最低(90MB),Uno WebAssembly最高(250MB) 渲染效率:A

java专栏 2263

[MAUI] 在.NET MAUI中结合Vue实现混合开发

在MAUI微软的官方方案是使用Blazor开发,但是当前市场大多数的Web项目使用Vue,React等技术构建,如果我们没法绕过已经积累的技术,用Blazor重写整个项目并不现实。 Vue是当前流行的web框架, 简单来说是一套模板引擎,利用“模板”和“绑定”两大特性实现web页面mvvm模式开发。利用.NET MAUI框架可以将Vue应用嵌入到Web容器中。可以实现跨平台的混合开发。 例如我在某医疗行业项目中,已经用这个混合开发的方式生成应用,Vue代码不需要做什么改动,就能跨平台运行: 如果你

jevonsflash的专栏 8675

C# OpenCvSharp vs .NET MAUI:谁才是“终极王者”?

🔥关注墨瑾轩,带你探索编程的奥秘!🚀🔥超萌技术攻略,轻松晋级编程高手🚀🔥技术宝库已备好,就等你来挖掘🚀🔥订阅墨瑾轩,智趣学习不孤单🚀🔥即刻启航,编程之旅更有趣🚀。

java专栏 1225

MAUI 开发从入门到出门 (6 浏览器)

MAUI 入门篇之六

zhangsh1987的专栏 4160

MAUI Blazor混合开发实战:从零构建跨平台智能天气应用完整指南

MAUI Blazor混合开发结合了.NET MAUI的跨平台能力与Blazor的Web开发优势,允许开发者使用C#、HTML和CSS构建高性能原生应用。文章详细解析了其核心架构,包括BlazorWebView组件、运行时环境和JS互操作层,并介绍了开发环境配置流程。通过天气组件示例展示了Blazor开发模式,同时演示了如何集成原生功能如地理位置服务。这种混合开发模式显著降低了跨平台开发的学习曲线,同时保持了应用性能和原生体验,特别适合需要代码复用和快速迭代的项目。

理论都是虚的,代码才是王道。 159

教程 | 基于遥感生态指数(RSEI)模型的生态环境质量评价

使用数据:Landsat8 OLI数据,行列号:122036,时间:20210527。 使用软件:ENVI5.3、ArcGIS10.2 二、4个指数计算 下述的四个指数的计算均是通过ENVI软件中的Band math工具进行计算。 (1)绿度指数 在常用的植被指数当中,归一化植被指数 ( NDVI) 能够有效地反映植被的生长情况与植被 覆盖度等重要植被的物理性质,检测灵敏度高,能 够较为真实地展现区域的地表空间变化规律,已经得到广泛利用,本文采用 NDVI 指数来代表绿度指数。 在ENV

YW_remote的博客 1万+

[MAUI]深入了解.NET MAUI Blazor与Vue的混合开发

每个BlazorWebView控件包含根组件(RootComponent)定义,ComponentType是在应用程序启动时加载页面时的类型,该类型需要继承自Microsoft.AspNetCore.Components.IComponent,由于我们的导航是由MAUI处理的,因此我们不需要使用Blazor路由,直接使用Razor组件。开发应用需要一个独立的host项目。中引入,还有一种是使用并置的js文件,这种方式是所谓的"CodeBehind",因为更利于组织代码,这里我们使用并置的js文件。

jevonsflash的专栏 3051

通达信量化打板选股指标公式源码副图

X_2:=3*LOW;X_13:=4;X_14:=3;X_15:=2;X_16:=1;

gpzb7的博客 4483

Blazor 混合开发_MAUI+Vue_WPF+Vue

在 MAUI 微软的官方方案是使用 Blazor 开发,但是当前市场大多数的 Web 项目使用 Vue、React 等技术构建,用Blazor重写整个项目并不现实。利用 .NET MAUI 框架可以将 Vue 应用嵌入到 Web 容器中,可以实现跨平台的混合开发。将 dist 文件夹下的所有文件复制到容器项目下的 wwwroot 文件夹下。Vue 是当前流行的 Web 框架, 简单来说是一套模板引擎,利用。第一个参数是容器项目的 Namespace,第二个参数是要调用的方法。导入 namespace。

视觉软件 2821

TruckSim与Simulink联合仿真中的车轮转角精确控制策略

本文深入探讨了TruckSim与Simulink联合仿真中实现车轮转角精确控制的关键策略。针对多轴车辆路径跟踪时转角指令失灵的常见问题,核心在于正确配置TruckSim转向轴的外部输入模式(Advanced Settings),并确保仿真接口的稳定搭建。文章详细解析了从单轴到多轴协同转向的配置方法,并提供了提升MPC路径跟踪精度的实战技巧与调试经验。

weixin_29035147的博客 367

Unity透明视频播放全攻略:AVPro Video插件实战与避坑指南

在游戏开发与交互式内容创作中,视频播放是常见的多媒体需求。其核心原理在于通过解码器将压缩的视频数据流转换为连续的图像帧,再经由图形API渲染至屏幕。这项技术的价值在于能够高效地呈现动态视觉内容,广泛应用于游戏过场动画、UI特效、AR/VR虚拟展示等场景。当需求进阶到需要背景透明的视频时,技术实现复杂度显著增加,这涉及到对视频Alpha通道的编码、解码与渲染管线的特殊处理。本文聚焦于Unity引擎中实现高质量透明视频播放的工程实践,深入解析了AVPro Video这一专业插件如何解决原生VideoPlayer

weixin_30368981的博客 376

.NET MAUI与Blazor混合开发:Web技术赋能原生应用

在移动与桌面应用开发领域,开发者长期面临一个困境:如何用一套代码库构建兼顾原生体验与开发效率的跨平台应用。.NET MAUI(Multi-platform App UI)作为.NET生态下的统一跨平台框架,通过C#和XAML实现了iOS、Android、Windows等平台的原生应用开发。而Blazor则将Web开发模式引入.NET,允许使用Razor组件构建交互式Web界面。当这两项技术结合时,...

gitblog_00339的博客 603

Rclone替代RaiDrive?零广告免费挂载Alist WebDAV到Windows资源管理器(含自启脚本)

本文详细介绍了如何使用开源工具Rclone替代RaiDrive,实现零广告、全免费的Alist WebDAV挂载方案。通过深入解析配置参数、提供完整的自启动解决方案和解决常见问题,帮助用户在Windows资源管理器中高效管理云存储,提升使用体验。

weixin_33709364的博客 638

Blazor 混合开发:MAUI 与 Web 组件的无缝集成

Blazor混合开发是一种将Blazor Web框架与本地应用平台(如.NET MAUI)结合的技术,实现Web组件在跨平台应用中的无缝运行。这种方法允许开发者使用C#和Razor语法构建UI组件,并在移动、桌面或Web环境中共享代码,提升开发效率和一致性。以下步骤基于.NET 6或更高版本,使用Visual Studio或.NET CLI。Blazor混合开发结合MAUI,实现了Web组件在本地应用中的无缝集成,为跨平台开发带来高效和灵活性。实践中,关注性能监控和用户反馈,确保应用体验流畅。

2501_93894775的博客 650

Android 12.0 SystemUI下拉状态栏定制化之隐藏下拉通知栏布局功能实现(二)

在12.0的系统定制化开发中,由于从12.0开始SystemUI下拉状态栏和11.0的变化比较大,所以可以说需要从新分析相关的SystemUI的 布局,然后做分析来实现不同的功能,今天就开始实现关于隐藏SystemUI下拉状态栏中的通知栏布局系列二,去掉下拉状态栏中 通知栏部分 白色的圆角背景

安卓兼职framework和app工程师的博客 1634

实战优化!C#上位机串口通信卡顿问题:超时机制+数据缓存方案

串口名</param>/// <param name="baudRate">波特率

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1064

学习.NET MAUI Blazor(三)、创建.NET MAUI Blazor应用并使用AntDesignBlazor

大致了解了Blazor和MAUI之后,尝试创建一个.NET MAUI Blazor应用。 **需要注意的是:** 虽然都叫MAUI,但`.NET MAUI`与`.NET MAUI Blazor` 并不相同,MAUI还是以`xaml`为主,而MAUI Blazor则是以`razor`为主。

What If... 2945

ARM系统控制和管理接口System Control and Management Interface

本文档描述了一个可扩展的独立于操作系统的软件接口,用于执行各种系统控制和管理任务,包括电源和性能管理。 本文档描述了系统控制和管理接口(SCMI),它是一组操作系统无关的软件接口,用于系统管理。

AI-安全-功耗 1913

探索跨平台UI框架Maui

Maui是一个基于Xamarin.Forms的跨平台UI框架,可以让开发者快速构建跨平台应用程序。与传统的混合开发方式不同,Maui提供了更高效的代码复用和更丰富的UI控件库,使得开发者能够更加专注于业务逻辑的实现。Maui是一个非常优秀的跨平台UI框架,具有跨平台、高效率、丰富的UI控件库和可扩展性强等优点。如果我们正在寻找一种简单易用的跨平台UI框架,那么Maui绝对值得一试!

m0_68856746的博客 1816

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

MAUI 学习大纲(AI)

MAUI 学习

StupidLittle的博客 1037

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

为什么选择 .NET MAUI?learn-dotnet-maui 资源库揭示跨平台开发优势

在当今移动应用和桌面应用开发领域,选择正确的技术栈至关重要。.NET MAUI(多平台应用程序 UI)作为微软官方推出的跨平台开发框架,正在迅速成为开发者的首选。通过 learn-dotnet-maui 资源库,我们可以深入了解 .NET MAUI 的强大功能和跨平台开发优势。这个全面的资源集合为开发者提供了从入门到精通的完整学习路径,帮助您掌握这一革命性的跨平台开发技术。 ## 🌟 .NET

gitblog_00273的博客 886

将Abp移植进.NET MAUI项目

前言写在.NET MAUI官宣正式发布之际,热烈庆祝MAUI正式发布!去年12月份做了MAUI混合开发框架的调研,想起来文章里给自己挖了个坑,要教大家如何把Abp移植进Maui项目。熟悉Abp的同学都知道,Abp 是一套强大的应用程序设计时框架(俗称脚手架),新版本的Abp vNext为微服务和网络优化的更多,然而本地开发经典Abp已经够用,而且官方没有停止维护,因此使用...

dotNET跨平台 656

.NET MAUI:跨平台开发的未来利器

.NET MAUI(Multi-platform App UI)是微软推出的跨平台开发框架,支持Windows、Android、iOS和macOS等多平台应用开发。其技术优势包括高效的代码复用(一次编写多端运行)、性能优化提升10%以上,以及与.NET生态的无缝集成。最新版本.NET 9进一步增强了对云原生和AI开发的支持,并优化了控件API。相比React Native和Flutter,MAUI在复杂界面开发、原生访问和学习曲线方面表现更优。该框架特别适合有C#/.NET背景的开发者,通过系统学习可在短时

云中小生 916

.NET MAUI 安卓 UI 资源设置

本文主要介绍使用 MAUI 开发安卓应用时,如何更换和处理 UI 资源:应用名称,图标,主题配色,状态栏,闪屏。

桑榆肖物 2230

.NET MAUI跨平台开发实战指南:从架构原理到企业级应用深度解析

.NET MAUI(.NET Multi-platform App UI)是微软推出的跨平台应用开发框架,让开发者能够使用单一代码库构建同时运行在Android、iOS、macOS和Windows平台的移动和桌面应用。作为Xamarin.Forms的演进版本,.NET MAUI扩展了跨平台能力,提供了更现代化的开发体验和更强大的工具链支持。🚀 ## 为什么选择.NET MAUI进行跨平台开发?

gitblog_01004的博客 871
上一篇: Typescript 中如何像C#一样用对象初始化器实现类的实例化
下一篇: [MAUI] 在.NET MAUI中结合Vue实现混合开发
林晓lx
林晓lx 2017年优快云移动跨平台大赛优秀奖获得者 2017年优快云移动跨平台大赛优秀奖获得者
博客等级 码龄15年 3761粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林晓lx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值