從 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 遷移過程中的經驗和踩坑,希望能給同行一些參考。

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2024/12/5

avalonia 國際化之路:resx 資源文件的深度應用與探索

在當今全球化的軟體開發浪潮中,應用的國際化(i18n)與本地化(l10n)顯得尤為重要。avalonia ui 作為一款強大的跨平台 ui 框架,為開發者提供了多種實現國際化的途徑。其中,使用傳統的 resx 資源文件進行國際化處理,不僅兼容了原 winform、wpf、asp.net core 等開發場景下的使用習慣,還藉助一些實用工具和特定的開發流程,讓國際化的實現變得高效且有條理。

继续阅读