VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • .Net 跨平台 UI 解决方案的尝试笔记.

本文是个人结合自身需求选择跨平台 UI 时进行的资料整理,带有较强主观性.

我主要做桌面,至少几年之内不能抛弃Win7,能跨 iOS 和 Android 是基本需求,能跨 Web 更好.而且对于图形性能有一定要求.

如有进展会在此更新.

2021-10-17.

当前 .Net 下主流的跨平台解决方案有:

  1. MAUI

  2. UnoPlatform

  3. Avalonia

    三者都是使用 XAML 语言来描述界面,对于 WPF 或 UWP 开发者有天然的亲和力.

简单的对比一下支持的平台:

  1. MAUI https://docs.microsoft.com/zh-cn/dotnet/maui/supported-platforms

  2. UnoPlatform https://platform.uno/docs/articles/getting-started/requirements.html

  3. Avalonia https://docs.avaloniaui.net/

方案 iOS Android Win7 Win10 MacOS WebAssembly Linux
MAUI 10+ 5.0+ 不支持 支持 10.13+ 不支持 非官方支持
UnoPlatform 8+ 5.0+ 支持 支持 10.13+ 支持(性能拉垮) 支持
Avalonia 计划中 计划中 支持 支持 10.13+ 不支持 支持
  • MAUI 由于是微软官方支持,理论上来说未来的可用资源会最多,支持力度也会最大,但在使用前需要仔细考虑以下问题:

    • 产品是否需要支持 Win7,在国内还有大量的用户在使用 Win7 且不会升级的情况下,是否抛弃这部分用户.

    • 基于微软的一贯作风,说不定没用几年又会被推倒重来.

  • UnoPlatform 支持的平台最多,可以尝试.

  • Avalonia 尚不支持移动平台,使用它得到的跨平台收益有限,且根据个人对多个版本的试用,发现 bug 太多,而且都是比较低级的 bug.用它来做项目风险实在太大.

 基于以上原因,个人暂时选择 UnoPlatform 作为主要研究方向.

 

2021-10-19更:

经过几天对 UnoPlatform 的研究和测试,发现 UnoPlatform 的 WebAssembly 性能拉垮,与 Blazor WebAssembly 的性能相差甚远,完全无法满足我的需要,而且当前发布的所谓正式版本,实际只是个半成品.把官方提供的例子跑起来随随便便就能发现一些小 bug,完全达不到产品级的要求,暂时不再继续研究了.期待以后能稳定.

看来 .net 跨平台 UI 暂时没有很好的解决方案了,实在有跨平台需求的话,把业务逻辑与 UI 彻底分开,使用 Standard 2.0 写业务逻辑,然后

需要 WebAssembly  就用 Blazor; 

需要 iOS 和 Android 就用 MAUI(Xamarin);

需要桌面就用 WPF.

 

2021-10-22更:

Blazor + Electron 也许是个不错的注意,就是体积大,占内存多.不过如果日后 Electron 的轻量级替代成熟的话,应该很有看头.

资料:https://zhuanlan.zhihu.com/p/108832003

 

来源:https://www.cnblogs.com/8u7tgyjire7890/p/15417019.html


相关教程