MAUI多平台支持咨询:WebAssembly适配及微软Blazor路线疑问
问题描述
我计划将部分桌面应用升级至最新的.NET技术以支持多平台,经调研可选MAUI与Avalonia,二者均使用XAML。其中:
- MAUI仅可创建原生桌面、iOS、Android应用;
- Avalonia凭借自研渲染器可生成桌面、iOS、Android、Linux及Web(WebAssembly)应用,UI跨平台一致,但非原生特性可能无法充分利用各平台能力,且并非微软出品。
微软的Blazor基于Razor与C#,主打Web开发,Blazor混合应用需通过WebView组件在桌面运行。
我的核心需求以桌面应用开发为主,Avalonia单代码库适配多平台的特性颇具吸引力,但担忧其长期支持性。现咨询:
- 微软是否有计划或现有编译/渲染器让MAUI支持生成WebAssembly应用?
- 鉴于微软大力推进Blazor混合应用,是否希望开发者优先使用Blazor(Razor+C#)而非XAML?
更新(230828):MAUI现已支持Razor语法,请问微软是否会通过Blazor实现桌面与移动应用的单代码库开发?
解答
1. MAUI支持WebAssembly的计划
目前微软没有公开计划为MAUI添加直接生成WebAssembly应用的能力。MAUI的定位是原生跨平台UI框架,聚焦于利用各平台原生控件与能力,WebAssembly场景目前由Blazor主导。
2. 微软对Blazor vs XAML的优先级
微软并未明确要求开发者优先使用Blazor而非XAML,二者定位不同:
- XAML框架(MAUI、WPF、WinUI)更适合需要深度利用平台原生特性、追求原生性能与体验的桌面/移动应用;
- Blazor(包括混合应用)则主打Web优先,适合希望复用Web技术栈、快速覆盖Web+桌面/移动场景的项目,其混合应用本质是通过WebView承载Web内容,并非原生UI渲染。
微软会根据不同场景推进对应的技术,开发者可根据自身需求选择。
3. MAUI+Blazor实现单代码库跨平台
MAUI支持Razor语法是为了让开发者在MAUI项目中使用Blazor组件构建UI,但这并非通过Blazor实现原生桌面/移动应用的单代码库开发。当前的MAUI Blazor混合模式,本质还是在MAUI的原生容器中嵌入Blazor WebView,Web部分的代码可复用,但原生平台的特定逻辑仍需单独处理。
微软目前的路线中,Blazor主要负责Web及混合应用场景,MAUI负责原生跨平台UI,二者会保持互补而非合并为单一的单代码库方案。
内容的提问来源于stack exchange,提问作者newcoder
相关产品推荐
相关产品推荐

