日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
桌面應(yīng)用開(kāi)發(fā)技術(shù)對(duì)比,你明白了嗎?

前言

什么是 RPA?其全稱(chēng)為 Robotic Process Automation(機(jī)器人流程自動(dòng)化),簡(jiǎn)單而言就是讓計(jì)算機(jī)幫助我們執(zhí)行各種重復(fù)性高的工作,對(duì)于行政、金融、政府等人力密集型部門(mén),RPA 是很好的助力。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),邛崍企業(yè)網(wǎng)站建設(shè),邛崍品牌網(wǎng)站建設(shè),網(wǎng)站定制,邛崍網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,邛崍網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

最近幾年,RPA 相關(guān)賽道的公司融資都很猛,通常都是億級(jí)的融資,因?yàn)槲抑霸诠矩?fù)責(zé)過(guò)自動(dòng)化工具相關(guān)的工作,所以一直有關(guān)注自動(dòng)化相關(guān)的各種技術(shù),其中 RPA 是我關(guān)注的重點(diǎn),觀察下來(lái),各種 RPA 商業(yè)應(yīng)用其技術(shù)實(shí)現(xiàn)難度不算特別大,雖然其功能很多,但感覺(jué)慢慢從基礎(chǔ)功能搞,還可以夠得著,所以一直有打算開(kāi)發(fā)一個(gè)的想法。

這篇文章是第一步,對(duì)比一下目前桌面端技術(shù)棧,做技術(shù)選型。

PS: 熟悉我的朋友知道我之前使用 Electron+Vue 開(kāi)發(fā)過(guò)抖直播這個(gè)應(yīng)用,但 RPA 軟件需要更多系統(tǒng)層的支持,我在調(diào)研前,會(huì)疑惑 Electron 對(duì)系統(tǒng) API 的兼容情況以及是否有更好的方案,所以還是花時(shí)間調(diào)研了一下。

當(dāng)然,做事情前先明確目標(biāo):

  • 我希望可以構(gòu)建出一個(gè)跨平臺(tái)的 RPA 桌面應(yīng)用,目前多數(shù)商業(yè) RPA 軟件都局限在 Windows 平臺(tái)(即只有 exe 安裝包)。
  • 因?yàn)?RPA 需要很多系統(tǒng)級(jí)的功能,所以我希望可以比較輕松的試驗(yàn)系統(tǒng) API。
  • 因?yàn)闀r(shí)間、精力和能力的問(wèn)題,我希望可以基于自己已有技術(shù)棧之上來(lái)開(kāi)發(fā)。

常見(jiàn)桌面端開(kāi)發(fā)技術(shù)棧

通過(guò)微信、QQ 等各種桌面端應(yīng)用,可以了解目前開(kāi)發(fā)桌面端的主流技術(shù)棧,簡(jiǎn)單總結(jié)一下:

1.使用 C#+WPF 依舊是開(kāi)發(fā) Windows 桌面應(yīng)用的主流選擇,其優(yōu)點(diǎn)是:比較成熟,參考資料比較多,其缺點(diǎn)是:性能一般,需要用戶(hù)主動(dòng)安裝 net 庫(kù),雖然很多軟件會(huì)直接提供下載,然后讓用戶(hù)安裝,但依舊是一個(gè)坎,此外 WPF 只支持 Windows 平臺(tái),與目標(biāo)不符。

2.C+++QT 也是很多人的選擇,QT 是否成熟,但比較重,適合開(kāi)發(fā)大型應(yīng)用,對(duì)于個(gè)人開(kāi)發(fā)者而言,效率不高,此外我除了大學(xué)時(shí)用 C++ 參加過(guò)算法比賽外,很少再使用過(guò)。

3.在 Windows 平臺(tái)下,國(guó)內(nèi)多個(gè)大眾應(yīng)用,如微信、QQ、百度網(wǎng)盤(pán)都使用了 C+++ 類(lèi)duilib 的形式進(jìn)行開(kāi)發(fā)(類(lèi) duilib 的意思是,基于開(kāi)源的 duilib 這個(gè) Windows GUI 進(jìn)行了二開(kāi)),這種方式出的桌面應(yīng)用,性能較高而且包的體積下,是專(zhuān)業(yè)團(tuán)隊(duì)比較好的選擇,但不適合我這個(gè)項(xiàng)目,因?yàn)?RPA 并不要求太高的性能,而且我希望一份代碼可以跨平臺(tái)使用。

4.影刀等商業(yè) RPA 軟件使用了 C+++CEF 的形式開(kāi)發(fā),CEF(Chromium Embedde FrameWork)與 Electron 定位類(lèi)似,基于 Chromium,讓開(kāi)發(fā)者可以使用前端技術(shù)棧來(lái)構(gòu)建桌面應(yīng)用,跨平臺(tái),就是 CEF 資料比較少,還需要 C++ 等知識(shí),因?yàn)槭菍?duì)標(biāo)軟件使用的技術(shù),所以加入候選技術(shù)棧。

