github地址:https://github.com/picoe/Eto](https://github.com/picoe/Eto
在當(dāng)前的市面下。開發(fā)一套跨平臺(win、mac、linux)GUI的界面是桌面程序的一般目標(biāo)
- 市面上的解決方案很多,從語言的角度來區(qū)分的話有以下幾種
| 語言 | 框架 | 界面語言 | 界面UI好看度 | 開發(fā)成本 | 維護(hù)成本 | 性能 | 文檔 | 調(diào)試 | 打包大小 |
|---|---|---|---|---|---|---|---|---|---|
| C++ | Qt | Qml => xml | 普通 | C++,高 | 較高 | 優(yōu)秀 | 較多 | 一般 | 一般 |
| C# | Eto | 1. Xaml => xml 2. Code => C# 3. Json => Json |
原始 | C#,一般 | 一般 | 一般 | 少 | 一般 | 一般 |
| JS | Electron | React or Vue | 好看 | 前端語言,一般 | 一般 | 較差 | 很多 | 簡單 | 一般 |
- 如上:
- 如果對性能要求一般,然后又要跨平臺,還要好看(大眾且非專業(yè)pc軟件),那么electron是最優(yōu)解
- 如果性能又要求,當(dāng)然還是C++
- 如果只是弄個工具類PC軟件,C# 也不錯(寫的舒服)
一個簡單的解決方案 —— Eto
看了一下github —— https://github.com/picoe/Eto
上C#的gui庫,發(fā)現(xiàn)Eto 文檔還行。是mono使用的項目。還行。
一個Quick Start
Eto支持多種gui的渲染方式,,我這里選擇了GTK
一. windows開發(fā)環(huán)境準(zhǔn)備: —— 我自身是在Windows下進(jìn)行開發(fā)
- 安裝GTK3,https://www.gtk.org/docs/installations/windows/,我是用了 MSYS2 這種方式
- vs2019 安裝拓展 ,直接點擊安裝,https://marketplace.visualstudio.com/items?itemName=CurtisWensley.EtoFormsVisualStudioAddin
-
使用vs2019創(chuàng)建項目(安裝上述擴(kuò)展后重啟vs2019)
image.png
image.png - 在 EtoApp1.Gtk 這個項目里面 安裝GtkSharp的nuget,https://www.nuget.org/packages/GtkSharp/
-
安裝好后。直接啟動EtoApp1.Gtk 即可:
image.png
二、 將寫好的應(yīng)用分發(fā)到其他應(yīng)用
其實GTK相當(dāng)于一個gui的虛擬機(jī),我們的程序都是調(diào)用它來渲染出程序的界面
- 打包當(dāng)前EtoApp1.Gtk應(yīng)用及runningtime,這樣其他電腦不用再安裝dotnet環(huán)境 —— 右鍵該項目選擇 發(fā)布,選好發(fā)布的配置:
image.png -
復(fù)制必要GTK庫到改程序目錄的根目錄 —— 安裝上文 第一 步的MSYS2的那一堆東西后,一般在C:\Users\Username\AppData\Local\Gtk 這個目錄下有必要的GTK的dll,全部Copy到publish的根目錄(比較多,先不理會)里面image.png
-
此時直接點擊EtoApp1.Gtk.exe是可以運(yùn)行的了image.png
三、刪除不必要的GTK文件,并優(yōu)化看起來文件就很多的問題
- 后續(xù)再研究哪些需要刪(TODO)
- 多個文件打包成一個exe —— 實際使用winrar就可以,弄成一個自解壓文件即可
- 當(dāng)然2的解決方案并不是很好。。(TODO)





