术致科技

您现在的位置是:首页 > 建站 > 正文

建站

应用开发(桌面应用开发技术对比)

术致建站2023-01-06建站410
作者:ayuliao因个人兴趣,想着开发一个桌面应用软件,其具体定位是:RPA,相关的商业软件有很多,我了解使用过的几个:UiPath、UiBot、影刀RPA。什么是RPA?其全称为Roboti

作者:阿尤利亚奥出于个人兴趣,我想开发一款桌面应用软件。它的具体定位是RPA。有很多相关的商业软件。我知道有几种常用的:uipath、uibot和暗影刀RPA什么是RPA?它的全名是机器人过程自动化。简而言之,就是让计算机帮助我们完成各种重复的任务。RPA对行政、财政和政府等人力密集型部门有很好的帮助

应用开发(桌面应用开发技术对比)

近年来,RPA相关轨道的企业融资非常激烈,通常在1亿美元的水平上。因为我以前在公司负责过与自动化工具相关的工作,所以我一直关注与自动化相关的各种技术,其中RPA是我关注的重点。从观察来看,实现各种RPA商业应用的技术并不特别困难。虽然有很多功能,但我觉得我正在慢慢地从基本功能开始,它仍然可以实现,所以我一直计划开发一个想法。

本文是第一步。比较当前的桌面技术堆栈并进行技术选择:熟悉我的朋友知道我以前使用过electron+Vue开发此应用程序,但RPA软件需要更多的系统层支持。在调查之前,我想知道electron与系统API的兼容性,是否有更好的方案,所以我花时间对其进行了调整和研究。

当然,在做事情之前要明确目标:

通过微信、QQ等各种桌面应用,你可以了解当前桌面开发的主流技术堆栈。简要总结:

1使用c#+WPF仍然是开发Windows桌面应用程序的主流选择。它的优点是:比较成熟,有很多参考价值。其缺点是:性能一般,用户需要主动安装网络库。虽然许多软件将直接下载,然后由用户安装,但这仍然是一个障碍。此外,WPF只支持windows平台,这与目标不一致。C+++QT也是许多人的选择。QT是否成熟但笨重适合开发大规模应用。对于个人开发者来说,效率并不高。此外,除了在大学里参加C++算法竞赛之外,我很少再使用它。例如,百度的开源GUI和duilib+不适合开发基于windows和duilib+的应用程序,我希望一段代码可以跨平台使用。商业RPA软件(如shadow knife)是以C++CEF的形式开发的。CEF(铬嵌入框架)的定位与电子类似。基于chromium,开发人员可以使用前端技术堆栈构建桌面应用程序。跨平台,也就是说,CEF材料很少,需要C++和其他知识。因为它是基准测试软件使用的技术,所以它被添加到候选技术堆栈中。Vscode和GitHub桌面由electron开发。与CEF类似,electron允许我们使用前端技术开发桌面应用程序。其优点是:数据量大,开发效果相对较好,但缺点是开发速度慢。此外,确定更多系统API的兼容性并不容易,因为没有基准测试软件。Flatter是谷歌推出的一个全平台开发框架,支持windows、MacOS、Android、IOS甚至汽车系统。研究结论是,颤振对跨平台的支撑还很早。许多系统层API都不受支持,生态才刚刚开始。它无法与NPM相比。很多东西可能需要自己制作,所以不考虑

CEF github:https://github.com/chromiumembedded/cef(1.6k星)电子集线器:https://github.com/electron/electron(101k star)。

来自GitHub,electron的活动远高于CEF,包括版本更新频率(解决问题的速度和新功能的开发速度)和社区活动(数据丰富性)

为什么一些商业产品选择CEF?它的优点是什么?与electron相比,CEF支持Windows XP系统,并提供了许多较低级别的C++API,这些API便于您使用系统级功能,也便于与本机UI框架集成,以实现更类似于本地应用程序的应用程序,使用CEF可以更容易地像本机软件一样操作,而不是像electron一样。除了不支持Windows XP的硬损伤外,electron实际上可以通过C++调用更多系统级本机功能,但它要求您熟悉electron framework的源代码,并能够编写C++代码

Windows XP系统目前是否占用大量资源?经过检查,在2023年,Windows XP的市场份额还不到1%,所以我仍然更喜欢electron开发RPA桌面应用程序,所以剩下的问题是加强对electron的控制意识。由于电子本身的结构,由电子制成的封装将相对较大,但就个人电脑的性能而言,这并不是一个特别大的问题。就像现在的手机游戏一样,手机的性能是多余的,一些困难的优化被直接丢弃。然而,在开发过程中,我们应该尽量简化要求,以便使电子制造的封装更小。Electron不保护源代码,也就是说,你开发的软件很容易被其他人逆向分析。有几种解决方案。除了方案C,你还可以反向破解它。这些操作只会让破解它的人更少(当然,最安全的方法是你的软件没有价值,也没有人在GitHub中分叉)

3。Electron对系统层能力的使用可能相对较弱。现在,它需要转向python、C++、C#和其他语言。通过FFI NaPi库,节点JS使用C++DLL,可以通过electron edge JS库访问节点JS使用C#DLLhttps://www.zhihu.com/question/390186321

https://juejin.cn/post/7018450473292136456

https://blog.csdn.net/caperxi/article/details/115901659

https://juejin.cn/post/6844904072743501831

来源:惰性编程