抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

前言

我不太熟悉桌面软件开发,之前我开发桌面软件使用的是C#.Net,对于我来说C#的第三方库太少,需要自己去完成很多重复的事情,在UI方面也比较麻烦,中文教程也比较少。我更希望用我熟悉的前端框架来开发UI,用简单的语言来开发软件。在我最近的项目中我使用了两种方式来开发桌面软件,他们的优势也各有不同。

Tauri

Tauri 可以构建跨平台的应用,与 Electron 较为相似。与 Electron 不同的是 Tauri 没有像 Electron 一样集成 Chromium 核心,而是调用系统的 Webview 来显示前端界面,目前 Windows 端 Webview 使用的是 Microsoft Edge WebView2 兼容性还算不错,在其他系统平台就不清楚了,在开发跨平台软件时在前端界面显示适配方面确实要比 Electron 麻烦一点。当然不集成 Chromium 核心也有很多好处,比如说节省系统资源,软件占用空间小。对于我来说我并不需要开发跨平台软件,所以对于我来说Tauri还是很有吸引力的。
Tauri 程序部分使用的是 Rust,而不像 Electron 使用的是 JavaScript。Rust 的开发体验我认为还不错,第三方库的数量也还可以,就是不管是官方文档还是库的文档对于我来说都比较难看懂。Rust 在国内比较小众,中文资料和教程也都比较少。我在最近的软件开发过程中遇到很多功能也是不知道怎么通过 Rust 实现,最后还是通过调用 Python 程序实现的。

在国内搭建 Electron 环境不太方便,下载经常报错,部分也不太方便换源,但是搭建 Tauri 环境问题不大。

Python + Flask

这种方式已经是比较普遍了,可以在 Python 里自行集成一个 Chromium 核心,也可以在 Python 里调用系统的 Webview 来显示前端界面,当然最方便的就是直接在第三方浏览器打开,这样还可以做局域网远程控制。
Python 的语法简单,第三方库多,文档也还算清晰,国内教程和开发者也多,环境不错。目前我唯一不太喜欢的是在 Visual Studio Code 下格式化代码的功能我觉得还比较简陋(比如不能层级格式化,部分格式错误会无法格式化,也不提示),不知道有没有插件能优化。

评论