.NET Core 實現了跨平臺,支援在 Windwos、Linux、macOS上開發與部署,但是也僅限於Web應用程式。對於Windows桌面端應用程式,WinForm 與 WPF 技術是當前最成熟、應用最多的解決方案。因為它們的UI與Windwos作業系統的底層技術緊密關聯,所以在Linux、macOS上無法實現相同的UI功能。目前對於跨平臺的桌面端UI需求,.NET還沒有統一完整的解決方案。期待.NET6中的MAUI能給大家帶來驚喜。下面整理了幾款桌面端跨平臺解決方案。
.NET MAUI是.NET多平臺應用程式UI,是一個用於構建跨移動、平板和桌面的本機裝置應用程式的框架。
產品特徵
- 提供支援多平臺的原生UI
- 跨移動和桌面部署到多個裝置
- 使用統一單一專案、單一程式碼庫
- 由Xamarin.Forms 演變進化而來
- 作為.NET6的一個重要元件,將於2021年11月與.NET6一起正式釋出
開源地址:https://github.com/dotnet/maui
Avalonia 是一個基於 WPF XAML 的跨平臺UI框架,並支援多種作業系統:Windows(.NET Framework,.NET Core),Linux(GTK),MacOS,Android和iOS。
產品特徵
- 開源。永久開源、免費使用。
- 跨平臺。輕鬆部署到目標平臺。移動支援正在公開預覽中。
- 支援 Visual Studio 擴充套件專案模板
- 複用現有技能。利用現有的知識(WPF、XAML)、程式碼和包來開發、執行專案。
- 技術支援。提供收費技術支援。
官網:http://avaloniaui.net
教程:http://avaloniaui.net/docs/quickstart
GitHub: https://github.com/AvaloniaUI/Avalonia
優秀示例專案
AvalonEdit是SharpDevelop中使用的基於WPF的文字編輯器。此軟體包中包含三個版本的AvaloneEdit:.NET 4.0、4.5和.NET Core 3.0。
使用AvalonEdit的專案
- https://github.com/icsharpcode/ILSpy/ ILSpy .NET decompiler
- https://github.com/KirillOsenkov/MSBuildStructuredLog A logger for MSBuild
- https://github.com/aelij/RoslynPad RoslynPad
- https://github.com/huangjia2107/XamlViewer LightWeight Xaml Editor
- 地圖 https://github.com/Mapsui/Mapsui、https://github.com/ahopper/Mapsui/tree/initial-avalonia-port(Avalonia)
- 圖形元件 https://github.com/oxyplot/oxyplot-avalonia、https://github.com/dotnet-ad/Microcharts
- 控制元件 https://github.com/Splitwirez/Mechanism-for-Avalonia
- Ribbon https://github.com/amazerol/AvaloniaRibbon、https://github.com/Splitwirez/AvaloniaRibbon
- 主題編輯器 https://github.com/wieslawsoltes/ThemeEditor
- 浮動視窗 https://github.com/wieslawsoltes/Dock
- 樣式資源使用 https://habr.com/en/post/471342/
- 佈局 https://www.nequalsonelifestyle.com/2019/06/11/avalonia-grid-panel-layout-part1/
- 社群專案 https://github.com/AvaloniaCommunity/awesome-avalonia.git
- 控制元件例子 https://github.com/AvaloniaUI/ControlCatalogStandalone.git
UNO是一款具有C#和WinUI的畫素級多平臺應用程式。它也是第一個也是唯一一個針對Windows、WebAssembly、iOS、macOS、Android和Linux的單一程式碼應用程式的跨平臺UI框架。可以理解為終極跨平臺解決方案。
產品特徵
- 針對所有作業系統和瀏覽器 UNO是唯一用於建立真正的單一來源、多平臺應用程式的開放原始碼平臺。跨本機移動、web和桌面重用99%的業務邏輯和UI層。
- 畫素無處不在 在開發特定於平臺的應用程式或定製應用程式的外觀和感覺時,保持畫素對畫素位置的完美控制。
- C#和XAML提高生產率 使用C#和XAML的熟悉性和豐富性,以及熱重新載入、熱重啟、編輯和繼續等方面的生產力提升開發效率。
- 強大的IDE支援。Visual Studio、Visual Studio Code、Visual Studio for Mac、Rider都可以開發。
- 技術支援。社群和團隊提供免費和有償的支援。聊天、螢幕分享等方式。
- 程式碼片段和示例應用程式。在實踐中學習。請參閱工程師提供的程式碼示例。探索Uno平臺開啟的可能性。
- 支援WebAssembly
- 視屏教程
- 真實客戶 以下公司使用Uno平臺開發其應用程式
教程:https://gallery.platform.uno
示例:https://platform.uno/code-samples
開源地址:https://github.com/unoplatform/uno
參考部落格:https://mp.weixin.qq.com/s/xg_St9OHy3hfkk71NzFiPw

Electron是一個使用 JavaScript、HTML 和 CSS 構建桌面應用程式的框架。通過將Chromium和Node.js嵌入其二進位制檔案,Electron允許您維護一個JavaScript程式碼庫,並建立可在Windows、macOS和Linux上執行的跨平臺應用程式,最主要的是開發者無需本地開發經驗。
如果你可以建一個網站,你就可以建一個桌面應用程式。 Electron 是一個使用 JavaScript, HTML 和 CSS 等 Web 技術建立原生程式的框架,它負責比較難搞的部分,你只需把精力放在你的應用的核心上即可。
產品特徵
- Web技術 Electron 基於 Chromium 和 Node.js, 讓你可以使用 HTML, CSS 和 JavaScript 構建應用。
- 開源 Electron 是一個由 GitHub 及眾多貢獻者組成的活躍社群共同維護的開源專案。
- 跨平臺 Electron 相容 Mac、Windows 和 Linux,可以構建出三個平臺的應用程式。
- 案例產品 數千個跨行業的組織使用 Electron 構建跨平臺軟體。
簡潔、直觀、強悍的netcore跨平臺UI開發框架。框架理念和WPF類似,但是沒有Xaml,直接用CSS和C#程式碼描述。
官網:http://cpf.cskin.net
入門教程:https://www.cnblogs.com/dskin/p/13490921.html
參考專案:https://mp.weixin.qq.com/s/Psc69OUw6ceGPMlGi3t-eQ