
Over the past few years, our host computer software has been developed primarily with WPF and WinForm. These technologies have worked well on Windows, accompanying us through stages from small-scale trial production to today's volume delivery. However, as business grows and customer requirements evolve, relying solely on the Windows technology stack has become a hurdle we must overcome.
So I started seriously considering migrating our existing WPF applications to Avalonia.
1. Legacy Burden: The Heritage of WPF and WinForm
Most of our company's previous host computer projects were written in WPF or WinForm.
- Pros: Tight integration with Windows, high development efficiency, easy to pick up.
- Cons: Very limited – runs only on Windows, unable to support Linux or Mac.
This means that if a customer's environment is not Windows, we have to provide additional hardware or virtual machine support, adding significant cost and maintenance risk.
2. Customer Requirements: Cross-Platform Is a Must
As semiconductor equipment is delivered worldwide, we increasingly encounter situations where:
- Some customer sites only allow Linux.
- Some customers require the software to run on both Windows and Linux industrial PCs.
These are must-have requirements, not optional "maybe useful in the future" features. So we need to choose a truly cross-platform technology path.
3. Industry Characteristics: Real-Time Performance and Stability First
Our software is mainly used in semiconductor testing and instrumentation control. Such software differs from internet applications:
- It needs high-speed communication with hardware instruments;
- It has high real-time requirements – latency directly affects testing efficiency;
- It requires a stable UI framework to support long-running operations (often 7×24 hours).
After evaluation, Web-based technologies like Electron are not suitable for this scenario. Avalonia's performance and responsiveness are closer to WPF, and the migration cost is relatively low.
4. Qt: Powerful But Too Expensive
We also seriously considered Qt.
- Pros: Highest cross-platform maturity, stable performance, complete ecosystem.
- Cons: Extremely high commercial licensing costs.
After communicating with Qt sales, they gave us a quote that was unacceptable for the team. For a small company, "closing your eyes and using the open-source version" might work, but our company has grown, and Qt's legal team has already noticed us – we frequently receive their compliance reminders.
Under such circumstances, continuing to take risks with Qt's free version is clearly not feasible.
5. Reasons for Choosing Avalonia
In comparison, Avalonia offers several advantages for us:
- Open-source and free, no high commercial license risk;
- Strong cross-platform capability, supports Windows / Linux / Mac;
- Syntax similar to WPF, relatively low migration cost – the team doesn't have to start from scratch;
- Good performance, more suitable for device control applications.
All things considered, migrating to Avalonia is currently the most appropriate choice for us.
6. Conclusion
There is no absolute right or wrong in technology selection – only what fits your needs. In our business scenario, WPF's limitations, customers' cross-platform demands, the industry's real-time requirements, and Qt's high cost ultimately drove us to firmly choose Avalonia.
In the future, I will continue sharing our experiences and pitfalls from the WPF-to-Avalonia migration, hoping to provide some reference for peers.