.NET Core 實現了跨平臺,支援在 Windwos、Linux、macOS上開發與部署,但是也僅限於Web應用程式。對於Windows桌面端應用程式,WinForm 與 WPF 技術是當前最成熟、應用最多的解決方案。因為它們的UI與Windwos作業系統的底層技術緊密關聯,所以在Linux、macOS上無法實現相同的UI功能。目前對於跨平臺的桌面端UI需求,.NET還沒有統一完整的解決方案。期待.NET6中的MAUI能給大家帶來驚喜。下面整理了幾款桌面端跨平臺解決方案。

1、.NET Multi-platform App UI (MAUI)

.NET MAUI是.NET多平臺應用程式UI,是一個用於構建跨移動、平板和桌面的本機裝置應用程式的框架。

產品特徵

  • 提供支援多平臺的原生UI
  • 跨移動和桌面部署到多個裝置
  • 使用統一單一專案、單一程式碼庫
  • 由Xamarin.Forms 演變進化而來
  • 作為.NET6的一個重要元件,將於2021年11月與.NET6一起正式釋出

開源地址:https://github.com/dotnet/maui

2、Avalonia

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的專案

3、UNO【終極跨平臺解決方案】

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://platform.uno

教程:https://gallery.platform.uno

示例:https://platform.uno/code-samples

開源地址:https://github.com/unoplatform/uno

參考部落格:https://mp.weixin.qq.com/s/xg_St9OHy3hfkk71NzFiPw

4、Electron

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 構建跨平臺軟體。

官網:https://www.electronjs.org

教程:https://www.electronjs.org/docs

開源地址:https://github.com/electron

5、CPF

簡潔、直觀、強悍的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