使用 dotnet core 的Eto框架 開發(fā)跨平臺GUI應(yīng)用

github地址:https://github.com/picoe/Eto](https://github.com/picoe/Eto

在當(dāng)前的市面下。開發(fā)一套跨平臺(win、mac、linux)GUI的界面是桌面程序的一般目標(biāo)

  1. 市面上的解決方案很多,從語言的角度來區(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 好看 前端語言,一般 一般 較差 很多 簡單 一般
  1. 如上:
  • 如果對性能要求一般,然后又要跨平臺,還要好看(大眾且非專業(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ā)
  1. 安裝GTK3,https://www.gtk.org/docs/installations/windows/,我是用了 MSYS2 這種方式
  2. vs2019 安裝拓展 ,直接點擊安裝,https://marketplace.visualstudio.com/items?itemName=CurtisWensley.EtoFormsVisualStudioAddin
  3. 使用vs2019創(chuàng)建項目(安裝上述擴(kuò)展后重啟vs2019)


    image.png

    image.png
  4. 在 EtoApp1.Gtk 這個項目里面 安裝GtkSharp的nuget,https://www.nuget.org/packages/GtkSharp/
  5. 安裝好后。直接啟動EtoApp1.Gtk 即可:


    image.png
二、 將寫好的應(yīng)用分發(fā)到其他應(yīng)用

其實GTK相當(dāng)于一個gui的虛擬機(jī),我們的程序都是調(diào)用它來渲染出程序的界面

  1. 打包當(dāng)前EtoApp1.Gtk應(yīng)用及runningtime,這樣其他電腦不用再安裝dotnet環(huán)境 —— 右鍵該項目選擇 發(fā)布,選好發(fā)布的配置:
    image.png
  2. 復(fù)制必要GTK庫到改程序目錄的根目錄 —— 安裝上文 第一 步的MSYS2的那一堆東西后,一般在C:\Users\Username\AppData\Local\Gtk 這個目錄下有必要的GTK的dll,全部Copy到publish的根目錄(比較多,先不理會)里面
    image.png
  3. 此時直接點擊EtoApp1.Gtk.exe是可以運(yùn)行的了
    image.png
三、刪除不必要的GTK文件,并優(yōu)化看起來文件就很多的問題
  1. 后續(xù)再研究哪些需要刪(TODO)
  2. 多個文件打包成一個exe —— 實際使用winrar就可以,弄成一個自解壓文件即可
  3. 當(dāng)然2的解決方案并不是很好。。(TODO)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容