桌面程序技术选型大厂使用技术以及优劣对比

  1. 大厂客户端使用技术
软件 客户端 语言
微信/qq/百度网盘 Windows c++ duilib
wps Windows c++ qt
酷狗 qq音乐 网易云音乐 阿里旺旺 Windows c++ libcef
讯雷 Windows Electron
钉钉/微小宝/微信web开发工具 Mac nw.js

钉钉

微小宝

  1. 做全端技术选型 C++ ,QT ,Winform ,Wpf,Electron,Flutter,C#(WebWindow+Blazor),Tauri

    • Tauri 带后期观察 -话说可以取代Electron替代产品
      代码仓库:https://github.com/tauri-apps/tauri
    • Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架:
      • 使用 C# 代替 JavaScript 来创建信息丰富的交互式 UI。
      • 共享使用 .NET 编写的服务器端和客户端应用逻辑。
      • 将 UI 呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器。
      • 与新式托管平台(如 Docker)集成。
    • 使用 .NET 进行客户端 Web 开发可提供以下优势:
      • 使用 C# 代替 JavaScript 来编写代码。
      • 利用现有的 .NET 库生态系统。
      • 在服务器和客户端之间共享应用逻辑。
      • 受益于 .NET 的性能、可靠性和安全性。
      • 在 Windows、Linux 和 macOS 上使用 Visual Studio 保持高效工作。
      • 以一组稳定、功能丰富且易用的通用语言、框架和工具为基础来进行生成。
        其他的自行搜索引擎查看文章
  2. 优缺点对比

    • NW.jsElectron 优缺点分析对比
      通过前面的案例意识使用情况来看
      优点:

      • 开源的核心扩展比较容易,目前是基于 node 6.x,加之现在 gyp 已经非常人性化了,使得c++ 和 js 搞基非常容易。
      • 界面定制性强,原则上只要是Web能做的他都能做。
      • 是目前最廉价的跨平台技术方案,HTML+JS 有大量的前端技术人员储备,而且有海量的现存web UI 库。大多都很靠谱。
      • 相对其他跨平台方案(如 QT GTK+ 等),更稳定,bug少, 毕竟只要浏览器外壳跑起来了,里面的问题不会太多 ,当然我也遇到过一些暗坑。
      • 方便热更新。下载覆盖完事。当然这是所有脚本共有的优点。

      缺点:

      • 卡,启动慢,这可能是webkit的锅。毕竟一个浏览器要支持的功能确实有点多。
      • 除了主进程 你可能还需要启动一些辅助进程来完成工作。而每当你新开一个进程,起步价就是一个nodejs的内存开销!
      • 丢帧,这个最严重,可我已习惯了native 的丝滑. mac下感觉还可以 win下有点够呛。
      • 打出来的包太大。(很显然,即便是一个空包,也至少包含了一个浏览器的体积
  3. 根据2021年1月语言排行榜

20210207103809.png

  1. 我的技术选型
    如果2021年开始做全端的互联网产品,目前阶段我的个人优先选择Flutter > Electron
    C#(WebWindow+Blazor)后劲十足,后期观察tauri根据作者的排的计划来看,估计要到2021年底才出一个bete版本,官网 2022年以后才能做一个稳定版本
    根据不同产品需求技术选型时不一样,仁者见仁,智者见智。如果:如果做汽车类的一些产品或者工业级级别客户端优先去考虑QT,毕竟库还是很丰富。
    我的技术选型一般从一下几个方面去考虑:

    • 技术生命周期,活跃性
    • 在某些行业库是否比较丰富
    • 根据团队的技术特点和项目的时间规划周期
  2. 参考资料