.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
