從 WPF 到 Avalonia 的遷移系列:為什麼我必須要把 WPF 程式遷移到 Avalonia

從 WPF 到 Avalonia 的遷移系列:為什麼我必須要把 WPF 程式遷移到 Avalonia

在過去幾年裡,我們的上位機軟體主要是用 WPF 和 WinForm 開發的。這些技術在 Windows 平台上確實很好用,也陪伴我們走過了從小規模試產到如今規模化交付的階段。 但是,隨著業務發展和客戶需求的變化,單一的 Windows 技術棧逐漸成為了我們必須跨越的一道坎。

最後更新 2025/9/13 下午7:54
西北飞虻
預計閱讀 3 分鐘
分類
WPF Avalonia UI
標籤
.NET WPF Avalonia UI Winform 跨平台

在過去幾年裡,我們的上位機軟體主要是用 WPF 和 WinForm 開發的。這些技術在 Windows 平台上確實很好用,也陪伴我們走過了從小規模試產到如今規模化交付的階段。但是,隨著業務發展和客戶需求的變化,單一的 Windows 技術棧逐漸成為了我們必須跨越的一道坎。

於是,我開始認真考慮把現有的 WPF 程式遷移到 Avalonia。

1. 歷史包袱:WPF 與 WinForm 的遺產

公司之前的大部分上位機專案都採用 WPF 或 WinForm 編寫。

  • 優點:和 Windows 緊密結合,開發效率高,上手快。
  • 缺點:侷限性很大,只能運行在 Windows 上,想支援 Linux 或 Mac 就無能為力。

這意味著,如果客戶現場環境不是 Windows,我們就得額外提供硬體或者虛擬機器支援,增加了很多額外成本和維護風險。

2. 客戶需求:跨平台是剛需

隨著半導體設備在全球範圍的交付,我們遇到了越來越多這樣的情況:

  • 有的客戶現場只允許使用 Linux。
  • 有的客戶要求軟體既能跑在 Windows 工控機上,也能在 Linux 工控機上運行。

這些需求是 必須滿足的,而不是「未來可能有用」的可選功能。所以我們必須選擇一條真正的 跨平台技術路線

3. 行業特性:即時性和穩定性優先

我們的軟體主要應用於 半導體測試和儀器設備控制。這類軟體和網際網路應用不同:

  • 需要和硬體儀器進行高速通訊;
  • 對即時性要求高,延遲直接影響測試效率;
  • 需要穩定的 UI 框架支撐長時間運行(常常是 7×24 小時)。

經過評估,基於 Electron 之類的 Web 技術並不適合這種場景;而 Avalonia 的效能和響應速度更接近 WPF,遷移成本也較低。

4. Qt:功能強大但成本太高

其實我們也認真考察過 Qt。

  • 優點:跨平台成熟度最高,效能穩定,生態完備。
  • 缺點:商業授權費用極其高昂。

和 Qt 銷售溝通後,對方給出的是一個團隊難以接受的報價。對於小公司,很多時候「閉眼用開源版」也就過去了;但我們公司現在規模已經起來,Qt 的法務團隊已經盯上我們,經常收到他們的合規提醒。

在這種情況下,繼續冒險使用 Qt 的免費版本顯然不可行。

5. 選擇 Avalonia 的理由

相比之下,Avalonia 對我們來說有以下幾個優勢:

  • 開源免費,沒有高昂的商業授權風險;
  • 跨平台能力強,Windows / Linux / Mac 都能支援;
  • 語法和 WPF 類似,遷移成本相對較低,團隊不用推翻重學;
  • 效能表現不錯,更適合設備控制類應用。

綜合考慮下來,遷移到 Avalonia 是目前對我們來說最合適的選擇。

6. 結語

技術選型沒有絕對的對錯,只有適不適合。在我們的業務場景裡,WPF 的侷限性、客戶的跨平台需求、行業的即時性要求,以及 Qt 的高昂費用,最終促使我們堅定地選擇了 Avalonia

未來,我會繼續分享我們在 WPF 到 Avalonia 遷移過程中的經驗和踩坑,希望能給同行一些參考。

繼續探索

延伸閱讀

更多文章
同分類 / 同標籤 2024/12/5

Avalonia 國際化之路:Resx 資源檔案的深度應用與探索

在當今全球化的軟體開發浪潮中,應用程式的國際化(i18n)與本地化(L10n)顯得尤為重要。Avalonia UI 作為一款強大的跨平台 UI 框架,為開發者提供了多種實現國際化的途徑。其中,使用傳統的 Resx 資源檔案進行國際化處理,不僅相容了原本的 Winform、WPF、ASP.NET Core 等開發場景下的使用習慣,還藉助一些實用工具和特定的開發流程,讓國際化的實現變得高效且有條理。

繼續閱讀