因公司有國產化(主要兼容麒麟操作系統(tǒng) armV8架構的處理器)的項目的需求,為桌面應用程序,根據公司資源情況,在技術層面進行了一些選型調研。
一般來說,開發(fā)語言本身都是有跨平臺能力的,比如java(jvm),c#(.net core),python(python解釋器),c 等等,所以要調研選型的方向主要是gui的跨平臺能力。
框架 | 語言 | 界面語言 | 性能 | 開發(fā)成本 | 文檔 |
qt | C ,python等 | Qml => xml | 優(yōu) | 高 | 多 |
Eto | C# | 1. xaml => xml | 一般 | 一般 | 少 |
Electron | nodejs | vue,html等 | 較差 | 一般 | 較多 |
Cef | java,python等 | html,vue,js等 | 優(yōu) | 較高 | 較少 |
如上所示:
如果對性能沒什么要求,而且要界面絢麗,能加載html,與底層交互少,那么electron為最佳選擇,而且electron開發(fā)簡單,上手快;
如果單純要求性能,那就是c 和qt了;
如果對性能要求不是很高,而且又要兼顧成本,還是建議eto c#。雖然eto的資料不是很多,但有官方demo和基于eto的一些開源項目,自己跑一下,學習一下發(fā)現還是很簡單的,業(yè)務邏輯使用c#,快速開發(fā)也不會有什么坑;
至于最后一種方案cef,這個是基于google的開源瀏覽器內核項目cef,業(yè)務端語言可以是python、java、c#、go語言等,界面交互直接用html js方案,實現了開發(fā)C/S程序的前后端分離,前端調用業(yè)務端使用jsbridge方式,業(yè)務端渲染界面使用websocket,保證實時高效。
根據公司資源情況,我選擇了c# eto技術方案。
eto的github地址:https://github.com/picoe/Eto,學習一下demo部分足夠上手開發(fā)了。
根據官方描述:此框架(Eto)可用于使用本地工具包(native toolkit)和簡單的API構建跨多個平臺運行的應用程序,說白了就是eto支持多種GUI渲染?;诖耍疫x用gtk作為gui庫。
圖1 Eto Demo示例
Windows下Eto C#開發(fā)環(huán)境的搭建:
1.安裝GTK3。https://www.gtk.org/docs/installations/windows/,我這里使用了 MSYS2方式 安裝,簡單快速;
圖2
圖3
圖4 Eto代碼結構
圖5
圖5 程序發(fā)布
版權聲明:本文內容由互聯網用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。