5.VScode、Github 桌面端等使用 Electron 開(kāi)發(fā),與 CEF 類(lèi)似,Electron 讓我們使用前端技術(shù)便可以開(kāi)發(fā)桌面應(yīng)用,其優(yōu)點(diǎn)是:資料很多、開(kāi)發(fā)效果比較 OK,缺點(diǎn)是慢,而且對(duì)于需要比較多系統(tǒng) API 的兼容因沒(méi)有對(duì)標(biāo)軟件,所以不太好確定。

6.Flutter 是 Google 推出了全平臺(tái)開(kāi)發(fā)框架,支持 windows、macos、android、ios 甚至是汽車(chē)中的系統(tǒng),調(diào)研下來(lái)的結(jié)論是,F(xiàn)lutter 對(duì)跨平臺(tái)的支持還非常早期,很多系統(tǒng)層的 API 并不支持,生態(tài)也剛起步,與 npm 比不了,很多東西可能要自己造,所以也不考慮。

CEF 與 Electron 的比較

CEF github: https://github.com/chromiumembedded/cef (1.6k star) Electron github: https://github.com/electron/electron (101k star)。

從 Github 上看,Electron 的活躍度遠(yuǎn)高于 CEF,包括:版本更新頻率(解決 issue 的速度、新功能的開(kāi)發(fā)速度)、社群活躍度(資料豐富度)。

那為啥有些商業(yè)產(chǎn)品要選擇 CEF 呢?其優(yōu)勢(shì)在哪?對(duì)目前想開(kāi)發(fā)的項(xiàng)目來(lái)說(shuō),是否重要?

相比于 Electron,CEF 支持 Windows XP 系統(tǒng),提供的很多比較底層的 C++ API 方便你使用系統(tǒng)級(jí)能力,而且也很方便與 Native UI 框架融合使用,實(shí)現(xiàn)更近似本地應(yīng)用的應(yīng)用。

簡(jiǎn)單而言,使用 CEF,相比于 Electron 可以更輕松的做的更像原生軟件,除了不支持 Windows XP 這個(gè)硬傷,Electron 其實(shí)可以通過(guò) C++ 的方式調(diào)用更多系統(tǒng)級(jí)的原生能力,但這要求你對(duì) Electron 框架源碼比較熟悉,當(dāng)然也要會(huì)寫(xiě) C++ 代碼。

那 Windows XP 系統(tǒng)目前占用量大嗎?查閱了一下,Windows XP 在 2020 年,市場(chǎng)占有率已經(jīng)低于 1%,所以我還是偏向于選擇 Electron 進(jìn)行 RPA 桌面應(yīng)用的開(kāi)發(fā)。

所以剩余的問(wèn)題,便是加強(qiáng)對(duì) Electron 的把控感。

Electron 開(kāi)發(fā)需要考慮的問(wèn)題

1.因?yàn)?Electron 本身架構(gòu)的原因,Electron 打出來(lái)的包會(huì)比較大,但就目前個(gè)人電腦的性能而言,也不算什么特別大的問(wèn)題,就像現(xiàn)在手機(jī)游戲一樣,反正手機(jī)性能過(guò)剩,一些比較難搞的優(yōu)化直接就放棄了,但在開(kāi)發(fā)時(shí),還是盡量精簡(jiǎn) require,從而讓 Electron 打出的包小一點(diǎn)。

2.Electron 對(duì)源碼是沒(méi)有保護(hù)的,即你開(kāi)發(fā)的軟件,很容易別人逆向分析,有幾個(gè)解決方案,除了方案 c,都可以逆向破解,這些操作只是讓可破解的人少一點(diǎn)而已(當(dāng)然,最安全的方式是你的軟件沒(méi)有任何價(jià)值,放到 Github 都沒(méi)人 fork)。

  • a. 使用 C++ 編寫(xiě)核心邏輯,發(fā)布時(shí),C++ 是編譯后的二進(jìn)制文件
  • b. 使用 wasm 編寫(xiě)核心邏輯,發(fā)布時(shí),也是二進(jìn)制內(nèi)容
  • c. 核心邏輯放在后端
  • d. 使用 bytenode 將代碼轉(zhuǎn)成字節(jié)碼

3.Electron 對(duì)系統(tǒng)層能力的使用可能比較弱,此時(shí)需要求助 Python、C++、C# 等語(yǔ)言,通過(guò) ffi-napi 庫(kù)可以讓 Node.js 使用 C++ dll,通過(guò) electron-edge-js 庫(kù)可以讓 Node.js 使用 C# dll。

參考

  • 開(kāi)發(fā)桌面應(yīng)用是用 flutter 還是用 electron

https://www.zhihu.com/question/390186321

  • macOS 上 Flutter Desktop 與 Electron 的性能對(duì)比

https://juejin.cn/post/7018450473292136456

  • 對(duì)比跨平臺(tái)客戶(hù)端方案:Electron 和 CEF

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

  • 桌面端框架 Electron 使用問(wèn)題整理和總結(jié)

https://juejin.cn/post/6844904072743501831


網(wǎng)頁(yè)標(biāo)題:桌面應(yīng)用開(kāi)發(fā)技術(shù)對(duì)比,你明白了嗎?
地址分享:http://m.5511xx.com/article/dpgojio.html